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

вт, 30.03.2010 20:13 :: olk

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

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

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

Сразу оговорюсь, мы будем рассматривать построение модуля под версию Друпала 6.x (как наиболее используемую на момент публикации статьи). Возможно, я не буду придерживаться «учебной» последовательности, где то вы не найдете объяснений, как я пришел к этому решению, вполне возможны ошибки и избыточность в коде.

Я не буду показывать создание модуля на выдуманных примерах, просто возьмем конкретную (и возможно полезную) задачу и попробуем ее решить при помощи своего модуля. Итак, что бы нам полезного сделать?

Меня давно смущал стандартный модуль Друпала - «tracker». Напомню, что он показывает последние обновленные материалы на сайте. В принципе все, что надо в нем есть, но давайте попробуем подойти к нему «креативно».

[d]Для краткости в дальнейшем будем называть «список последних обновленных сообщений» - трэкер.[/d]

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

Для скептиков, которые скажут: Зачем изобретать велосипед, есть же модуль Views, при помощи которого, все ваши задумки можно реализовать". Но во-первых: это учебный материал, во-вторых: поверьте не все ...

Да еще: я знаю про существование модулей xtracker, tracker2 и иже подобных.

Добавить комментарий
« Добавить комментарий
» Добавить комментарий