Блоги

Темизация не стандартными методами в Друпал

ср, 03.11.2010 20:26 :: olk

Работая над небольшим проектом, столкнулся с проблемой – если какой-либо модуль не предоставляет хуков по темизации вывода своего контента, то довольно сложно темизировать представить информацию в нужном виде. Но как всегда – Друпал гибок и могуч, и эту проблему можно обойти если модуль использует (и регистрирует) свои функции темизации в общем реестре.

Новый модуль cclive (Прямой эфир)

пн, 24.05.2010 15:47 :: olk
Пока только для тестирования. Новый модуль реализует показ блока и страницы так называемого "Прямого эфира", т.е. показывает информацию по самым последним изменениям при комментировании материалов. Отличается от аналогичных модулей широкой возможностями по темизации вывода. Т.е. вы можете настроить вывод (через шаблоны tpl.php) практически в любом удобном для вас формате. Для этого в модуле реализован вывод шаблоны практически для всех элементов.

Темизация страницы: cclive-page-wrapper.tpl.php Шаблон вывода страницы доступны переменные $livedata - непосредственно данные $pager - стандартный пэйджинг

Мини-сервер своими руками

пт, 21.05.2010 21:54 :: olk
Ни для кого не секрет, что у каждого уважающего себя «итишника» со временем скапливается куча устаревшего оборудования, которое вроде уже и не используется и выкинуть жалко.
Вот и я, наводя в очередной раз порядок в своих «закромах», обнаружил интересное устройство - внешний CD-RW девайс от фирмы HP.
Для интереса измерил его размер, который оказался 280 x 180 x 60. Сразу вспомнился формат материнских плат Mini-ITX (170 x 170) и возникла идея сделать на основе данного корпуса маленький сервер 24/7 с «правильной» ОС для отладки веб-приложений и сайтов. Благо дома у меня «выделенка» со статическим IP и соответственно я могу иметь доступ к своему серверу практически из любого места.

Ну что-же, сказано сделано.

Как показать в профиле пользователя его роли

чт, 22.04.2010 11:56 :: olk

Во многих случаях, такие вопросы достаточно просто решаются через темизацию, а конкретно через файл template.php и/или файл шаблона. В нашем случае наиболее удобным местом, где можно «подправить» вывод профиля пользователя является функция preprocess_user_profile.

Пишем модуль под Drupal. Часть 9. Выводим трэкер в профиле пользователя

ср, 21.04.2010 10:47 :: olk

В этой части мы избавимся от стандартного модуля tracker и организуем вывод трэкера с сообщениями пользователя в его профиль. А заодно проделаем не большой трюк, чтобы не потерять ссылки на поисковиках относящиеся стандартному трэкеру. Также мы поправим вывод заголовков.

В файле cctracker.module изменим наш хук menu и добавим вспомогательную функцию _cctracker_user_access, отвечающую за доступ к трэкеру профиля пользователя.

Шаг номер 20: Меняем функция cctracker_menu.

Пишем модуль под Drupal. Часть 8. Оформляем вывод

чт, 15.04.2010 13:47 :: olk

В этой небольшой части мы оформим вывод трэкера (а проще - займемся «украшательством»)

Шаг номер 18:

Для начала в графическом редакторе создадим две небольшие картинки (иконки обозначающие «прикрепление» материала и иконку сигнализирующую о том, что нода помещена на главную страницу), я не стал сильно извращаться и сделал две несложные пнг-эшки размером 32х32.

Кнопка - кнопка (knopka.png)

На главной - на главной (promote.png)

Пишем модуль под Drupal. Часть 7. Переделываем вывод трэкера

ср, 14.04.2010 11:03 :: olk
В этой части мы переделаем вывод страницы трэкера с учетом дополнительных данных сохраняемых в ноде. Нам надо исключить ноды помеченный как не публикуемые в трэкере, и поместить сверху списка ноды, помеченные как «закрепление вверху трэкера». Все изменения мы будем проводить в файле cctracker.page.inc.

Шаг номер 16:

Изменяем функцию _cctracker_get_query, которая формирует набор данных для вывода трэкера.В ней мы к условиям отбора добавим проверку на исключение нод из общего набора, и в сортировку вставим зависимость от закрепления ноды сверху списка.

Маленькие хитрости. Отладка кода.

вт, 13.04.2010 16:47 :: olk
Для пишущей (и начинающей писать) братии под Друпал расскажу о маленькой хитрости, которую я использую для отладки кода при написании модулей и функций темизации. Вообще-то это известный «велосипед», но может кому нибудь из начинающих поможет. Я не люблю использовать модуль devel из за его тяжести, поэтому использую простенькую функцию помещенную мной в файл settings.php

Функция:

Пишем модуль под Drupal. Часть 6. Хуки form_alter и nodeapi

вт, 13.04.2010 14:39 :: olk
Теперь нам надо позволить пользователям (с разрешением на закрепление ноды вверху трэкера и/или запрещением публикации ноды в трэкере) при редактировании материала как-то устанавливать данные признаки. В этом нам поможет хук form_alter.
Хук form_alter позволяет добавить либо изменить элементы формы еще до рендеринга этой самой формы, причем если это форма редактирования (добавления) ноды, то в элементе $form['#node'] будет присутствовать текущий объект ноды.

Пишем модуль под Drupal. Часть 5. Хук пермишен и файл инсталляции

вт, 06.04.2010 13:30 :: olk

Помните, в начале статьи я говорил о том, что мы добавим несколько «фич» к нашему трэкеру:

  • возможность не показывать конкретный материал (в независимости от типа)
  • возможность закрепить материал вверху списка.
Причем эту возможность мы дадим не всем пользователям, а только пользователям с определенными ролями. Поэтому настала пора определить хук perm.
Данный хук определяет права доступа пользователя. После реализации хука на странице прав доступа пользователей появится возможность разрешить или запретить определенные действия, выполняемые модулем. Для проверки права доступа используется функция user_access().

Нам надо регулировать доступ к двум действиям нашего модуля:

  • Разрешение на запрет размещение ноды в трэкере
  • Разрешение на закрепление ноды вверху списка трэкера.

Страницы

Подписка на RSS - блоги