Есть следующая задача.
Сделать возможность для любого CDBResult (в основном для результата работы CIblockElement::GetList, CIblockSection::GetList) возвращать DETAIL_PAGE_URL и SECTION _PAGE_URL построенные на основе шаблона, к котором могут присутствовать/фигурировать любые #макросы#, а не только из стандартного набора (SECTION_ID, ELEMENT_ID, IBLOCK_ID).
То есть, иметь возможность для папки сформировать url по шаблону /#PARENT1#/#PARENT2#/#PARENT3#/#SECTION_ID#, где #PARENT1#,#PARENT2#,#PARENT3# - произвольные идентификаторы, присутстивующие в массиве CDBResult.
Ибо сейчас для папки даже второго уровня уже нельзя формировать нормальный url автоматически при получении CDBResult
Реализвоать надо наследованием.
По сути это некая аналогия helper-ов присутствиующих в других MVC-фреймворках, возмоляющих задать и получить полный путь к action-у.