После начальной загрузки единственной вещью, которая происходит, является система маршрутизатора меню, которая выясняет, какой обратный вызов страницы отвечает за этот запрос. Для этого он полагается на информацию, которую все установленные модули вернули в своем определении hook_menu () (это хранится в базе данных и обновляется только при явном запросе на это, когда новые модули включены для пример).
Этот хук может контролировать много . Например, права доступа, определение аргументов, заголовок ссылок меню и так далее. Кроме того, маршрутизаторы меню могут быть почти такими же сложными, как вы хотите, они не ограничены обычными шаблонами контроллера / действия. Я думаю, вы можете определить пункты меню маршрутизатора до 9 элементов, например, «ваш модуль / просмотр /% / sub /% /% / что угодно».
См. http://drupal.org/node/109131 для краткого обзора с примером.
Внутри обратного вызова этой страницы модуль-поставщик может делать все, что захочет. Он может использовать систему тем, если он этого хочет, запускать перехваты или делать что-то еще с частью содержимого на странице. Система тем будет включать в себя все остальные части тематической страницы, включая другие регионы и другие блоки, которые включаются в эти области автоматически. Это важно помнить при создании обратных вызовов, которые отвечают на запрос AJAX или предоставляют такие вещи, как каналы XML и т. Д. В этих случаях вам нужно будет предпринять дальнейшие шаги, чтобы внести коррективы в тему, чтобы удовлетворить запросы, которые не должны включать «остаток» от страница.