Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Крутое ЧПУ

00 голосов
10
Есть папка mobile/nokia
следовательно для просмотра товара получаем ссылку без ЧПУ mobile/nokia?ELEMENT_ID=1000
1. Хотелось бы сделать в корень например чтобы было САЙТ/nokia-n81.html
конечно же с поддержкой компонент и всех правил ядра.
2. В принуипе можно и mobile/nokia/nokia-n81.html
Сколько сомтрю форум ни одного вразумительного ответа.
Давайте развернём эту тему, нужен FAQ по этому вопросу.
Ваши соображения, достижения???
спросил 12 Фев, 13 от ElfPrist (300 баллов)

10 Ответы

00 голосов
Цитата
Ryzhikov пишет:
Ваши соображения, достижения???

Надо писать свой отдельный компонент с реализацией ЧПУ и можно ссылаться хоть с корня, хоть откуда.
ответил 12 Фев, 13 от Arn4 (2,140 баллов)
00 голосов
Антон Долганин, спасибо.
Тогда нужно писать свой компонент catalog, а это не так уж и легко )
Хотя может быть немножко подробнее распишете логику? Если конечно Вам не сложно )
У кого ещё какие соображения.
ответил 09 Март, 13 от ElfPrist (300 баллов)
00 голосов
В бета версии модуля инфоблоков компонент catalog поддерживает символьные идентификаторы разделов и элементов в режиме ЧПУ.
ответил 04 Апр, 13 от Miso (740 баллов)
00 голосов
Цитата
Maxim Smirnov пишет:
В бета версии модуля инфоблоков компонент catalog поддерживает символьные идентификаторы разделов и элементов в режиме ЧПУ.

Вот Вы в самую точку попали!
Как справедливо написал топикстартер, НИГДЕ не опубликовано работающего алгоритма по использованию ЧПУ с символьными идентификаторами (я потратил много-много часов на поиск в этом форуме, и в других местах, где есть тема Битрикса, - скажу наверняка).
То, что описано в хелпах, - применение числовых идентификаторов разделов (например). Это просто, понятно, и легко реализуемо.
Но это не ЧПУ.
С символьными идентификаторами - будет ЧПУ.
Не затруднит ли Вас указать поточнее, что это за бета-версия, и где ее можно увидеть.
Буду крайне признателен за любую помощь. Проект горит. Жизнь на волоске.
Евгений
ответил 31 Июль, 13 от Malexa (140 баллов)
00 голосов
Ответ тех. поддержки
Прежде всего, для реализации задачи установите обновление модуля "Информационные блоки" 7.1.3
Используя в папке, например, /mobile/ комплексный компонент bitrix:catalog с параметрами в блоке "Управление адресами страниц":
Раздел: #SECTION_CODE#/
Детальная информация: #SECTION_CODE#-#ELEMENT_CODE#.html
Вы получите ссылку на раздел:
/mobile/nokia/
и на элемент - /mobile/nokia-n81.html

только что то не надодит детальное описание элемента, но скорее всего это моя проблема настроек ...
Так что вроде бы получилось то что я хотел.
ответил 02 Ноя, 13 от ElfPrist (300 баллов)
00 голосов
Цитата
Ryzhikov пишет:
Ответ тех. поддержки
Прежде всего, для реализации задачи установите обновление модуля "Информационные блоки" 7.1.3

А без обновления? В старых версиях ЧПУ с символьным кодом отсутствует, так?

Цитата
Ryzhikov пишет:
Используя в папке, например, /mobile/ комплексный компонент bitrix:catalog с параметрами в блоке "Управление адресами страниц":
Раздел: #SECTION_CODE#/
Детальная информация: #SECTION_CODE#-#ELEMENT_CODE#.html

Мне кажется, правильно будет так:
Код
#SECTION_CODE#-#ELEMENT_ID#.html 

Но моя проблема пока не решена, сделать ссылки с символьным кодом, типа как в этом примере, /mobile/nokia-n81.html - легко, но ни раздел, ни элемент не открываются по такому урлу.

