@Dr3amC

Тайтл в catalog.section?

Доброго всем времени суток. Сейчас столкнулся с такой проблемой:
Весь каталог сделан 1 страницей, в 3 файла /catalog/list.php, /catalog/index.php, /catalog/detail.php. При переключении на другой раздел просто аяксом подтягивается содержимое раздела и выводится. Необходимо чтобы для каждого раздела выводился свой title. Через SetPagePropety получается, но нужно чтобы именно значение выводилось из настройки раздела(SEO), чтобы клиент просто заполнил в админке. Вот с этим затык - получить значение, которое указано в админке никак не получается. Пробовал использовать и из обучения, но идет по ветке return "Стандартная страница"; title получается пустым. Перепробовали все настройки и компонента и изменения страницы. Еще конечно останется проблема, что тайтл не будет меняться до перезагрузки страницы, но этот тайл еще надо получить, а это никак не получается.
Код

$APPLICATION->AddBufferContent('ShowCondTitle');

function ShowCondTitle()
{
global $APPLICATION;
if (!$APPLICATION->GetTitle())
return "Стандартная страница";
else
return $APPLICATION->GetTitle();
}
$APPLICATION->SetPageProperty("title", ShowCondTitle());

Спасибо!
  • Вопрос задан
  • 433 просмотра
Решения вопроса 1
2amedia
@2amedia
Сайты на Bitrix - 1000 р/час
а в чем собственно проблема?


Получить поля SEO для элемента можно так:
CModule::IncludeModule("iblock");
$ipropValues = new \Bitrix\Iblock\InheritedProperty\ElementValues(
$arCurElem["IBLOCK_ID"], // ID инфоблока
$arCurElem["ID"] // ID элемента
);
$arElMetaProp = $ipropValues->getValues();

echo ''; print_r ($arElMetaProp); echo '';

Поля SEO для раздела можно получить похожим способом:

CModule::IncludeModule("iblock");

$rsSection = CIBlockSection::GetList(
array(),
array(
"IBLOCK_ID"=>$arParams['IBLOCK_ID'],
"ACTIVE"=>"Y",
"=CODE"=>$arParams["SECTION_CODE"]),
false
);

if($arSection = $rsSection->GetNext()){

$ipropValues = new \Bitrix\Iblock\InheritedProperty\SectionValues(
$arSection["IBLOCK_ID"],
$arSection["ID"]
);

$arSection["IPROPERTY_VALUES"] = $ipropValues->getValues();
echo ""; print_r($arSection); echo '';
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы