Свобода от Views
21:30Views — очень классный модуль. Он позволяет сэкономить километр времени,
когда нужно сделать простые сборные страницы. Но в нем иногда не
хватает гибкости. Например, для темизации. Либо для построения нужной
структуры адресов. Либо в случае, когда нужно сделать сложную логику
какого-нибудь каталога. Не важно. Суть в том, что зачастую проще
написать простой модуль, чем извращаться с Views и темизацией полей. (С
таксономией та же ерунда, между прочим.)
Я хочу показать, как просто создавать сборные страницы (и не только)
программно — через модули. Достаточно знать пару хуков. Снипеты, которые
я приведу ниже, я сохранил себе в Эверноуте — очень удобно.
Скоро будет выпущен Drupal 7, так что многие организации должны решить,
следует ли им обновляться с Drupal 5 или 6. Drupal хорош, если вы
делаете много сайтов и нужно создавать новые сайты быстро и без особой
траты на написание кода, или если вам просто нужен блог-на-стероидах.
Работа с Drupal это как жить в double-wide
(карточный домик), если вы не можете позволить себе традиционный дом.
Если у вас есть сайт, который делался на Drupal и вырос достаточно,
чтобы использовать полный рабочий день разработчиков, то вам нужно
перенести свой сайт на Yii PHP фреймворк.(PHP ненавистники могут
последовать за Onion и использовать Django Python фреймворк, хотя это
займет больше времени, смена языка и фреймворка)
Я технический директор сайта,
который перешел с Drupal на Yii 30 Апреля 2010 года. На то время, когда
мы еще только обсуждали перенос, было трудно найти подходящую
информацию, не было даже книг про Yii. Было несколько упоминаний по
поводу перехода с Drupal на Yii, но они не содержали достаточно данных,
чтобы я был спокоен. Я беспокоился, что Yii может быть медленнее, чем
наша сильно оптимизированная инсталляция Drupal, поэтому я решил
переписать 20% ядра нашего сайта (что давало нам 80% всего функционала)
за 30 дней. Казалось бы, отличный способ проверить продуктивность и
производительность фреймворка, и если Yii не даст результата после
месяца работы, мы всегда можем вернуться обратно к Drupal и перенести
обратно любые новые данные.
Yii был намного быстрее, чем наш Drupal сайт с 150 000 нодами (каждая с
переписаным URL) и 50 000 посетителями в день. Да, мы работали как
сумасшедшие эти 30 дней (и последующие 15), но оно стоило того. Время,
которое мы раньше тратили на отлов и исправление медленных запросов в
Drupal, мы с удовольствием тратили разрабатывая на Yii. Реальная выгода
от Yii пришла позже, когда мы переработали свой сайт.
С Yii MVC мы изменили всего 2 layout файла против нескольких десятков в Drupal.
Наступив на грабли в предыдущей статье про темизацию форм в друпал в виде модуля Node form columns, пришлось что-то срочно придумать, т.к. ручная расстановка элементов в коде шаблонов это как-то не кошерно. Решение вылилось в препроцессинг переменных для node_form.
In this blog post I am going to explain about setting up drupal multisite with Apache Alias and it is a continuation of previous blog post
where i explained about using single drupal installation to host more
than one site with quiz module branches (quiz 3.x and quiz 4.x) as
example.
more
Шаблоны мы будем складывать в sites/all/themes/mytheme/templates. Создадим шаблоны page.tpl.php — для страниц, node.tpl.php — для контента, block.tpl.php — для блоков, comment-wrapper.tpl.php — для блока с комментариями, comment.tpl.php — для одного комментария, header.tpl.php — для шапки, footer.tpl.php — для подвала, region.tpl.php — для регионов. Также, по аналогии с препроцессами, мы можем создавать файлы типа node-story.tpl.php для отображения материала типа story или block-user.tpl.php для блока user. Это позволяет темизировать отдельно разные типы содержимого сайта.
Препроцессы нужны для того, чтобы определить, какие переменные будут
доступны в шаблонах. Препроцессы мы будем складывать в sites/all/themes/mytheme/preprocess.
Создадим файлы preprocess-page.inc — для страницы, preprocess-node.inc
— для контента, preprocess-header.inc — для шапки, preprocess-footer.inc
— для подвала, preprocess-region.inc — для регионов, preprocess-block.inc
— для блоков, preprocess-comment.inc — для комментариев. Также
мы можем создавать файлы типа preprocess-node-story.inc для
обработки материала типа story или preprocess-block-user.inc для
блока user. Это позволяет обрабатывать отдельно разные типы содержимого
сайта. В основном в препроцессах я определял классы для разных регионов
сайта.
По созданию тем для друпала в интернете можно найти несколько статей (хорошая статья, советую почитать), однако обычно всё заканчивается банальным набором шаблонов и инфо-файлом. В этом топике я постараюсь доступно рассказать как создать гибкую и не самую простую тему.
Drupal: строим сайты
16:37Создание сайта — процесс непростой. Конечно, сайт-визитку можно соорудить за полчаса, но, если речь идет о более серьезном ресурсе, задача усложняется. Современный сайт — это не просто набор информационных материалов в статичном интерфейсе, а полноценная программная система, которая обеспечивает управление содержимым сайта, ведение базы данных пользователей, поисковые функции, загрузку изображений и т. д.