В Списке типовых динамических страниц есть Информационная система. В ее настройках есть код, приведенный внизу. Вот в него вставить код подмены? При этом для страницы со списком по умолчанию останется макет, заданнй в Структуре?
И второе.
На сайте несколько ИС Статьи ("Статьи о дороге", "Статьи о погоде" и т.п.). И для каждого случая потребуется своя подмена макета. Тогда придется создать создать несколько ТДС для каждого варианта.
Это допустимо?
<?php
$oInformationsystem = Core_Entity::factory('Informationsystem', Core_Array::get(Core_Page::instance()->libParams, 'informationsystemId'));
$Informationsystem_Controller_Show = new Informationsystem_Controller_Show($oInformationsystem);
$Informationsystem_Controller_Show
->limit(Core_Array::get(Core_Page::instance()->libParams, 'itemsOnPage'))
->parseUrl();
// Текстовая информация для указания номера страницы, например "страница"
$pageName = Core_Array::get(Core_Page::instance()->libParams, 'page')
? Core_Array::get(Core_Page::instance()->libParams, 'page')
: 'страница';
// Разделитель в заголовке страницы
$pageSeparator = Core_Array::get(Core_Page::instance()->libParams, 'separator')
? Core_Page::instance()->libParams['separator']
: ' / ';
$aTitle = array($oInformationsystem->name);
$aDescription = array($oInformationsystem->name);
$aKeywords = array($oInformationsystem->name);
if (!is_null($Informationsystem_Controller_Show->tag) && Core::moduleIsActive('tag'))
{
$oTag = Core_Entity::factory('Tag')->getByPath($Informationsystem_Controller_Show->tag);
if ($oTag)
{
$aTitle[] = $oTag->seo_title != '' ? $oTag->seo_title : Core::_('Informationsystem.tag', $oTag->name);
$aDescription[] = $oTag->seo_description != '' ? $oTag->seo_description : $oTag->name;
$aKeywords[] = $oTag->seo_keywords != '' ? $oTag->seo_keywords : $oTag->name;
}
}
if ($Informationsystem_Controller_Show->group)
{
$oInformationsystem_Group = Core_Entity::factory('Informationsystem_Group', $Informationsystem_Controller_Show->group);
do {
$aTitle[] = $oInformationsystem_Group->seo_title != ''
? $oInformationsystem_Group->seo_title
: $oInformationsystem_Group->name;
$aDescription[] = $oInformationsystem_Group->seo_description != ''
? $oInformationsystem_Group->seo_description
: $oInformationsystem_Group->name;
$aKeywords[] = $oInformationsystem_Group->seo_keywords != ''
? $oInformationsystem_Group->seo_keywords
: $oInformationsystem_Group->name;
} while($oInformationsystem_Group = $oInformationsystem_Group->getParent());
}
if ($Informationsystem_Controller_Show->item)
{
$oInformationsystem_Item = Core_Entity::factory('Informationsystem_Item', $Informationsystem_Controller_Show->item);
$aTitle[] = $oInformationsystem_Item->seo_title != ''
? $oInformationsystem_Item->seo_title
: $oInformationsystem_Item->name;
$aDescription[] = $oInformationsystem_Item->seo_description != ''
? $oInformationsystem_Item->seo_description
: $oInformationsystem_Item->name;
$aKeywords[] = $oInformationsystem_Item->seo_keywords != ''
? $oInformationsystem_Item->seo_keywords
: $oInformationsystem_Item->name;
}
if ($Informationsystem_Controller_Show->page)
{
array_unshift($aTitle, $pageName . ' ' . ($Informationsystem_Controller_Show->page + 1));
}
if (count($aTitle) > 1)
{
$aTitle = array_reverse($aTitle);
$aDescription = array_reverse($aDescription);
$aKeywords = array_reverse($aKeywords);
Core_Page::instance()->title(implode($pageSeparator, $aTitle));
Core_Page::instance()->description(implode($pageSeparator, $aDescription));
Core_Page::instance()->keywords(implode($pageSeparator, $aKeywords));
}
Core_Page::instance()->object = $Informationsystem_Controller_Show;