Вот как бывает ) а я было подумал, что получилось таки установить по инструкции, а это оказывается обновленный патч сработал
|
Та же проблема. Пошел по пути предложенному Александр Фадеев, но в процессе сборки ansible из репозитория возникла такая ошибка на этапе выполнения make rpm:
|
|||
|
|
|
На дворе июль 2016, а некоторые проблемы с ЧПУ так и остаются нерешенными. В частности, так называемое "дублирование элементов". А точнее неадекватный выбор элемента компонентом bitrix:catalog.element в составе комплексного компонента bitrix:catalog в ситуации, когда в разных разделах каталога есть товары с одинаковыми символьными кодами. Если таких товаров, например, четыре на весь каталог, то для всех четырех карточек товара будет отображаться одно и тоже содержимое с тем товаром, который попался в базе первым из числа этих четырех. Ситуация вовсе не надуманная, на моей практике встретилась ситуация, когда в одном случае таких товаров получилось восемь на весь каталог. И на всех восьми урлах одинаковое содержимое. Т.е. для какого-то одного урла содержимое подходящее, а для остальных семи карточек оно уже не подходит. Но, тем не менее, к июлю 2016 в составе продукта уже есть функции, которые позволят с минимальным программированием внутри шаблонов залатать эту дыру. Итак, описанную проблему можно решить следующим образом. Решение приведено для ситуации, когда сначала срабатывает комплексный компонент bitrix:catalog, и он по шаблону урла (который включает #SECTION_CODE_PATH# и #ELEMENT_CODE#) адекватно определяет, что это карточка товара и далее вызывает подшаблон element.php с компонентом bitrix:catalog.element. Вот в этом самом шаблоне element.php комплексного компонента нужно непосредственно перед самым вызовом компонента bitrix:catalog.element вставить следующий код:
Далее идет штатный вызов компонента bitrix:catalog.element, который оставляется без изменений:
Для других ситуаций возможно потребуются правки. В этой заплатке проблема адекватного поиска нужного элемента решается дополнительным третьим параметром метода , которому передается точный идентификатор раздела SECTION_ID, в котором находится элемент. А точный идентификатор раздела в свою очередь определяется чудесным методом по тому самому пресловутому символьному пути раздела, возвращаемому от комплексного компонента. Все это по логике здравого смысла должно происходить внутри компонента bitrix:catalog.element, которому дополнительно должен передаваться символьный путь раздела. Но там определение элемента происходит лишь по одному только символьному коду ELEMENT_CODE. Отсюда и проблема. Дополнительно добавлена отработка 404-й страницы, на случай, если в данном разделе не найден элемент с таким символьным кодом (например, элемент сделали неактивным, а из поисковиков по этому урлу по прежнему есть заходы). Т.к. иначе снова будет задействован поиск элемента внутри bitrix:catalog.element и снова будет неадекватное определение элемента. |
|||||||
|
|
|
Для страницы со списком товаров: #SECTION_CODE_PATH#/ Для карточки товара: #SECTION_CODE_PATH#/#ELEMENT_CODE#/ И не забывайте чистить кэш. Может закэшироваться меню со старыми ссылками, например. |
|||
|
|
|
|
|||||
|
|
|
|
|||
|
|
|
|
|||||
|
|
|
|
Есть еще одна проблема с ЧПУ: комплексный компонент не всегда верно определяет раздел (section) или элемент (element).
1. Если некоторое значение поля CODE есть больше чем у одного раздела во всем инфоблоке, то комплексный компонент может ложно определять отображаемый раздел. Например, c символьным кода со значением "futbolki" может быть два раздела во всем каталоге: /catalog/male/odezhda/futbolki/ /catalog/female/odezhda/futbolki/ В обоих случаях будет открываться какой-то один из этих урлов, либо первый в обоих случаях, либо второй в обоих случаях. По всей вероятности, по порядку размещения в MySQL-таблице и по порядку выборки, который попадается первым, тот и выбирается, а весь путь не проверяется на совпадение. 2. Тоже самое происходит с одинаковыми значениями поля CODE у элементов находящихся в разных разделах. |
|
|
|
|
|
|||
|
|
|
После нее так же решилась проблема с отображением детальной страницы товара при помощи изменения порядка урловых шаблонов в вызове комплексного компонента. Шаблон урла детальной страницы поставил первым, а следом шаблон урла страницы со списком товаров. И детальные страницы тоже заработали )) Необходимость обращения в техподдержку отпала. Однако, после того, как Вы заменили свое сообщение с предложением обратиться в поддержку сообщением об ошибке, мне стало любопытно, что же за ошибку Вы обнаружили. Поделитесь пожалуйста сведениями о ней. Так вышло, что нововведение версии 12.5 с полновложенными ЧПУ пришлось очень кстати для нового проекта, и сэкономило время. Однако, эксплуатируется в бета-версии. Возможно, эта информация позволит обойти ту или иную проблему. |
|||
|
|
|
|
Поставил бету, урлы всех ссылок раздолов генерятся по-новому. Но при попытке перейти по полноценному ЧПУ-урлу на странице с комплексным компонентом каталога отображается лишь пустое место. Словно комплексный компонент не разобрал урл и не идентифицировал, что нужно отобразить страницу со списком товаров.
|
|
|
|
|