Доброго времени! Собственно проблема/вопрос: Необходимо вывести ссылку в карточке товара, ведущую на подкатегорию, из которой этот товар. Т.е. чтобы понятнее, о чём речь, вот на примере ссылок "хлебных крошек" (выделено жирным то, что нужно вытащить, а остальное не нужно показывать!) : Главная | Категория | Подкатегория1 | Подкатегория2 | Товар
Нет ,я на примере хлебных крошек показал, какую ссылку вытащить хочу, но может и не удачно. Просто ковырял вчера эти файлы, и не получилось. Нужна в карточке товара кнопка/ссылка, называемая "Показать еще товары этой подкатегории..." или "Другие товары телевизоров Sony...". Но при клике по ней идёт переход не на страницу главной категории, а на подкатегорию(дочернюю). Например главная категория Sony, а в ней подкатегория с товарами Телевизоры, или телефоны - сюда и хочу попасть из карточки товара, чтобы не лезть в главное меню, которое думаю у всех громоздкое и перегруженное пунктами п.с. выход на производителя прост: <?php if ($manufacturer) { ?> <a href="<?php echo $manufacturers; ?>"><?php echo $manufacturer;?></a> <?php } ?> а вот получить ссылку подкатегории - чего-то забуксовал весь.
в контролере \catalog\controller\product\product.php после PHP: $data['points'] = $product_info['points']; добавим PHP: if (isset($category_id)) { $ycat = $this->model_catalog_category->getCategory($category_id); $data['ycat_name'] = $ycat['name']; $data['ycat_href'] = $this->url->link('product/category', 'path=' . $category_id); } ну и потом в шаблоне выводим переменные как $ycat_name и $ycat_href
извиняюсь, немного застрял там у себя: перепутал файлы рабочего сайта и "ремонтного для правок"., потoм всё вернул как надо и... как бы желаемого эффекта еще не достиг. Ссылка генерируется, но с переходом на главную страницу вообще. сам вывод в файле product.tpl - <div >Другие товары раздела: <a href="<?php echo $ycat_href; ?>"><?php echo $ycat_name; ?> →</a></div> п.с. и еще, мне кажется всё-таки надо вводить "array", "foreach" и наличие переменных child или subcategory, $category_info в этом месте product.php, куда после $this->data['points'] = $product_info['points']; выше указанный код после добавлен иначе всё одно этот путь $this->url->link('product/category', 'path=' . $category_id); вытащит главную категорию
используйте тег code, а то все сливается Значит вы все намудрили раньше. По умолчанию в $category_id содержится последний элемент категории, которая формирует хлебными крошками. имя правильно выводится? ну ведь есть проверка.. PHP: if (isset($category_id)) {
Возможно, что и понаперепутал сегодня файлы, ну или остатки со вчера может где-то имеются в этом product.php - посмотрю. отпишусь позже. а у вас получилось вывести ссылку на подкатегорию, не на главную категорию?
ну то что у вас выводит- это ок, значит верное решение вы предложили, благодарю. а в моём проекте нужно еще поковыряться, так как сами переменные не приходят в product.tpl вообще. поставил проверку через if, и тогда блок с ссылкой не отображается. PHP: <?php if ($ycat_name || $ycat_href) { ?><div style="">Другие товары раздела:<a href="<?php echo $ycat_href; ?>"><?php echo $ycat_name; ?> →</a></div><?php } ?> Ну и если без условия , то просто выводит пустой <a href=""> и стрелку →
надеюсь у вас версия опенкарта 2х ?? Просто странно. Как минимум что то должно вывестись. Попробуйте для теста вручную category_id задать. Или може у вас в модификаторе закешировался контролер??
=)) виноват, не озвучил изначально версию ОС. Я правки делаю на ocStore 1.5.5.2 Хотя.. разве там существенно эти файлы "product.php" переписали, под новую 2.0.3 ? п.с. где кешируются контроллеры, в какой папке? чистил всё - ..system/cashe и vqcache
ну так надо было и писать Тут форум в основном про 2х В 1.5 как минимум надо писать $this->data вместо $data
да уж.. что-то явно я просмотрел этот момент. Переписал как надо в этом product.php ивсё заработало.) но пол часа назад так и подумал, что ничего не выйдет на подкатегорию, если даже разберусь позже. Там на проекте стоит упрощённое отображение ссылок товара, с пропуском цепочек категорий в таком виде: http://shop.com/главная_категория/товар вместо http://shop.com/главная_категория/подкатегория1/подкатегория2/товар И когда заработала реализация на ваших рекомендациях, которые там выше ранее изложены, то получаю ссылку на главную_категорию ...из карточки товара(
как же выхватить из цепочек вложенности категорий, значение нужной подкатегории, чтобы не из хлебных крошек ,которые вверху карточки товара? (и вообще каким они тут боком) .Там видать модуль SEO-url такое деалет, согласно своим настройкам ранее. Если без него, то урл товара с подкатегориями видать такой будет - http://shop.com/index.php?route=product/product&path=9&category_id=7&product_id=55
тут процесс не простой. Вариант решения, это установить что то, что формирует урль без прямой ссылки на товар. Как вариант использовать сеопро или http://shop.opencart-russia.ru/ocseo-plus
там мне на другом форуме давали другую реализацию, и ничего не понял почему ссылка получалась сразу на главную_категорию... решил спросить здесь, но... )) а теперь действительно проблема на лицо: в карточке товара, и её урл.. хлебные крошки - не содержат цепочки подкатегорий, и любые варианты решений - уводят на родительскую категорию. кстати, кому интересно, вот та самая реализация с правкой-дополнением только в файле "product.tpl" PHP: //ставим в любом нужном месте код и блок "div"<?php$real_url = $_SERVER['REQUEST_URI']; //получаем адрес текущей страницы$cut_url = rtrim( dirname( $real_url ), "/" )."/"; //отрезаем текущий товар и получаем адрес директории?><div class="box"><a class="button" href="<?php echo $cut_url; ?>"> Перейти в раздел </a></div>
какая то она неправильная из разряда фетиша. А если у меня путь к товару строится без ЧПУ, все конец вашему варианту )))
Ravilr, а Вы не подскажете, как вывести ссылку на главную категорию товара в карточке? Т.е. в примере ТС это будет "Категория". Нашел несколько вариантов вывода "Подкатегорий", а вот главной нет.