Page 1 of 1

Смена дизайна для контента

Posted: Fri Jun 21, 2013 8:20 am
by vaflan
Интересная такая ситуация.

Возможно ли из модуля сменить загрузочный шаблон от контента, не меняя что либо в core движка?

Пишу модуль, и как всем известно есть параметр $returnid, он отображает весь модуль на той странице, куда мы пошлём, и при этом загружает шаблон (template) который указан в контентной странице.

Разжёвываю вопрос ещё раз, можно ли отобразить модуль без указания контента на другом шаблоне?

Есть вариант, но это издец какой тупой, постоянно при лоуде менять в базе контенту - шаблон.

Re: Смена дизайна для контента

Posted: Mon Jun 24, 2013 2:53 pm
by guro
А я всё равно не понял, что именно вы хотите получить.
Если вы хотите вывести результат выполнения модуля без какого либо оформления, то достаточно создать страницу с пустым шаблон, в котором будет только

Code: Select all

{content}
и подставить в $returnid id этой страницы.

Re: Смена дизайна для контента

Posted: Tue Jun 25, 2013 8:03 am
by vaflan
guro wrote:А я всё равно не понял, что именно вы хотите получить.
Если вы хотите вывести результат выполнения модуля без какого либо оформления, то достаточно создать страницу с пустым шаблон, в котором будет только

Code: Select all

{content}
и подставить в $returnid id этой страницы.
Это понятно, речь о другом. Привожу пример:

Есть 3 шаблона: главная страница, список продукта, о продукте.
Что бы создавать модуль с разными шаблонами, надо страницы + MLE, это выходит 6 страниц, и это только 2 языка.

Как сделать из одной страницы допустим $returnid = 1
Показывалась страница с разными шаблоном, указав из модуля нужный шаблон.

Извиняюсь если не так изъясняюсь

Re: Смена дизайна для контента

Posted: Tue Jun 25, 2013 9:17 am
by guro
А вы используете механизм создания маршрутов для чпу? Если да, тогда можете вот так попробовать

Code: Select all

$parms = array('action'=>'object', 'returnid'=>$detailpage);
$route = new CmsRoute('/objects\/(?P<obj_number>[0-9]+)$/', $this->GetName(), $parms, false);
cms_route_manager::register($route);
а $detailpage вы можете хранить в БД как доп. параметр для страницы