Как вы создаете страницы программно с drupal? - PullRequest
0 голосов
/ 28 апреля 2018

У меня сейчас есть сайт Drupal. Мне нужно сделать 1000 страниц в форме domain.com/names/name1.html domain.com/names/name2.html и т. Д. Каждая из них немного отличается, но в одном и том же формате. Каков наилучший способ обойти это? У меня проблемы с поиском учебников по этой теме.

1 Ответ

0 голосов
/ 02 мая 2018

Давайте сначала уточнить.

Как и предполагалось в комментариях к вашему вопросу, вы могли бы 1. создавать узлы программно . Допустим, у вас есть тип контента (тип узла) «Страница», а затем вызывается hook_install (для выполнения задачи после установки модуля) или hook_update_N (для выполнения задачи после запуска процедуры обновления) из пользовательского интерфейса. В модуле вы можете создать тысячу узлов типа «Страница» (в цикле for или лучше в виде пакетного процесса для предотвращения тайм-аутов), установить их псевдоним пути и все остальное, что вам нужно установить, готово. Уже есть тонны учебников.

И, конечно, вы также можете 2. создавать страницы программно , вызывая hook_menu из пользовательского модуля и добавляя пункт меню (маршрут), который принимает символы подстановки ($items['names/%']). Затем вы можете определить функцию обратного вызова ('page callback') для построения содержимого вашей страницы, которое будет вызываться при обращении к соответствующему URL-адресу, и вы также можете передавать подстановочные знаки в качестве аргументов ('page arguments') этой функции обратного вызова. Функция обратного вызова может просто вернуть массив визуализации, например.

Добавление пункта меню с функцией обратного вызова для визуализации некоторого пользовательского содержимого с помощью hook_menu обычно означает, что вы действительно только динамически управляете содержимым внутренней страницы (областью содержимого главной страницы или тем, как она вызывается в вашей текущей теме). Заголовок, главное меню, нижний колонтитул и т. Д. Просто остаются прежними. В зависимости от ваших потребностей вам также необходимо как-то создавать пользовательские ссылки на ваши пользовательские страницы и предоставлять их в виде пользовательских блоков или всего, что вы планируете делать с ними.

Хороший обзор второго подхода можно найти в документации к модулю Пример и подробно в Страница примера * документов подмодуля *1021*.

...