После введения в работу функционала 14-ой версии по SEO возникло несколько ситуаций, когда требуемый функционал работает некорректно:
- Первая ситуация, когда необходимо переопределить SEO для товара или группы, НО функционал 14-ой версии позволяет только переопределить их текущего и всех вложенных. Здесь необходимо использовать старый вариант работы с SEO, а именно свойства SEO_TITLE, SEO_KEYWORDS, SEO_DESCRIPTION для элемента и UF_SEO_TITLE, UF_SEO_KEYWORDS, UF_SEO_DESCRIPTION для раздела, соответственно указав их в настройках вывода компонента каталога.
Далее, необходимо исправить недоработку битрикса в компоненте catalog.section и catalog.element по работе с новыми свойствами SEO, дело в том, что они зарезервировали возможность изменения SEO как для старого способа, так и для нового, но вот проблема, $arResult[«PROPERTIES»] в компоненте не заполняется, необходимо передавать его из шаблона, для этого добавляем следующий код в result_modifier.php шаблона:$arResult["PROPERTIES"][$arParams["BROWSER_TITLE"]]["VALUE"] = $arSection[$arParams["BROWSER_TITLE"]]; $arResult["PROPERTIES"][$arParams["META_KEYWORDS"]]["VALUE"] = $arSection[$arParams["META_KEYWORDS"]]; $arResult["PROPERTIES"][$arParams["META_DESCRIPTION"]]["VALUE"] = $arSection[$arParams["META_DESCRIPTION"]]; $cp = $this->__component; if( is_object( $cp ) ){ $cp->arResult['PROPERTIES'] = $arResult["PROPERTIES"]; $cp->SetResultCacheKeys( array('PROPERTIES') ); }
, где $arSection — данные для раздела (полученные через GetList) или элемента.
- Вторая ситуация, когда мы размещаем компонент catalog.section и нам необходимо не выводить тайтл через него, НО битрикс допустили ошибку в коде компонента, и заголовок и прочее SEO 14-ой версии все равно устанавливается, даже если передать шаблону флаг SET_TITLE = N.
Для решения этой проблема придется кастомизировать компонент и перенести закрывающуюся скобочку на проверку этого флага в конец определения новых SEO свойств.