Короче, человеконепонятный урл :(

Евгений
ответил 08 Фев, 14 от Malexa (140 баллов)
00 голосов
А у меня получилось. В настройках компонента bitrix:catalog указал:
Код
Управление адресами страниц
Включить поддержку ЧПУ: Y   
Каталог ЧПУ (относительно корня сайта): /max/all_components/iblock/catalog/   
Список разделов:    
Раздел:    #SECTION_CODE#/
Детальная информация:    #SECTION_CODE#-#ELEMENT_ID#.php
Таблица сравнения: compare.php?action=#ACTION_CODE#

С соотв. настройками инфоблока (/bitrix/admin/iblock_edit.php) поиск заработал без переиндексации.
Код
URL страницы информационного блока:     /max/all_components/iblock/catalog/
URL страницы раздела:    /max/all_components/iblock/catalog/#SECTION_CODE#/
URL страницы детального просмотра:    /max/all_components/iblock/catalog/#SECTION_CODE#-#ELEMENT_ID#.php
ответил 29 Май, 14 от Miso (740 баллов)
00 голосов
Цитата
Maxim Smirnov пишет:
А у меня получилось.

Подводя итог, хотелось бы подтверждения, что я понял правильно:

1. В старых версиях отсутствует встроенная поддержка адресов с символьными кодами. Все примеры реализации - творчество отдельных программистов, которые не хотят или не могут поделиться алгоритмом реализации. Следовательно, не нужно мучить систему, она все равно не сможет.
(У меня на руках - Бизнес-сайт версия 6, по оргпричинам не могу проводить(сложно) апгрейд до свежей версии).

2. Реализация вручную требует больших усилий. Действительно, в некотором массиве нужно накопить список символьных кодов разделов (например), чтобы при обработке адреса /e-store/xml_catalog/#SECTION_CODE#/ по параметру SECTION_CODE определять SECTION_ID. Причем urlrewrite.php в этом не поможет, поскольку передать в него подобный массив невозможно.

3. Ну и как пример, напоследок - возьмем для тестирования то, что предлагается сейчас на сайте (http://demo.1c-bitrix.ru/).
Произведем все настройки, как рекомендовано выше, - получаем адреса (урлы) разделов каталога с символьными кодами, но они не рабочие - 404 ошибки нет, а содержание не показывается, т.е. где-то нужно ручками прописывать соответствие "код->id".

Ваше мнение?

С уважением,
Евгений
ответил 25 Сен, 14 от Malexa (140 баллов)
00 голосов
1. Ваша правда.
2. copy&paste из компонентов photo и photo.*
3. В вирт лабе версия 707 а надо 713
ответил 29 Янв, 15 от Miso (740 баллов)
00 голосов
Цитата
Maxim Smirnov пишет:
А у меня получилось. В настройках компонента bitrix:catalog указал:
Код
Управление адресами страниц
Включить поддержку ЧПУ: Y   
Каталог ЧПУ (относительно корня сайта): /max/all_components/iblock/catalog/   
Список разделов:    
Раздел:    #SECTION_CODE#/
Детальная информация:    #SECTION_CODE#-#ELEMENT_ID#.php
Таблица сравнения: compare.php?action=#ACTION_CODE#

С соотв. настройками инфоблока (/bitrix/admin/iblock_edit.php) поиск заработал без переиндексации.
Код URL страницы информационного блока:     /max/all_components/iblock/catalog/
URL страницы раздела:    /max/all_components/iblock/catalog/#SECTION_CODE#/
URL страницы детального просмотра:    /max/all_components/iblock/catalog/#SECTION_CODE#-#ELEMENT_ID#.php

Указал все как в примере выше.
Список разделов выводится нормально. -ссылка с кодом а не с id (уже хорошо).
При переходе на страницу с элементами раздела - выводятся!!! Опять список всех разделов и не отображается ни одного элемента (??). Ладно, идем дальше.. руками добираем в урле id элемента - элемент отображается. (гуд), заменяем #ELEMENT_ID# на #ELEMENT_CODE# - в урл корректно - при переходе элемент не найден. (хм...).
Как то работает через уровень... можно скриншоты чтоли.. а то все по инструкции ,но у одних работает, у других нет :( печально.
ответил 13 Май, 15 от Grimmi (2,560 баллов)

Похожие вопросы

0 голосов
2 ответов
спросил 29 Дек, 17 от аноним
0 голосов
0 ответов
спросил 04 Март, 16 от аноним
0 голосов
1 ответ
спросил 03 Дек, 15 от аноним
0 голосов
1 ответ
0 голосов
1 ответ
спросил 03 Июль, 14 от Werner (160 баллов)