Ромка!eu

  • Отдых
  • Работа
  • Штуки-дрюки
Главная

статья

Несколько статей о Друпале

Ромка — Вс, 01/03/2010 - 23:16

305
points

В течение последнего года я написал три статьи о CMS Drupal, которые были опубликованы в бумажной и электронной версии журнала PC Magazine/RE. Сейчас я публикую "авторские"[1] версии этих статей. Каждая статья разбита на несколько разделов и ниже я привожу ссылки и описания каждого из них.

Первая статья "Разработка сайта на Drupal"

  • "Часть 1. Введение". В этой части рассказывается о возможностях Друпала "из коробки", а также об основных дополнительных модулях. Таксономия, ревизии, мультисайтинг — это совсем не страшно.
  • "Часть 2. Архитектура Друпала". Здесь сказаны общие слова о модульной системе Друпала, механизмах работы с формами, базой данных и кешем. Подробнее эти вопросы будут рассмотрены в следующих разделах и статьях.

    После прочтения первых двух частей этой статьи новичок, задающийся вопросом "подойдет ли Друпал для моего нового суперстартапа", должен на 100% определиться с ответом на этот вопрос. Вообще, в 95% случаев на этот вопрос можно ответить утвердительно, с оговоркой, что работать над проектом будет профессионал хорошо знакомый с Друпалом.

  • "Часть 3. Модули Drupal". CCK, Views, Imagecache, Panels, Ubercart — модули Друпала покрывающие 90% возникающих задач. В этой части статьи даны краткие описания каждого из перечисленных модулей.
  • Часть 4. Интранет-сайт на Друпале. Первый практический пример, в нем разрабатывается интранет-сайт для большой компании. Цель этого раздела — показать возможности, которыми обладает Друпал без доработки напильником. При разработке используются только существующие модули и не написано ни единой строчки программного кода. Аналогичное, только значительно более "кастомное" решение я успешно внедрил в одной из компаний со штатом в несколько сотен человек.
  • "Часть 5. Социальная сеть на Друпале". Точнее не социальная сеть, а коллективный блог с элементами социальной сети. Описание более новой версии примера описанного в этом раздедле можно найти на Швабрешвабр.
  • "Часть 6. Оптимизация Друпал". Этот раздел написал Александр Графов, он же axel. Друпал часто критикуют за низкую производительность. В этом разделе рассказано о приемах, позволяющих "разогнать" движок.

Вторая статья "Пример разработки модуля для Drupal"

  • "Часть 1. Основы модульной системы Друпала". Что такое хуки? Где и какие файлы с программным кодом должны быть созданы, чтобы Друпал посчитал их "модулем"? Где найти дополнительную информацию? Ответы на перечисленные вопросы в первой части второй статьи.
  • "Часть 2. Разработка простейшего модуля". Первые шаги при разработке любого модуля: описание *.info-файла модуля и хуков hook_perm, hook_menu.
  • "Часть 3. Введение в темизацию Друпала (для программистов, а не дизайнеров)". В этом разделе рассказано о том, как правильно разрабатывать модули, чтобы сторонние разработчики могли без проблем (читай "без правки исходного кода модуля") изменять внешний вид данных, возвращаемых модулем.

Третья статья "Темизация Друпал"

  • "Часть 1. Введение". Во введении рассказано о шаблонных движках, которые могут быть использованы в Друпале, даны определения основных терминов, использованных в тексте (тема оформления, регион, блок), а также приведено несколько полезных ссылок.
  • "Часть 2. Анатомия темы оформления". Здесь дано подробное описание каждого из файлов-шаблонов, использующихся в темах оформления, а также рассказано о том, как определить отдельный шаблон для каждой страницы или группы страниц.
  • "Часть 3. Forms API и темизация". В этом разделе приводится пример разработки новой и изменения существующей формы с помощью Forms API Друпала, а также о изменении внешнего вида любого элемента формы в отдельности или формы целиком.
  • "Часть 4. Темизация Views". Небольшой раздел, рассказывающий о том, как изменить внещний вид данных, возвращаемых модулем Views.
[ 1 ] Отличий от "редакторской" версии немного, но они есть. В основном эти отличия касаются форматирования текста (например, в журнальной версии просили не использовать маркированные списки), а также трактования написания и произношения тех или иных заимствованных из английского языка технических терминов. Кроме того, я немного поменял разделение статей на разделы и сделал более читабельную подсветку программного кода.
  • Drupal
  • статья
  • Ромка's blog
  • 1 комментарий
  • Читать далее
  • Quote

Темизация Drupal. Часть 4. Темизация Views

Ромка — Вс, 01/03/2010 - 23:09

161
points

