Интересующая тема: как создать полноценный модуль с административной частью, разграничением прав, добавлением его в адм.меню. В общем: как создавать модуль от начала до конца.
RxB, в вашей ссылке только вводная часть для программирования по Друпалу. Тем более там упоминаются версии 5.x и 4.7, которые уже устарели.
Программирование под 6-ку отличается в куче мелочей.
"kosilko" wrote:
плюс конечно же можно брать в качестве работающих примеров код непосредственно из модулей друпала.
Учиться по кодам, особенно из core, очень сложно, а из не core - опасно. Я знаю, я так и учился. Книг по Друпалу на русском тогда не было, да и на английском их было очень мало.
Самое сложное, как показала практика, проникнутся смыслом и логикой хуков - зачем они, чем отличаются друг от друга (иногда это не наглядно) и как взаимодействуют друг с другом.
Оксана, советую начать с поэтапного чтения этого документа Developing for Drupal. В частности, вот этого документа Module developer's guide
К сожалению, аналога на русском языке я не видел.
В любом случае английский там очень простой. Не Шекспир, однако.
В качестве справочной информации по функция и хукам можно обращаться к api.drupal.ru.
большой разницы не вижу, та же самая хуковая структура, практически те же функции, да есть различия, но они минимальны.
Вы не правы. Могу привести один из примеров - hook_menu.
Только в одном хуке изменилось:
1. Убрали параметр $may_cache. Теперь хук запускается один раз при установке модуля. Раньше, этот хук запускался при каждом http-запросе к CMS. Сделали в целях оптимизации запросов к БД.
2. В 5-ке для каждого элемента меню URL подавался как отдельный параметр массива с индексом path.
Сейчас же URL подается как индекс ко всему списку элементов меню (и колбаков) этого модуля.
3. Изменился подход к системе защиты. Если в 5-ке нужно было самому определять доступ к элементу, то теперь существует такие параметры как access callback и access arguments, которые позволяют устанавливать функции проверки доступа. Сделано в связи с п. 1.
4. Параметр title теперь автоматически проходит через функцию t().
5. Появился дополнительный параметр file, который позволяет раскидывать колбаки по разным файлам. При этом Друпал сам делает Include. Элегантное и достаточно практическое решение - дополнительные inc-и загружаются только при необходимости.
6. В системе меню появились так называемые wildcard-ы, которые позволяют для динамически формируемых ссылок регистрировать только один раздел меню. При этом изменились требования к параметру page callback.
Это тот перечень, с которым мне пришлось столкнуться при переходе на 6-ку.
ИМХО такие изменения не назовешь минимальными...
Главное общий подход, а не тонкие моменты, мне, например, было трудно понять "Псевдо-ООП" друпала, у меня была книга Вандюка по программингу пятого друпала, я писал под шестой, да, согласен, что различия есть, но не фатальные
Прочитала весь док 'Module developer's guide' - все подробно и доступно написано. Дмитрий, спасибо за ссылку.
Можно еще вопрос? Что это за inc-файлы? Видела их в модулях. Для чего они - я интуитивно догадываюсь, но как их использовать? Я теряюсь, по какой фразе искать их в документации)).
И еще один вопрос по модулю: в статье не раскрыта тема, как для модуля делать страницы, например, с настройками, в виде табов. Это делается автоматически или нужно прописывать?
Что это за inc-файлы? Видела их в модулях. Для чего они - я интуитивно догадываюсь, но как их использовать? Я теряюсь, по какой фразе искать их в документации)).
это обычный вынос емкого кода в отдельный файл, тут уже вопрос в знании базовых особенностей PHP а не друпала. Использование инклюдов относится скорее к правилам хорошего тона и оптимизации, но не как железное правило для написания модулей. В друпале чаще всего инклюды прописываются в hook_menu как параметр #file. Если конкретно интересует как inc использован в отдельно взятом модуле, то вопрос решается простым поиска имени файла в исходниках.
"oksale" wrote:
в статье не раскрыта тема, как для модуля делать страницы, например, с настройками, в виде табов. Это делается автоматически или нужно прописывать?
в hook_menu флаг #type MENU_DEFAULT_LOCAL_TASK или MENU_LOCAL_TASK, все это в документации подробно расписано
А у тебя нет ЭТОЙ книги?
Там про разработку на Drupal 6.х очень много написано (точнее почти вся книга про нее).
Кстати, на книжной ярмарке в ДК Крупской она стоит 500 рублей.
А как например изменить внешний вид отображения модуля - например модуля Blog, ато выводится только ссылка,имя автора # Добавить комментарий
# Читать далее
а вверху "Blogs" как это изменить на русский язык?
Спасибо...
Комментарии
Ну... Начинаешь писать и заканчиваешь потом.
http://setegnom.com/node/253
http://andyceo.ruware.com/book/kak-napisat-modul-dlya-drupala
вся нужная документация на api.drupal.org.
плюс конечно же можно брать в качестве работающих примеров код непосредственно из модулей друпала.
RxB, спасибо за отличную ссылку! Буду пробовать.
RxB, в вашей ссылке только вводная часть для программирования по Друпалу. Тем более там упоминаются версии 5.x и 4.7, которые уже устарели.
Программирование под 6-ку отличается в куче мелочей.
Учиться по кодам, особенно из core, очень сложно, а из не core - опасно. Я знаю, я так и учился. Книг по Друпалу на русском тогда не было, да и на английском их было очень мало.
Самое сложное, как показала практика, проникнутся смыслом и логикой хуков - зачем они, чем отличаются друг от друга (иногда это не наглядно) и как взаимодействуют друг с другом.
Оксана, советую начать с поэтапного чтения этого документа Developing for Drupal. В частности, вот этого документа Module developer's guide
К сожалению, аналога на русском языке я не видел.
В любом случае английский там очень простой. Не Шекспир, однако.
В качестве справочной информации по функция и хукам можно обращаться к api.drupal.ru.
dimedrol, большой разницы не вижу, та же самая хуковая структура, практически те же функции, да есть различия, но они минимальны.
Вы не правы. Могу привести один из примеров - hook_menu.
Только в одном хуке изменилось:
1. Убрали параметр $may_cache. Теперь хук запускается один раз при установке модуля. Раньше, этот хук запускался при каждом http-запросе к CMS. Сделали в целях оптимизации запросов к БД.
2. В 5-ке для каждого элемента меню URL подавался как отдельный параметр массива с индексом path.
Сейчас же URL подается как индекс ко всему списку элементов меню (и колбаков) этого модуля.
3. Изменился подход к системе защиты. Если в 5-ке нужно было самому определять доступ к элементу, то теперь существует такие параметры как access callback и access arguments, которые позволяют устанавливать функции проверки доступа. Сделано в связи с п. 1.
4. Параметр title теперь автоматически проходит через функцию t().
5. Появился дополнительный параметр file, который позволяет раскидывать колбаки по разным файлам. При этом Друпал сам делает Include. Элегантное и достаточно практическое решение - дополнительные inc-и загружаются только при необходимости.
6. В системе меню появились так называемые wildcard-ы, которые позволяют для динамически формируемых ссылок регистрировать только один раздел меню. При этом изменились требования к параметру page callback.
Это тот перечень, с которым мне пришлось столкнуться при переходе на 6-ку.
ИМХО такие изменения не назовешь минимальными...
Главное общий подход, а не тонкие моменты, мне, например, было трудно понять "Псевдо-ООП" друпала, у меня была книга Вандюка по программингу пятого друпала, я писал под шестой, да, согласен, что различия есть, но не фатальные
Прочитала весь док 'Module developer's guide' - все подробно и доступно написано. Дмитрий, спасибо за ссылку.
Можно еще вопрос? Что это за inc-файлы? Видела их в модулях. Для чего они - я интуитивно догадываюсь, но как их использовать? Я теряюсь, по какой фразе искать их в документации)).
И еще один вопрос по модулю: в статье не раскрыта тема, как для модуля делать страницы, например, с настройками, в виде табов. Это делается автоматически или нужно прописывать?
это обычный вынос емкого кода в отдельный файл, тут уже вопрос в знании базовых особенностей PHP а не друпала. Использование инклюдов относится скорее к правилам хорошего тона и оптимизации, но не как железное правило для написания модулей. В друпале чаще всего инклюды прописываются в hook_menu как параметр #file. Если конкретно интересует как inc использован в отдельно взятом модуле, то вопрос решается простым поиска имени файла в исходниках.
в hook_menu флаг #type MENU_DEFAULT_LOCAL_TASK или MENU_LOCAL_TASK, все это в документации подробно расписано
А у тебя нет ЭТОЙ книги?
Там про разработку на Drupal 6.х очень много написано (точнее почти вся книга про нее).
Кстати, на книжной ярмарке в ДК Крупской она стоит 500 рублей.
А как например изменить внешний вид отображения модуля - например модуля Blog, ато выводится только ссылка,имя автора # Добавить комментарий
# Читать далее
а вверху "Blogs" как это изменить на русский язык?
Спасибо...