sdi_68 3 Опубликовано 17 апреля, 2015 Жалоба Share Опубликовано 17 апреля, 2015 Добрый день 1.77 Структура каталогов товара следующая: Есть корневые категории ,в них еще категории. Некоторые товары есть в разных подкатегориях корневых категрий (как ссылки). Проблема в следующем (см. скриншоты): 1. Заходим в подкатегорию одной из корневых категорий (см. стрелку). См. строку хлебных крошек. 2 Заходим в карточку товара и видим, что изменился в строке хлебных крошек путь к товару (см. стрелку). Ну и навигация по товарам дальше уже работает внутри этой подкатегории. Это не правильно, как это можно поправить? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 17 апреля, 2015 Жалоба Share Опубликовано 17 апреля, 2015 Что-то я не понял, в чём проблема?! Можно не картинками, а словами. Ссылка на сообщение Поделиться на другие сайты
sdi_68 3 Опубликовано 17 апреля, 2015 Автор Жалоба Share Опубликовано 17 апреля, 2015 Есть товар в одной категории "Бренды". Скопирован ссылкой в другую категорию "По применению" (для простоты опустим структуру подкатегорий). 1. Заходим в список товаров категории "Бренд" В строке хлебных крошек видим: Начало-Бренды (см. первый скриншот) 2. Заходим в карточку товара (см. скриншот 2). В хлебных крошках видим, что путь изменился стал Начало - по применению-товар. И если теперь пользоваться навигацией по списку товаров, то перебираются товары в категории По применению, а не по категории Бренды, откуда мы зашли в карточку товара. Т.е. когда у нас товар есть в разных категориях не запоминается из какой категории мы зашли в карточку товара. Надеюсь, теперь понятнее объяснил :) Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 17 апреля, 2015 Жалоба Share Опубликовано 17 апреля, 2015 Так это наверное из-за того, что он скопирован ссылкой, это ведь не самостоятельный товар и он относится к той категории, где сам товар. Разве что делать копию как дубликат. Во всяком случае я не знаю как сделать так как Вы хотите. Ссылка на сообщение Поделиться на другие сайты
sdi_68 3 Опубликовано 17 апреля, 2015 Автор Жалоба Share Опубликовано 17 апреля, 2015 Причина явно не в этом. Создан товар ,как раз в категории бренд. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 17 апреля, 2015 Жалоба Share Опубликовано 17 апреля, 2015 Ради эксперимента попробуйте скопировать товар как дубликат и посморите как в этом случае будет выглядеть, будет ли разница. Ссылка на сообщение Поделиться на другие сайты
sdi_68 3 Опубликовано 20 апреля, 2015 Автор Жалоба Share Опубликовано 20 апреля, 2015 Добрый день. Решил проблему так: ввел переменную, которая хранит Id категории, откуда был переход. Вот что доработано: файл application_top.php: ищем: // new m URLS if (isset ($_GET['manu'])) { $site = explode('_', $_GET['manu']); $mID = $site[0]; $mID = (int)str_replace('m', '', $mID); $_GET['manufacturers_id'] = $mID; } вставляем после и изменяем то что под // calculate category path // BOF корректное определение категории, откуда был переход на товар, находящийся там по ссылке // создаем сеансовую переменную для хранения categories_id каталога, откуда был переход на товар if (!vam_session_is_registered('prev_categories_id')) { vam_session_register('prev_categories_id'); $prev_categories_id = 0; //print "<br> unregistred <br>"; } //print "<br> \$prev_categories_id = " . $prev_categories_id . "<br>"; //EOF корректное определение категории, откуда был переход на товар, находящийся там по ссылке // calculate category path if (isset ($_GET['cPath'])) { $cPath = vam_input_validation($_GET['cPath'], 'cPath', ''); } elseif (is_object($product) && !isset ($_GET['manufacturers_id'])) { if ($product->isProduct()) { / BOF корректное определение категории, откуда был переход на товар, находящийся там по ссылке // $cPath = vam_get_product_path($actual_products_id); $cPath = vam_get_product_path($actual_products_id,$prev_categories_id); // EOF корректное определение категории, откуда был переход на товар, находящийся там по ссылке } else { $cPath = ''; } } else { $cPath = ''; } Перед кодом // include the breadcrumb class and start the breadcrumb trail require (DIR_WS_CLASSES.'breadcrumb.php'); вставляем // BOF корректное определение категории, откуда был переход на товар, находящийся там по ссылке $prev_categories_id = $current_category_id; // EOF корректное определение категории, откуда был переход на товар, находящийся там по ссылке Изменяем функцию в файле vam_get_product_path.inc.php function vam_get_product_path($products_id,$prev_categories_id=0) { $cPath = ''; if ($prev_categories_id == 0) { $category_query = "select p2c.categories_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_id = '" . (int)$products_id . "' and p.products_status = '1' and p.products_id = p2c.products_id and p2c.categories_id != 0 limit 1"; $category_query = vamDBquery($category_query); if (vam_db_num_rows($category_query,true)) { $category = vam_db_fetch_array($category_query); $categories = array(); vam_get_parent_categories($categories, $category['categories_id']); $categories = array_reverse($categories); $cPath = implode('_', $categories); if (vam_not_null($cPath)) $cPath .= '_'; $cPath .= $category['categories_id']; } } else { // подставляем id категории откуда был сделан переход на товар $cPath .= $prev_categories_id; } return $cPath; } Не решен вопрос с тем ,что сделать, если, переход был произведен, например из блока новинок на первой странице... Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 20 апреля, 2015 Жалоба Share Опубликовано 20 апреля, 2015 Спасибо за код Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения