Привет.
Получил в работу сайт от другого специалиста.
Внутри шаблона компонента catalog.section.list подключаются разные шаблоны news.list в зависимости от пользовательского поля UF_TPL. Происходит это таким образом:
Код |
---|
<? if(!empty($arResult['SECTIONS'])): ?>
<? foreach ($arResult['SECTIONS'] as &$arSection): ?>
<?
$this->AddEditAction($arSection['ID'], $arSection['EDIT_LINK'], $strSectionEdit);
$this->AddDeleteAction($arSection['ID'], $arSection['DELETE_LINK'], $strSectionDelete, $arSectionDeleteParams);
?>
<div id="<? echo $this->GetEditAreaId(arSection['ID']); ?>">
<?=$arSection['DESCRIPTION']?>
<?
if(file_exists($_SERVER['DOCUMENT_ROOT'].$templateFolder.'/tpl.'.$arSection['UF_TPL'].'.php')) include($_SERVER['DOCUMENT_ROOT'].$templateFolder.'/tpl.'.$arSection['UF_TPL'].'.php');
?>
</div>
<? endforeach; ?>
<? endif; ?>
|
Код вызова компонента news.list с разными шаблонами соответственно в директории шаблона catalog.section.list.
- tpl.1.php
- tpl.2.php
- tpl.3.php
В них соответственно находится код вызова компонента news.list с разными шаблонами.Реализовали многосайтовость (англоязычный и русскоязычный) на разных доменах. Теперь нужно добавить новые пользовательские поля для англоязычного сайта. То есть желательно создать новые файлы (tpl.9.php и тд) или реализовать так, как в коде ниже? Таким образом, все работает. Но есть оптимальнее вариант? То есть здесь значение UF_TPL для англоязычного сайта уменьшается на количество полей в разделе русскоязычного сайта.
Код |
---|
<? if(!empty($arResult['SECTIONS'])): ?>
<? foreach ($arResult['SECTIONS'] as &$arSection): ?>
<?
$this->AddEditAction($arSection['ID'], $arSection['EDIT_LINK'], $strSectionEdit);
$this->AddDeleteAction($arSection['ID'], $arSection['DELETE_LINK'], $strSectionDelete, $arSectionDeleteParams);
?>
<div id="<? echo $this->GetEditAreaId(arSection['ID']); ?>">
<?=$arSection['DESCRIPTION']?>
//ДОБАВЛЕНО
<?if (LANGUAGE_ID == 'ru') {
$uf_tpl = $arSection['UF_TPL'];
} elseif (LANGUAGE_ID == 'en') {
$uf_tpl = $arSection['UF_TPL'] - 8;
}?>
//ДОБАВЛЕНО
<?
if(file_exists($_SERVER['DOCUMENT_ROOT'].$templateFolder.'/tpl.'.$uf_tpl.'.php')) include($_SERVER['DOCUMENT_ROOT'].$templateFolder.'/tpl.'.$uf_tpl.'.php');
?>
</div>
<? endforeach; ?>
<? endif; ?> |
Думается, что мое решение не менее костыльное, чем предыдущего программиста.