Views — один из самых востребованных модулей для Drupal — позволяет создавать списки документов (представления, view), отфильтрованные по любому сложному алгоритму. На выходе модуль возвращает массив данных, который выводится в шаблоне, соответствующем выбранному администратором типу отображения (display) данных. Каждое представление может быть отображено в виде таблицы, маркированного списка, решетки (grid) и т. п.

  • Drupal
  • Views
  • статья
  • темизация
  • Ромка's blog
  • 6 комментария
  • Читать далее
  • Quote

Темизация Drupal. Часть 3. Основы Drupal Forms API и темизация форм

Ромка — Вс, 01/03/2010 - 22:58

183
points

Прежде чем говорить об изменении внешнего вида форм, ознакомимся с основами Drupal Forms API — программного интерфейса, используемого для генерации форм. Применение Forms API несколько сложнее создания HTML-форм вручную, так как требует изучения логики его работы, однако его использование обязательно, поскольку Forms API решает ряд важных задач:

  • любой разработчик может добавить или удалить элементы в форме, созданной другим разработчиком, не меняя ее исходного кода;
  • любой разработчик может добавить дополнительные функции проверки и обработки введенных пользователем данных без изменения исходной формы;
  • формы, созданные с использованием Forms API, защищены от атак, связанных с отправкой пользователем модифицированной формы;
  • любой разработчик может изменить внешний вид формы, не изменяя ее исходного кода.

Каждая форма в Drupal представляет собой функцию, возвращающую ассоциативный массив. Этот массив должен содержать информацию обо всех элементах формы, функциях проверки (валидаторы, validators) и обработки (сабмиттеры, submitters) введенных данных. Данная функция должна быть расположена в файле модуля, о разработке модуля говорилось в предыдущей статье.

  • Drupal
  • статья
  • темизация
  • формы Forms API
  • Ромка's blog
  • 2 комментария
  • Читать далее
  • Quote

Темизация Drupal. Часть 2. Анатомия темы оформления Drupal

Ромка — Вс, 01/03/2010 - 21:11

167
points

Как и в случае с модулем, разработка которого рассматривалась в предыдущей статье, тема оформления должна иметь уникальное имя, состоящее из строчных латинских букв, цифр и знаков подчеркивания, и это имя должно начинаться с буквы. Тема оформления — это несколько файлов, которые располагаются в папке sites/all/themes/имя_темы относительно корня Drupal.

PHPTemplate при сборке страницы берет информацию из пяти основных файлов: имя_темы.info, page.tpl.php, node.tpl.php, block.tpl.php, template.php. Если же включен модуль comment, для вывода комментариев используется шаблон comment.tpl.php.

  • Drupal
  • статья
  • темизация
  • Ромка's blog
  • 6 комментария
  • Читать далее
  • Quote

Темизация Drupal. Часть 1

Ромка — Вс, 01/03/2010 - 20:55

169
points

Drupal часто ругают за однообразность и узнаваемость дизайна, используемого на Drupal-сайтах. То, что за определенным сайтом стоит CMS Drupal, можно определить не только по URL-адресам специфического вида, узнаваемым путям к папкам модулей и главной странице в виде списка последних опубликованных документов, но и по стандартной двух-трехколоночной структуре сайта, наличию стандартных форм авторизации и поиска, облаков тегов, списков новых документов и других часто используемых блоков.

Однако все эти упреки несправедливы. Здесь можно процитировать старый анекдот: «Вы просто не умеете его готовить». На самом деле к Drupal при должном умении можно «прикрутить» дизайн и верстку любой сложности. Можно до неузнаваемости «темизировать», т. е. изменять внешний вид любого HTML-кода, создаваемого Drupal, — все стандартные формы, блоки, документы и списки. Просто для этого нужно понимать, как Drupal генерирует выходные данные (информация об этом была размещена в моей предыдущей статье), и уметь переопределять этот вывод. Примеров таких детально темизированных сайтов много, в одной из врезок вы можете найти ссылки на некоторые из них.

В этой статье я расскажу о трех этапах темизации, охватывающих практически 100% задач, связанных с изменением внешнего вида сайта: разработка общего шаблона для всех страниц сайта и «кастомных» шаблонов для избранных страниц; разработка шаблонов для разных типов документов и списков; изменение внешнего вида форм (поиск, авторизация и любые другие стандартные и создаваемые внешними модулями формы). Но прежде чем переходить к решению задач, познакомимся с основными используемыми терминами и структурой любой «темы оформления».

  • Drupal
  • статья
  • темизация
  • Ромка's blog
  • 5 комментария
  • Читать далее
  • Quote

Разработка модуля для Drupal. Часть3. Cron и темизация

Ромка — Вс, 01/03/2010 - 19:52

154
points

