
1) просто шаблон привязать не получится. Придется делать фэйковую (пустую, невидимую в меню страницу) с нужным шаблоном, а потом использовать ее в качестве целевой для контента вашего модуля.
2) просто указать целевую страницу не выйдет - придется мудрить с роутами.
В двух словах алгоритм такой:
1) создаем страницу, использующую нужный шаблон. Делаем ее невидимой в меню (чтоб не светилась на сайте), отключаем поиск и кэширование (контент ведь будет постоянно меняться).
2) Идентификатор (ID) этой страницы скармливаем своему модулю (как - решайте сами).
3) В конструкторе класса вашего модуля городим примерно такой "огород" (пишу на коленке, так что за 100% работоспособность не ручаюсь):
Code: Select all
$this->RegisterRoute('/module_name\/(?P<your_value>[0-9]+)$/', array('action'=>'show_item', 'returnid' => $page_id));
- module_name - имя вашего модуля (хотя может быть любой текст)
- your_value - имя переменной, в которой вы получите переданные на страницу данные (например идентификатор записи, которую нужно отобразить).
- show_item - имя экшенса, который будет вызван (обработчик)
- $page_id - переменная, содержащая id фэйковой страницы для вывода результатов.
В результате всей этой галиматьи получится такая штуковина:
при обращении к странице вида
Code: Select all
http://ваш_сайт.ru/module_name/1234/
Все, что теперь вам остается - создать в вашем списке кучу ссылок вида http://ваш_сайт.ru/module_name/1234/, заменяя 1234 на реальные идентификаторы записей.
Да, чуть не забыл: описанный выше способ заточен под использование ЧПУ.
----
Возможно я изобретаю велосипед и существует способ проще, но я его не нашел.
