- В коде примеров не все < и > переведены в < и >. Из-за этого в двух местах код примеров не отображается (после "в квадрате равно" и после "в квадрате взятое дважды равно") .
- Слово "декоратор" нужно убрать, так как пример не имеет отношения к шаблону проектирования "Декоратор". В примере - обычное наследование и переопределение метода.
- В строке "Вынести компонент section.edit" должно быть "Вынести компонент photogallery.section.edit".
- Нужно разделить код около строки "Файл result_modifier.php".
- Там же, после строки "А также создайте result_modifier.php, где разместите такой код", не отображается часть примера - нужно заменить < и > на < и > в коде.
- Еще в примере отсутствует код установки обработчика:
- ID нужного инфоблока не 68, а 10 (по крайней мере, в БУС Бизнес 14.0.6).
- Можно дополнить пример замечанием, что если использовать более специфичное событие, то отпадает необходимость в скрытом input'е (PHOTOALBUM_PUBLIC_EDIT) и дополнительной проверке в коде обработчика:
Код
function OnAfterSectionEditHandler($arFields, $arParams, $arResult)
{
$es = new CIBlockSection();
$es->Update($arResult['SECTION']['ID'], array('UF_COOL_ALBUM' => $_POST['COOL_ALBUM']));
}
AddEventHandler('photogallery', 'OnAfterSectionEdit', 'OnAfterSectionEditHandler');
Можно также добавить, что в данном компоненте пользовательские поля уже загружены в $arResult['SECTION']['USER_FIELDS'], поэтому здесь можно обойтись без result_modifier.php, и в шаблоне использовать примерно такой код:
Если бы функция-обработчик в примере была названа "MyHandler()", то как догадаться, что нужно обратить свое внимание на событие OnAfterTicketAdd модуля support и написать код привязки?: