Давайте сначала уточнить.
Как и предполагалось в комментариях к вашему вопросу, вы могли бы 1. создавать узлы программно . Допустим, у вас есть тип контента (тип узла) «Страница», а затем вызывается hook_install
(для выполнения задачи после установки модуля) или hook_update_N
(для выполнения задачи после запуска процедуры обновления) из пользовательского интерфейса. В модуле вы можете создать тысячу узлов типа «Страница» (в цикле for или лучше в виде пакетного процесса для предотвращения тайм-аутов), установить их псевдоним пути и все остальное, что вам нужно установить, готово. Уже есть тонны учебников.
И, конечно, вы также можете 2. создавать страницы программно , вызывая hook_menu
из пользовательского модуля и добавляя пункт меню (маршрут), который принимает символы подстановки ($items['names/%']
). Затем вы можете определить функцию обратного вызова ('page callback'
) для построения содержимого вашей страницы, которое будет вызываться при обращении к соответствующему URL-адресу, и вы также можете передавать подстановочные знаки в качестве аргументов ('page arguments'
) этой функции обратного вызова. Функция обратного вызова может просто вернуть массив визуализации, например.
Добавление пункта меню с функцией обратного вызова для визуализации некоторого пользовательского содержимого с помощью hook_menu
обычно означает, что вы действительно только динамически управляете содержимым внутренней страницы (областью содержимого главной страницы или тем, как она вызывается в вашей текущей теме). Заголовок, главное меню, нижний колонтитул и т. Д. Просто остаются прежними. В зависимости от ваших потребностей вам также необходимо как-то создавать пользовательские ссылки на ваши пользовательские страницы и предоставлять их в виде пользовательских блоков или всего, что вы планируете делать с ними.
Хороший обзор второго подхода можно найти в документации к модулю Пример и подробно в Страница примера * документов подмодуля *1021*.