ЧПУ: /раздел/элемент/ и /элемент/

Рейтинг: 2.4699  
На голосовании
Предложил Пользователь 179113 30.10.2015 09:33:48

ЧПУ: /раздел/элемент/ и /элемент/

Сейчас при выбранном варианте ЧПУ /раздел/элемент/  некорректно отрабатывается ситуация, при которой элемент находится в корне каталога (ошибка раздел не найден). Нужна дополнительная проверка на существование элемента с заданным кодом при отсутствии раздела

Рейтинг: 0  
Пользователь 19902 30.10.2015 23:37:07
вы должны реализовать данный функционал сами с помощью доступных средств что дает битрикс,
битрикс проверяет на уникальность только в пределах элемента либо раздела символьного кода,
для реализации вашей идеи вам нужно:

1. перехватить событие OnBeforeIBlockSectionUpdate где вы проверите что такого элемента с кодом нет и если есть то выдать ошибку
2. перехватить событие OnBeforeIBlockElementUpdate и сделать проверку что такого раздела с кодом нет

далее вам надо создать свой собственный комплексный компонент catalog
и заменить вот этот callback

      $engine->setResolveCallback(array("CIBlockFindTools", "resolveComponentEngine"));
 

на свой