Битрикс — как вычистить все SEO-свойства элементов

10.09.2018  10:38

Задача: вычистить все SEO-свойства элементов, чтобы на сайте у всех товаров были настройки из инфоблока (общие на все элементы).

Скрипт простой:
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
//увеличим память и время выполнения скрипта:
set_time_limit(0);
ini_set('max_execution_time', '3600');
ini_set('memory_limit', '512M');
//этот кусок с вариациями у меня кочует по всем служебным скриптам
$IBLOCK_ID = 41;//id инфоблока каталога товаров
$c = 0;
CModule::IncludeModule("iblock");
CModule::IncludeModule("catalog");
$obE = new CIBlockElement();
global $USER;
if (!$USER->IsAdmin()){
exit;//если не админ то выход
}
$obE = new CIBlockElement();
    $arSelect = array(
        "ID",
        "NAME",
        "IBLOCK_ID",
        "ACTIVE",
        "ACTIVE_DATE",
        "SORT",
    );
    $arFilter = array(
        "IBLOCK_ID" => $IBLOCK_ID,
        "IBLOCK_ACTIVE" => "Y",
        "ID" => 825,//тестим на одном товаре, чтобы не облажаться
        //"ACTIVE_DATE" => "Y",
        //"ACTIVE" => "Y",
    );
    $r = CIBlockElement::GetList(
        array(), 
        $arFilter, 
        false, 
        false, 
        $arSelect
    );
while ($rows = $r->Fetch())
{
	$ipropValues = new BitrixIblockInheritedPropertyElementValues($rows["IBLOCK_ID"], $rows["ID"]); 
	$IPROPERTY_VALUES = $ipropValues->getValues();
	$ID = $rows["ID"];
	$arFields = Array(
		"ELEMENT_META_TITLE" => "",
		"ELEMENT_META_DESCRIPTION" => "",
		"ELEMENT_META_KEYWORDS" => "",
		"ELEMENT_PAGE_TITLE" => "",
	);
	$ipropTemplates = new BitrixIblockInheritedPropertyElementTemplates($IBLOCK_ID, $ID);
	$ipropTemplates->set($arFields);
$c++;
}
echo 'fin: '.$c;


Готово, теперь у всех товаров на сайте СЕО-свойства формируются единым образом из настроек инфоблока.


перейти в Блог

Ударим лайками по бездорожью, разгильдяйству и бюрократизму!


Ключевые слова (тэги): 1С-Битрикс 43  PHP 55  SEO 14  web-программирование 79  

Вам есть что сказать — ну я же чую.
Высказаться о наболевшем, я выслушаю:
Имя


email (не публикуется)