Регулярные процедуры

Чтобы Drupal периодически выполнял определенные действия, в планировщике задач операционной системы необходимо настроить запуск файла cron.php, который находится в корне каждого Drupal-сайта. При выполнении этого файла будет вызываться хук hook_cron, и в нашем модуле мы напишем его реализацию.

  • cron
  • Drupal
  • модуль
  • статья
  • темизация
  • Ромка's blog
  • 3 комментария
  • Читать далее
  • Quote

Разработка модуля для Drupal. Часть2

Ромка — Вс, 01/03/2010 - 19:31

130
points

currencies.info

В .info-файлах модулей содержится служебная информация, без которой модуль не будет виден в системе. Начинаться любой .info-файл должен со строки

  1. ; $Id$

В файлах с PHP-кодом после открывающего тега <?php необходимо добавить строку
<?php
// $Id$
?>

  • Drupal
  • модуль
  • статья
  • Ромка's blog
  • 1 комментарий
  • Читать далее
  • Quote

Разработка модуля для Drupal. Часть1. Введение

Ромка — Вс, 01/03/2010 - 19:15

144
points

Система управления сайтом Drupal построена по модульному принципу: компактный набор служебных функций (ядро) расширяется при помощи модулей — файлов с PHP-кодом. Модули должны содержать «хуки» (hooks) — особым образом именованные функции, которые вызываются ядром Drupal при возникновении каких-либо событий. Каждый модуль имеет системное имя, которое должно состоять из латинских букв, цифр, знака подчеркивания (и начинаться обязательно с буквы). Имя хука должно состоять из двух частей: имени модуля и названия события. При возникновении любого события ядро Drupal в каждом из установленных модулей ищет и выполняет соответствующую функцию, т. е. функцию с именем название_модуля_название_события. Например, при возникновении событий, связанных с учетной записью пользователя (регистрация, авторизация, изменение роли пользователя и др.), ядро Drupal вызывает функции, реализующие хук hook_user, поэтому, чтобы модуль с именем example мог отреагировать на это событие, в нем необходимо объявить функцию с именем example_user(). Список передаваемых в эту функцию аргументов, пример ее использования и информацию обо всех функциях и хуках, доступных в Drupal, можно найти на странице официальной документации http://api.drupal.org или ее русской версии: http://api.drupal.ru.

Эта статья — продолжение материала, посвященного CMS Drupal (см. PC Magazine/RE, 12/2008). В первой статье подробно рассказано о назначении и возможностях системы, а также приведены примеры сборки сайтов на Drupal с использованием уже существующих модулей. Этот же материал будет больше интересен техническим специалистам, умеющим программировать на языке PHP, знакомых с основами HTML и CSS, и тем, кто хочет познакомиться с методами разработки собственных модулей для этой системы. Перед чтением этого материала рекомендуется освежить в памяти информацию, просмотрев ее первые три раздела.

  • Drupal
  • модуль
  • статья
  • Ромка's blog
  • Добавить комментарий
  • Читать далее
  • Quote

Разработка сайта на Drupal. Часть 6. Оптимизация Друпал

Ромка — Вс, 01/03/2010 - 03:11

161
points

Способы оптимизации сильно зависят от конкретной задачи и системного окружения. Свою роль в выборе способов оптимизации играют набор используемых на сайте модулей и соотношение трафика от анонимных и зарегистрированных посетителей. Обычно окончательное заключение об эффективности того или иного метода можно дать только после его тестирования на реальном сайте.

По умолчанию Drupal ориентирован на хранение максимума информации в базе данных. Контент, служебные переменные и настройки сайта, кэши данных — все это складывается в БД. Не всегда такая схема может быть эффективна, и Drupal предлагает ряд альтернатив.

  • Drupal
  • оптимизация
  • статья
  • Ромка's blog
  • 4 комментария
  • Читать далее
  • Quote

Разработка сайта на Drupal. Часть 5. Социальная сеть на Друпале

Ромка — Вс, 01/03/2010 - 03:06

170
points

Постановка задачи

  • Drupal
  • социальная сеть
  • статья
  • Швабрашвабр
  • Ромка's blog
  • 1 комментарий
  • Читать далее
  • Quote
  • 1
  • 2
  • следующая ›
  • последняя »
RSS-материал

Обо мне

Всем привет!
Меня зовут
Роман Архаров, я профессиональный веб-разработчик, программирую на языках PHP, Python и Action-Script, в работе использую фреймворки Drupal и Django. В этом блоге я размещаю заметки и статьи, связанные с моей работой, отдыхом и другими интересными мне темами.

