Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
то ждем ваше обращение в нашей службе тех поддержки.
В модуле инфоблоков есть такая замечательная вещь, как шаблоны имен файлов для картинки в анонсе и детальной картинки инфоблока.
Правда вот при смене шаблона для того, чтобы уже загруженные картинки поменяли свое имя, требуется залить данные картинки заново.
Это подтвердили сотрудники тех-поддержки битрикс:
Шаблоны применяются только в момент загрузки картинки.
С уважением,
сотрудник технической поддержки
Дмитрий Межнин.
Решение данного неудобства представлено в подробном описании статьи.
Однако данное поведение можно изменить при помощи события модуля инфоблоков 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-шаблону.
Назад в раздел
Подписаться на новые материалы раздела: