Слетела кодировка title после конвертации

Так вышло что после конвертации сайта в utf 8 у него слетели title и description. Показывались стандартные кракозябры. Весь остальной сайт перевелся в новую кодировку на отлично. Мы не стали искать причину, а начали решать проблему. Методом тыка мы нашли что если зайти в статью и нажать сохранить, то все отображается верно. Заметим, что кодировка у нас слетела только у части заголовка где использованы шаблоны и используется функция lower. В итоге мы написали скрипт, который обнуляет поля шаблонов для seo и потом заново их выставляет. Так как статей было много мы запускали скрипт в несколько этапов прописав диапазон id элементов в фильтре. 

\Bitrix\Main\Loader::includeModule('iblock');
use Bitrix\Iblock\InheritedProperty; 
$el = new CIBlockElement;
 $arFilter = array(
  'IBLOCK_ID' => 1,
'><ID'=>array(8000,12000) // задаем диапазон 
  );


//Получаем массив всех элетметов
  $rest = CIBlockElement::GetList(false, $arFilter, array('IBLOCK_ID','ID'));


//Перебираем все элементы инфоблока и записываем в массив их IDшники
while($element = $rest->GetNext()){
//if($element['ID']<3000) continue;


$PRODUCT_ID = $element['ID'];  // изменяем элемент с кодом (ID) 2
//$ipropValues = new \Bitrix\Iblock\InheritedProperty\ElementValues(1, 26434);
$ipropTemplates = new InheritedProperty\ElementTemplates(1, $PRODUCT_ID);
//$arElMetaProp = $ipropTemplates->getValues();


$sectMeta = $ipropTemplates->get();
echo  $sectMeta['ELEMENT_META_TITLE']['TEMPLATE'];


$arLoadProductArray = Array(
"IPROPERTY_TEMPLATES"   =>  array(
       "ELEMENT_META_TITLE"                    =>  '1' // title элемента
  ));


$res = $el->Update($PRODUCT_ID, $arLoadProductArray);




$el = new CIBlockElement;
$arLoadProductArray = Array(
"IPROPERTY_TEMPLATES"   =>  array(
       "ELEMENT_META_TITLE"                    =>  $sectMeta['ELEMENT_META_TITLE']['TEMPLATE'] // title элемента
  ));
$res = $el->Update($PRODUCT_ID, $arLoadProductArray);
echo $element['ID'];


}



Автор: US STUDIO

Подпишитесь на нашу рассылку, чтобы быть в курсе последних новостей нашей компании