Перейти к основному контенту

Установка метатегов для страниц фильтра (1C Bitrix)

Создать Highload-блоки

img-1.png

Обновлен - UF_DATE_UPDATE - Дата

img-2.png

URL - UF_URL - Строка

H1 - UF_H1 - Строка

Tile - UF_TITLE - строка

Description - UF_DESCRIPTION - строка

use Bitrix\Main\Localization\Loc;
use Bitrix\Main\Loader;
Loader::includeModule("highloadblock");
use Bitrix\Highloadblock as HL;
use Bitrix\Main\Entity;

$hlbl = 3;
$hlblock = HL\HighloadBlockTable::getById($hlbl)->fetch();

$entity = HL\HighloadBlockTable::compileEntity($hlblock);
$entity_data_class = $entity->getDataClass();

$rsData = $entity_data_class::getList(array(
    "select" => array("*"),
    "order" => array("ID" => "ASC"),
    "count_total" => true,
    "filter" => array("UF_URL" => $APPLICATION->GetCurDir())
));
if ($rsData->getCount() != 0) {
    while ($arData = $rsData->Fetch()) {
        if (!empty($arData['UF_TITLE']))
            $APPLICATION->SetPageProperty("title", $arData['UF_TITLE']);
        if (!empty($arData['UF_H1']))
            $APPLICATION->SetTitle($arData['UF_H1']);
        if (!empty($arData['UF_DESCRIPTION']))
            $APPLICATION->SetPageProperty("description", $arData['UF_DESCRIPTION']);
        $textTop = !empty($arData['UF_TEXT_TOP']) ? $arData['UF_TEXT_TOP'] : '';
        $textBottom = !empty($arData['UF_TEXT_BOTTOM']) ? $arData['UF_TEXT_BOTTOM'] : '';
    }
} else {
    $APPLICATION->AddHeadString('<meta name="robots" content="noindex">',true);
}

_hl_seo-filter.

Пример создания Highload-блока через API

<?php

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); use Bitrix\Main\Loader; use Bitrix\Highloadblock as HL; Loader::IncludeModule('highloadblock'); $arLangs = Array( 'ru' => 'SEO Фильтр', 'en' => 'SEO Filter' ); //создание HL-блока для корзин покупателей $result = HL\HighloadBlockTable::add(array( 'NAME' => 'SEOFilter', //должно начинаться с заглавной буквы и состоять только из латинских букв и цифр 'TABLE_NAME' => 'seofilter', //должно состоять только из строчных латинских букв, цифр и знака подчеркивания )); if ($result->isSuccess()) { $id = $result->getId(); foreach($arLangs as $lang_key => $lang_val){ HL\HighloadBlockLangTable::add(array( 'ID' => $id, 'LID' => $lang_key, 'NAME' => $lang_val )); } } else { $errors = $result->getErrorMessages(); var_dump($errors); } $UFObject = 'HLBLOCK_'.$id; $arCartFields = Array( 'UF_DATE_UPDATE'=>Array( 'ENTITY_ID' => $UFObject, 'FIELD_NAME' => 'UF_DATE_UPDATE', 'USER_TYPE_ID' => 'datetime', 'MANDATORY' => 'Y', "EDIT_FORM_LABEL" => Array('ru'=>'Дата', 'en'=>'Дата'), "LIST_COLUMN_LABEL" => Array('ru'=>'Дата', 'en'=>'Дата'), "LIST_FILTER_LABEL" => Array('ru'=>'Дата', 'en'=>'Дата'), "ERROR_MESSAGE" => Array('ru'=>'', 'en'=>''), "HELP_MESSAGE" => Array('ru'=>'', 'en'=>''), ), 'UF_URL'=>Array( 'ENTITY_ID' => $UFObject, 'FIELD_NAME' => 'UF_URL', 'USER_TYPE_ID' => 'string', 'MANDATORY' => 'Y', "EDIT_FORM_LABEL" => Array('ru'=>'URL', 'en'=>'URL'), "LIST_COLUMN_LABEL" => Array('ru'=>'URL', 'en'=>'URL'), "LIST_FILTER_LABEL" => Array('ru'=>'URL', 'en'=>'URL'), "ERROR_MESSAGE" => Array('ru'=>'', 'en'=>''), "HELP_MESSAGE" => Array('ru'=>'', 'en'=>''), ), 'UF_H1'=>Array( 'ENTITY_ID' => $UFObject, 'FIELD_NAME' => 'UF_H1', 'USER_TYPE_ID' => 'string', 'MANDATORY' => 'Y', "EDIT_FORM_LABEL" => Array('ru'=>'H1', 'en'=>'H1'), "LIST_COLUMN_LABEL" => Array('ru'=>'H1', 'en'=>'H1'), "LIST_FILTER_LABEL" => Array('ru'=>'H1', 'en'=>'H1'), "ERROR_MESSAGE" => Array('ru'=>'', 'en'=>''), "HELP_MESSAGE" => Array('ru'=>'', 'en'=>''), ), 'UF_TITLE'=>Array( 'ENTITY_ID' => $UFObject, 'FIELD_NAME' => 'UF_TITLE', 'USER_TYPE_ID' => 'string', 'MANDATORY' => 'Y', "EDIT_FORM_LABEL" => Array('ru'=>'Tile', 'en'=>'Tile'), "LIST_COLUMN_LABEL" => Array('ru'=>'Tile', 'en'=>'Tile'), "LIST_FILTER_LABEL" => Array('ru'=>'Tile', 'en'=>'Tile'), "ERROR_MESSAGE" => Array('ru'=>'', 'en'=>''), "HELP_MESSAGE" => Array('ru'=>'', 'en'=>''), ), 'UF_DESCRIPTION'=>Array( 'ENTITY_ID' => $UFObject, 'FIELD_NAME' => 'UF_DESCRIPTION', 'USER_TYPE_ID' => 'string', 'MANDATORY' => '', "EDIT_FORM_LABEL" => Array('ru'=>'Description', 'en'=>'Description'), "LIST_COLUMN_LABEL" => Array('ru'=>'Description', 'en'=>'Description'), "LIST_FILTER_LABEL" => Array('ru'=>'Description', 'en'=>'Description'), "ERROR_MESSAGE" => Array('ru'=>'', 'en'=>''), "HELP_MESSAGE" => Array('ru'=>'', 'en'=>''), ) ); $arSavedFieldsRes = Array(); foreach($arCartFields as $arCartField){ $obUserField = new CUserTypeEntity; $ID = $obUserField->Add($arCartField); $arSavedFieldsRes[] = $ID; } ?> <pre> <?print_r($arSavedFieldsRes);?> </pre> <?php require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php"); ?>