Drupal

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

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

Ромка аватар

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

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

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

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

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

Ромка аватар

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

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

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

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

Ромка аватар

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

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

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

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

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

Ромка аватар

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

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

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

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

Ромка аватар

currencies.info

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

  1. ; $Id$

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

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

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

Ромка аватар

Система управления сайтом 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. Часть 6. Оптимизация Друпал

Submitted by Ромка on Вс, 03/01/2010 - 03:11

Ромка аватар

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

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

Разработка сайта на Drupal. Часть 4. Пример разработки корпоративного интранет-сайта на Drupal

Submitted by Ромка on Вс, 03/01/2010 - 02:51

Ромка аватар

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

Предположим, что имеется компания, которая занимается разработкой и интеграцией ПО. В ней работает несколько независимых групп разработчиков, каждая из которых занимается своим проектом. Задача секретаря компании — распределение входящих звонков между сотрудниками организации. Секретарь может не знать тонкостей работы отделов и технических терминов, а также кто из сотрудников занимается решением вопроса, с которым обращается позвонивший клиент, но при этом она должна направлять звонок в нужный отдел.

Решение

На основе CMS Drupal разрабатываем сайт, интегрированный с Active Directory. Благодаря такой интеграции пользователи могут для авторизации на сайте использовать логины и пароли от своих рабочих компьютеров. Для каждого сотрудника создается персональная страница с полями, частично доступными для редактирования самим сотрудником (краткая информация о себе, фотография), и частично доступными для редактирования сотрудниками отдела кадров (фамилия, имя, отчество, должность, контактный телефон и десяток ключевых слов — тэгов). Аналогичные страницы создаются для каждого отдела, по каждому из них имеется описание, телефоны, список всех сотрудников и информация о руководителе. Страница отдела описывается несколькими тегами, характеризующими его работу. При наличии такой системы секретарю достаточно двух-трех слов в вопросе клиента, после чего с помощью системы поиска он находит человека, который с наибольшей вероятностью сможет ответить на вопросы звонящего. Достаточно простой, но наглядный пример. Возможны более сложные варианты, кроме телефонного справочника, корпоративный сайт может содержать модули CRM, Helpdesk, «Доска объявлений» или «Доска почета», корпоративный чат или форум и др.

Разработка сайта на Drupal. Часть 3. Модули Drupal.

Submitted by Ромка on Вс, 03/01/2010 - 02:44

Ромка аватар

Кроме программных интерфейсов, в Drupal имеется несколько мощных модулей, благодаря которым даже без навыков программирования можно создавать проекты с довольно сложной структурой:

  • CCK — Content Construction Kit, визуальный редактор, позволяющий расширить любой тип контента с помощью любого количества дополнительный полей: картинки, файлы, видео-ролики с бесплатных видео-хостингов, ссылки на внешние и внутренние ресурсы и так далее. С технической точки зрения этот модуль представляет собой визуальный редактор для Node API, о котором уже говорилось.
  • Views — инструмент, позволяющий создавать списки документов, отфильтрованные по большому количеству различных параметров, например, по рейтингу, автору, дате публикации или последнего комментария, наличию или отсутствию определенных тэгов и другим параметрам. Фактически, этот модуль является графическим интерфейсом, с помощью которого пользователь создает сложный SQL-запрос к базе данных.
  • Panels — модуль, позволяющий без знания html, создать страницы разделенные на районы, данные для которых будут предоставляться различными модулями Друпала. Этот модуль, обычно, используется для создания главной страницы сайта, на которой выводятся блоки с последними новостями, форумными обсуждениями, комментариями и так далее.
  • Webforms — визуальный интерфейс для создания форм обратной связи и обработки данных, переданных через эти формы.
  • Еще один важный модуль — ImageCache. Он обеспечивает функции автоматической обработки изображений на основе пользовательских сценариев правил обработки (preset). Например, при публикации документа на сайте можно настроить ImageCache таким образом, чтобы сразу изменить масштаб картинки, вырезать фрагмент нужного размера, изменить палитру, повернуть и т. п. Иными словами, из одной картинки автоматически могут быть получены, например, пиктограмма, миниатюра для предварительного просмотра и полноразмерное изображение. Все эти модули интегрированы с системой темизации Drupal и позволяют изменять внешний вид создаваемых ими документов и списков.

Страницы

Subscribe to RSS - Drupal