Здравствуйте. Сразу скажу Друпал знаю пару часов. Взял Drupal не по своей воле. Общее впечатление не самое хорошее, надеюсь это не надолго. Есть задание создать тему Drupal, то есть интегрировать html, css, js в шаблоны. Я как любитель хорошего стиля MVC был удивлён, что MVC в Друпале как-то "не по-русски" (не по-человечески) реализовано или я чего-то не разобрал. Помогите просветлить:
1) Модули - это и есть контроллеры?
2) З View ничего не понятно. Есть в теме только page.tpl.php, node.tpl.php ну и еще пару темплейтов стандартных. Там есть глобальная переменная $content. Опять же откуда она берётся?? Один темплейт page.tpl.php сгодиться только если страницы статические. А как сделать если я хочу что-нибудь вытянуть из базы, прописать что-нибудь в контроллере и передать данные в свой темплейт, приведите пример пожалуйста.
3) Не понял как реализовать переключение между страницами. Есть пару страниц, 1я страница - главная, приветствие и всё такое, 2я страница - форма для заполнения данных, 3я - поиск по базе.
4) Ноды - это типа статический контент?
5) Примеров сайтов на Друпале так и не нашёл для скачивания (имею ввиду примеры).
Спасибо за помощь.
Комментарии
В самом верху данного форума есть ссылка "Документация", там все есть. Начните с нее, а дальше как пойдет.
Пишу навскидку, голова под вечер уже не варит, за ошибки просьба ногами по почкам не пинать.
Грубо и утрированно:
1. запрос → модуль → ядро → шаблонизатор → браузер
2. запрос (→ модуль) → ядро → куча переменных → шаблонизатор → куски html-кода → шаблонизатор → браузер. $content — это основное содержимое ноды ($body + доп. поля + данные из модулей (если есть)).
3. система меню + ноды. Поковыряетесь детальнее — поймёте.
4. ноды это ни разу не статический контент. Запомните раз и навсегда. Это динамический контент, созданный путем сборки как в п.2.
5. а какие вам примеры надо? Объясните, пожалуйста.
Как работает друпал? Пусть вы набрали в браузере имя сайта + какой-то там путь на нём. Путь передаётся ядру друпала через get-переменную q. Ядро системы выясняет какая функция, какого модуля отвечает за этот путь и сливает все дело ей. Весь HTML-код от этой функции попадает в переменную $content и выводится в шаблон page.tpl.php. Это вкратце.
Друпал не разделяет процесс строго на MVC (или MVT в терминологии джанго). Естественно, разделение на код и шаблоны, данные и оформление есть. Только концепции другие.
Они могут содержат в себе всё - и модель и контроллер и виды, всё автоматически интегрируется в систему. Модели описываются в схемах ([ru-api=hook_schema]), виды (шаблоны) - это препроцесс (подготовка переменных, [ru-api=template_preprocess], как пример — формирование переменных для ноды — [ru-api=template_preprocess_node]) и собственно сами шаблоны, которые хранятся в *.tpl.php-файлах. Ну и контроллеры они же.
Это одна из переменных. Можно перехватить её формирование, можно сформировать свои. Почитайте документацию, в двух словах не объяснить.
http://www.pcmag.ru/solutions/detail.php?ID=32535
http://www.pcmag.ru/solutions/detail.php?ID=37518
http://www.pcmag.ru/solutions/detail.php?ID=36589
СОбственно, покрывает основные вопросы.