Блог о программировании на PHP, Yii2, 1C-Bitrix, а так же о фотографии как хобби и путешествиях.

SEO данные для страницы раздела и элемента на 14 версии bitrix

После введения в работу функционала 14-ой версии по SEO возникло несколько ситуаций, когда требуемый функционал работает некорректно:

  1. Первая ситуация, когда необходимо переопределить 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) или элемента.

  2. Вторая ситуация, когда мы размещаем компонент catalog.section и нам необходимо не выводить тайтл через него, НО битрикс допустили ошибку в коде компонента, и заголовок и прочее SEO 14-ой версии все равно устанавливается, даже если передать шаблону флаг SET_TITLE = N.
    Для решения этой проблема придется кастомизировать компонент и перенести закрывающуюся скобочку на проверку этого флага в конец определения новых SEO свойств.