Друпал

Пишем модуль под 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().

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

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

Пишем модуль под Drupal. Часть 4. Добавляем закладку «Сообщения с моим участием»

чт, 01.04.2010 13:47 :: olk

Ну что же, для того, что бы повторить функционал стандартного трэкера, добавим закладку «Сообщения с моим участием» для зарегистрированных пользователей.

Ну а что бы было совсем интересно (не повторять же код модуля tracker), добавим еще закладочку с материалами, опубликованными текущим пользователем, и закладочки с разбивкой по типам материалов (выбрать тип материалов можно будет на странице настройки модуля)

Шаг номер 8: Первое, что надо сделать, это модифицировать код функции cctracker_menu, что бы определить закладки на странице вывода.

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

ср, 31.03.2010 14:38 :: olk

Ну вот мы и добрались до вывода трэкера. Сначала просто повторим стандартный вывод (c небольшими дополнениями). Для более структурированной организации нашего модуля, все, что связано с выводом, будем размещать во вновь созданном файле cctracker.page.inc

Шаг номер 6:

Пишем модуль под Drupal. Часть 2. Создаем форму конфигурации модуля.

вт, 30.03.2010 22:33 :: olk

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

Шаг номер 4:

Пишем модуль под Drupal. Часть 1. Определение модуля.

вт, 30.03.2010 20:36 :: olk

Для того чтобы Друпал «увидел» модуль, нам необходимо создать директорию (с именем соответствующим названию модуля) в пути где друпал ищет модули (обычно это /sites/all/modules) и создать два файла имя_моуля.info и имя_моуля.module.

Давайте, что бы перейти к конкретике и не оперировать вымышленными или условными именами, дадим нашему модулю имя. Назовем его для примера - cctracker. (В данном случае приставка «cc» - для тех, кто обладает чувством юмора, расшифровывается как - «Cool code») Итак приступаем.

Пишем модуль под Drupal

вт, 30.03.2010 20:13 :: olk

Начинаю цикл небольших статей, где на конкретном примере будет показано, как сделать свой модуль под Drupal.

Часто у новичков возникает мнение, что свой модуль, это нечто сверхсложное и не достижимое. Хочу развеять этот миф, конечно, если вы владеете PHP и основами SQL. Также желательно хоть немного ознакомится с Drupal API, но в принципе, по мере создания модуля, мы «пройдемся» по основным возможностям Drupal api.

Построение модулей для разных целей описано на официальном сайте, на странице «Module developer's guide», но для тех, у кого трудности с переводом или пониманием, я попробую шаг за шагом пройти с вами процесс построения модуля.

Где можно скачать смайлики?

вт, 30.03.2010 11:25 :: stress

1. Ссылка в ReadMe http://hptel-prog.ru/sites/all/files/smileys.zip ошибочная. 2. Ссылка http://www.hotel-prog.ru/sites/all/files/smileys.zip не работает ("Запрашиваемая страница не найдена"). 3. В том архиве, что где-то нашёл, смайликов много, но работают только некоторые :(

Где взять правильный архив???

Страницы

Подписка на Друпал