Передо мной встала проблемка, точнее задача, которую хочется красиво решить. Например, при выборе элемента каталога на 3 уровне сейчас комплексный компонент выдает URL вида /catalogue/section_level3/element.html а хочется иметь URL вида /catalogue/section_level1/section_level2/section_level3/element.html После поиска по сайту нашел, что этот вопрос интересует не меня одного http://dev.1c-bitrix.ru/community/for...opic22765/ здесь предлагается в компоненте разбирать $_SERVER["REQUEST_URI"] и строить нужный URL Вот здесь обсуждается этот же вопрос http://dev.1c-bitrix.ru/community/for...age125898/ и высказываются минусы такого подхода, с которыми я согласен - потеря производительности мне не нужна, ведь всегда ожидается, что новый разрабатываемый проект будет очень популярным и суперпосещаемым
Нашелся также второй вариант решения http://dev.1c-bitrix.ru/community/for...sage45737/ в котором я пока не до конца понял как это реализовать. С БОТом вроде бы все понятно, а вот с mod_rewrite не очень. Пока не пойму как можно составить правила, которые подставляют символьные коды разделов всех уровней вложенности (в URL у меня используются не ID разделов и элементов, а их символьные коды, сделать это мне помогла документация http://dev.1c-bitrix.ru/api_help/iblo...entadd.php ).
В основном все это я пишу для себя, чтобы привести в порядок мысли, записать ссылки на источники, но и слегка надеюсь, что когда-нибудь это кто-нибудь прочитает. Буду признателен за советы, помощь, и просто рад пообщаться на эту тему.
В настройках инфоблока нет возможности использовать значение свойства элемента для построения пути
А он там и не нужен. Нжуную ссылку можно формировать прямо в компоненте (компонент ведь в любом случае прийдется писать для такой задачи свой).
Единственное для чего может пригодиться такой путь в свойстве инфоблока - так это для поиска. Тут можно либо использоват внешний поиск (например, Google Search) либо сделать специальную страницу, с которой редиректить на нужный товар при поиске.
К тому же для элемента не нужно хранить весь путь от корня, для него достаточно символьного кода элемента
Это уже на любителя. Можно хранить либо весь путь в свойстве элемента, либо путь цепочки разделов хранить в свойстве раздела.
во-вторых нужна еще навигация и по разделам, а данный вариант пути к разделам не обрабатывает, следовательно путь к разделу будет не /catalogue/section_level1/section_level2/section_level3/ (как требуется) а просто /catalogue/section_level3/ (как сейчас)
Навигацию по разделом можно построить аналогично - сделать пользовательское свойство и заполнять его при событии OnBeforeIBlockSectionUpdate.
Способ с формированием ссылки с помощью прогонки и анализа текста перед выводом http://dev.1c-bitrix.ru/community/for...ssage45737 никуда не годится на нагруженных проектах, так как в нем нельзя использовать кеширование (по крайней мере я себе пока не могу представить как это может выглядеть).
Иван, спасибо. Буду думать дальше. На данный момент ниодин из этих вариантов не устраивает полностью, но Ваш вариант, пожалуй, нравится мне больше других (который здесь http://dev.1c-bitrix.ru/community/for...pic22765/). Последний Ваш вариант (с путями в свойствах) нравится меньше всех - очень много доработок необходимо, лучше уж тогда вариант по идее от Эльдара Рахимбердина (см. выше) - там в компонентах нужно только urldecode добавить перед выводом ссылок и с ЧПУ разобраться.
Валентин, приветствую Вас. У меня возникла та же проблема, как и у Вас, столько всего перепробовал, а результата как такового не получил вообще... Хотел бы спросить, у Вас что то получилось? И как им образом Вы это смогли сделать?
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».