Популярные заметки

  • AJAX. Обмен данными между клиентом и сервером, закачка на сервер файлов без перезагрузки страницы при помощи библиотеки jQuery.
  • Темизация Drupal. Часть 2. Анатомия темы оформления Drupal
  • Темизация Drupal. Часть 4. Темизация Views
  • Разработка сайта на Drupal. Часть 3. Модули Drupal.
  • Темизация Drupal. Часть 1
  • Несколько статей о Друпале
  • Тестирование модуля "Inner poll"
  • Автоматическая "газетная" верстка (верстка в несколько колонок)
  • Разработка сайта на Drupal. Часть 4. Пример разработки корпоративного интранет-сайта на Drupal
  • Backup-manager — настройка резервного копирования Linux-сервера на Amazon S3 за 5 минут

Подписка


Последние комментарии

  • Артем → Темизация Drupal. Часть 4. Темизация Views → Спасибо большое!
  • Anonymous → Темизация Drupal. Часть 2. Анатомия темы оформления Drupal → Большое спасибо автору за
  • Yor Ik → Авторизация на Drupal-сайте с помощью аккаунта вКонтакте → при входе на сайте
  • Химик → Home sheep home → Игра просто поглатитель времени
  • Artu → Темизация Drupal. Часть 4. Темизация Views → Спасибо,
  • icemen → Разработка модуля для Drupal. Часть2 → Благодарности
  • Федор → Проверка имени пользователя на наличие букв из разных алфавитов → . . . . . . . . . . . . . . .
  • oZEROth2008 → Авторизация на Drupal-сайте с помощью аккаунта вКонтакте → ответьте на мой вопрос
  • witalikm → Drupal for Firebug → После вашего совета пробовал
  • Shu → Drupal for Firebug → F12

Новые заметки

  • Авторизация на Drupal-сайте с помощью аккаунта ВКонтакте
  • Home sheep home
  • Backup-manager — настройка резервного копирования Linux-сервера на Amazon S3 за 5 минут
  • Зима 2010. Поездка в Тайланд, Индонезию и Сингапур. Часть 3 — Бали, Сингапур, Пхукет
  • Зима 2010. Поездка в Тайланд, Индонезию и Сингапур. Часть 2 — Джокьякарта
  • Зима 2010. Поездка в Тайланд, Индонезию и Сингапур. Часть 1 — Пхукет и Джакарта
  • Шпаргалка по командам и хоткеям Unix
  • Семинар по хапкидо в Днепропетровске
  • О планах
  • Несколько статей о Друпале

Тэги

dckyiev09 Drupal jquery Индонезия Отдых Работа Штуки-дрюки зима зима 2010 модуль статья темизация
еще тэги

Вход для пользователей

Что такое OpenID?
  • Войти по OpenID
  • Скрыть вход по OpenID
  • Зарегистрироваться
  • Запросить новый пароль

Навигация

  • Exchange rate
  • Vote up/down
  • Переход по внешней ссылке
  • Последние сообщения
  • Фотогалереи

Курсы валют

  • 100 Казахских тенге — 20,8329 (-0.09)
  • 10 Украинских гривен — 38,8969 (-0.14)
  • 10 Китайских юаней — 45,0421 (-0.17)
  • 100 Японских иен — 36,4634 (-0.11)
  • 1 Доллар США — 30,6858 (-0.11)
  • 1 Евро — 39,2901 (+0.12)
  • 1000 Белорусских рублей — 10,1743 (-0.04)
  • 1 Турецкая лира — 20,2279 (0)

10 случайных заметок

  • Разработка модуля для Drupal. Часть3. Cron и темизация
  • Рассуждение на тему «Сколько стоит сайт?»
  • Лето 2007. Путешествие в Камбоджу – Таиланд – Малайзию. Часть 3. Камбоджа, Пномпень.
  • Швабрашвабр2
  • Куба, остров Святой Марии.
  • Разработка сайта на Drupal. Часть 1. Введение.
  • Home sheep home
  • Запустил на сайте новый небольшой сервис "тИЦ и PR одной кнопкой"
  • Старый смешной мультик
  • Несколько смешных картинок

Случайные фото

Типичная местная женщина
Местный ходок
Горы
Дом, плавающий по морю на больших поплавках
В Сингапурском зоопарке. Будда?
На подходе к Красной поляне...
Эль Ничо. На фоне я.
Еще одно фото замка
Оригинальная дорожная разметка в Гаване
Это я по дороге из Буканеро в Баракоа
Здание замка Акерхус
Фонтаны в Осло работают даже зимой. Карл Юхан Гате
Еще горы
Эль перро
Оденсе
Просто море
  • Отдых
  • Работа
  • Штуки-дрюки

При использовании материалов с сайта, пожалуйста, ставьте ссылку на источник. E-mail для связи: mne@romka.eu.