Хлебные крошки на основе структуры сайта

Не секрет, что хлебные крошки здесь строятся на основе истории просмотра страниц, т.е. откуда переход, то и в хлебных крошках. Как можно отключить данное поведение и строить хлебные крошки исключительно на структуре сайта (категориях)?

Для меня секрет. )) На чем основывается Ваше утверждение? Без сторонних модулей хлебные крошки строятся по структуре категорий относительно текущей.

Добавьте товар в несколько категорий и посмотрите как изменятся крошки в зависимости от того, из какой категории перейти в товар.

Когда товару назначена категория (главная), то на карточке товара в хлебных крошках отображается весь путь от корневой категории до страницы продукта, по сути, это его физический URL. Когда добавлена дополнительная категория, то она является виртуальной – товар будет лишь отображаться в списке товаров какой-то другой категории, но его URL по прежнему будет всегда останется неизменным. Сколько бы не было добавлено дополнительных категорий всё равно расположение товара будет в главной категории. Если в вашей установке иначе, значит это баг.

1 лайк

хлебные крошки, это не url, я про хлебные крошки спрашиваю.

Товар в категориях:

категория - главная категория
категория 1 - дополнительная
категория 2 -дополнительная

хлебная крошка должна строиться так:

категория - товар

если открыть страницу товара из категории 1 или 2, то хлебные крошки будут:

категория1 - товар или категория2 - товар в зависимости от того, откуда был совершен переход.

Оно похоже где то тут app/controllers/frontend/products.php но я не понимаю, что отсюда выпилить надо.

Вы противоречите самому себе. Изначально вы написали:

А теперь пишите противоположное:

Вы уже определитесь, что вам нужно и качественно изложите свои мысли.

Я пишу ровно тоже самое:

Хлебные крошки строятся на основе истории просмотра, т.е. откуда был совершен переход, та категория и окажется в хлебных крошках. Я хочу узнать, как сделать так, чтобы хлебная крошка строилась исключительно на основе структуры сайта. т.е. была неизменной, независимо от того, откуда был совершен переход на странцу товара.

1 лайк

Вы невнимательно читаете.

Я не только внимательно читаю, я еще и знаю что пишу:

%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%20%D0%BE%D1%82%202021-07-21%2000-59-37

Демо. В зависимости из какой категории я перешел на страницу товара в хлебных крошках компьютеры и велосипеды.

1 лайк

Чтобы вас можно было понять однозначно, вот именно в таком формате и надо было изначально задавать вопрос.

В модуле “SEO” в поле “Формат SEO URL категорий” замените:

/parent-category/category/[page-2/]

на:

/category/[page-2/]

app/controllers/frontend/products.php

после

if ((empty(Tygh::$app['session']['current_category_id']) || empty($product['category_ids'][Tygh::$app['session']['current_category_id']])) && !empty($product['main_category'])) {
        if (!empty(Tygh::$app['session']['breadcrumb_category_id']) && in_array(Tygh::$app['session']['breadcrumb_category_id'], $product['category_ids'])) {
            Tygh::$app['session']['current_category_id'] = Tygh::$app['session']['breadcrumb_category_id'];
        } else {
            Tygh::$app['session']['current_category_id'] = $product['main_category'];
        }
    }

добавьте

Tygh::$app['session']['current_category_id'] = $product['main_category'];

Это должно решить вашу задачу с крошками

2 лайка

добавьте

Tygh::$app[‘session’][‘current_category_id’] = $product[‘main_category’];

Это должно решить вашу задачу с крошками

Спасибо! Решает.

Вы все равно ничего не поняли, я сразу написал все понятно, ни разу не написал, что меня интересует url, потом даже уточнил, что меня не интересует url. Эта проблема не имеет вообще ни какого отношения к адресам страниц. Но вы упорно предлагаете что то решить с адресами страниц и еще пишете, что непонятно мысль изложена :wink:

В том виде как это реализовано, это неудачный закос под амазон, увидеть увидели, а подумать как оно работает там, не подумали. Основная проблема, которая появляется в текущей реализации в том, что ссылочное на страницы абсолютно хаотично и неуправляемо, т.е. понять и просчитать какой странице какой вес передать вы не сможете, в то время как в том же амазон, с которого сделала попытка слизать это решение, сделано правильно, для роботов крошки всегда неизменны. Для тех, кому важен поисковый трафик, это решение необходимо. Ну и еще это тянет за собой несколько белее мелких, но неприятных проблем.

2 лайка

Если нужно, то можно повторить в этом плане Амазон и отдавать ботам одинаковые крошки всегда, а пользователям так как сейчас в карте из коробки.

Тут еще нужно будет переделывать бренды если они используются в крошках. Вообще решение основанное на истории посещения сильно на любителя с очень спорным удобством, мне вот не нравится ни тут, ни на амазоне.

Как по мне, то очень удобно)
Если я смотрел, условно, аксессуары к компам, то хотел бы по крошкам вернутся ко всем аксессуарам (мышки, клавы, роутеры), а не, условно, только к мышкам.

Это если все четко расположено, в том же амазоне эта мышка может быть в газонокосилках и попасть куда нужно невозможно.

Ну тут да