Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
Наверх
то ждем ваше обращение в нашей службе тех поддержки.
В модуле инфоблоков есть такая замечательная вещь, как шаблоны имен файлов для картинки в анонсе и детальной картинки инфоблока.

Правда вот при смене шаблона для того, чтобы уже загруженные картинки поменяли свое имя, требуется залить данные картинки заново.
Это подтвердили сотрудники тех-поддержки битрикс:
Шаблоны применяются только в момент загрузки картинки.
С уважением,
сотрудник технической поддержки
Дмитрий Межнин.
Решение данного неудобства представлено в подробном описании статьи.
Однако данное поведение можно изменить при помощи события модуля инфоблоков OnAfterIBlockElementUpdate.
Данный код требуется разместить в init.php
После установки данного кода, не требуется перезаливать картинки заново, при сохранении элемента имена картинок будут меняться согласно установленному SEO-шаблону.
Назад в раздел

Правда вот при смене шаблона для того, чтобы уже загруженные картинки поменяли свое имя, требуется залить данные картинки заново.
Это подтвердили сотрудники тех-поддержки битрикс:
Шаблоны применяются только в момент загрузки картинки.
С уважением,
сотрудник технической поддержки
Дмитрий Межнин.
Решение данного неудобства представлено в подробном описании статьи.
Однако данное поведение можно изменить при помощи события модуля инфоблоков OnAfterIBlockElementUpdate.
Данный код требуется разместить в init.php
// этот код нужно добавить в init.php
AddEventHandler("iblock", "OnAfterIBlockElementUpdate", function (&$arFields) {
if (! $arFields['--stop-propagation']) {
$arElement = CIBlockElement::GetList(
array(),
array('ID' => $arFields["ID"]), false, false,
array('ID', 'IBLOCK_ID', 'PREVIEW_PICTURE', 'DETAIL_PICTURE')
)->Fetch();
if ($arElement['PREVIEW_PICTURE'] || $arElement['DETAIL_PICTURE']) {
$ipropValues = new \Bitrix\Iblock\InheritedProperty\ElementValues(
$arFields["IBLOCK_ID"],
$arFields["ID"]
);
$arTempVals = $ipropValues->getValues();
$arPrevP = CFile::GetFileArray($arElement['PREVIEW_PICTURE']);
$arPrevD = CFile::GetFileArray($arElement['DETAIL_PICTURE']);
$arUpdate = array();
if (isset($arPrevP['FILE_NAME'])
&& !preg_match("%^{$arTempVals['ELEMENT_PREVIEW_PICTURE_FILE_NAME']}\.%", $arPrevP['FILE_NAME'])
) {
$arUpdate['PREVIEW_PICTURE'] = CFile::MakeFileArray( $_SERVER['DOCUMENT_ROOT'] . $arPrevP['SRC'] );
}
if (isset($arPrevD['FILE_NAME'])
&& !preg_match("%^{$arTempVals['ELEMENT_DETAIL_PICTURE_FILE_NAME']}\.%", $arPrevD['FILE_NAME'])
) {
$arUpdate['DETAIL_PICTURE'] = CFile::MakeFileArray( $_SERVER['DOCUMENT_ROOT'] . $arPrevD['SRC']);
}
if (! empty($arUpdate)) {
$arUpdate['--stop-propagation'] = true;
$el = new CIBlockElement;
$res = $el->Update($arFields["ID"], $arUpdate, false, false);
}
}
}
});После установки данного кода, не требуется перезаливать картинки заново, при сохранении элемента имена картинок будут меняться согласно установленному SEO-шаблону.
Назад в раздел
Подписаться на новые материалы раздела:
Загрузка...
Наверх