chixx Posted January 6, 2024 at 01:30 PM Share Posted January 6, 2024 at 01:30 PM Кто знает, как их вывести?) Chat GPT предлагает такой вариант. Пробовать страшно) Подскажите) 1. Отредактируйте файл catalog/controller/product/product.php:// Добавьте следующий код после строки $data['manufacturer'] = $product_info['manufacturer']; $data['categories'] = array(); $categories = $this->model_catalog_product->getCategories($this->request->get['product_id']); foreach ($categories as $category) { $data['categories'][] = array( 'name' => $category['name'], 'href' => $this->url->link('product/category', 'path=' . $category['path']) ); } 2. Теперь отредактируйте файл шаблона, например catalog/view/theme/default/template/product/product.twig: {# Добавьте следующий код в нужное вам место, например, после блока с производителем #} {% if categories %} <div class="product-categories"> <h2>{{ text_category }}</h2> <ul> {% for category in categories %} <li><a href="{{ category.href }}">{{ category.name }}</a></li> {% endfor %} </ul> </div> {% endif %} Но я так опнимаю, это он предлагает выводить после производителя, а я бы в идеале хотел, чтоб оно выводилось в характеристиках в самом низу и было кликабельным. 0 Quote Link to comment Share on other sites More sharing options...
ChatGPT Posted January 6, 2024 at 01:31 PM Share Posted January 6, 2024 at 01:31 PM В 06.01.2024 в 13:30, chixx сказал: Кто знает, как их вывести?) Chat GPT предлагает такой вариант. Пробовать страшно) Подскажите) 1. Отредактируйте файл catalog/controller/product/product.php: // Добавьте следующий код после строки $data['manufacturer'] = $product_info['manufacturer']; $data['categories'] = array(); $categories = $this->model_catalog_product->getCategories($this->request->get['product_id']); foreach ($categories as $category) { $data['categories'][] = array( 'name' => $category['name'], 'href' => $this->url->link('product/category', 'path=' . $category['path']) ); } 2. Теперь отредактируйте файл шаблона, например catalog/view/theme/default/template/product/product.twig: {# Добавьте следующий код в нужное вам место, например, после блока с производителем #} {% if categories %} <div class="product-categories"> <h2>{{ text_category }}</h2> <ul> {% for category in categories %} <li><a href="{{ category.href }}">{{ category.name }}</a></li> {% endfor %} </ul> </div> {% endif %} Но я так опнимаю, это он предлагает выводить после производителя, а я бы в идеале хотел, чтоб оно выводилось в характеристиках в самом низу и было кликабельным. Для вывода категорий в характеристиках в нижней части страницы товара в OpenCart сделайте следующее: 1. Редактируйте файл `catalog/controller/product/product.php`: - Найдите: `$data['manufacturer'] = $product_info['manufacturer'];` - Сразу после этой строки добавьте следующий код: $data['categories'] = array(); $categories = $this->model_catalog_product->getCategories($this->request->get['product_id']); foreach ($categories as $category) { $data['categories'][] = array( 'name' => $category['name'], 'href' => $this->url->link('product/category', 'path=' . $category['path']) ); } 2. Редактируйте файл шаблона, например `catalog/view/theme/default/template/product/product.twig`: - Найдите место, где хотите вывести категории в характеристиках (например, после блока с производителем). - Между тегами `{% if categories %}` и `{% endif %}` добавьте следующий код для вывода категорий и создания кликабельных ссылок: {% if categories %} {{ text_category }} {% for category in categories %} {{ category.name }} {% endfor %} {% endif %} Обратите внимание, что вам может потребоваться применить CSS-стили для классов `product-attribute-category` и `attribute-title`, чтобы они отображались как вам нужно. 0 Quote Сборка OpenCart club edition | Документация OpenCart | Условия соглашения | Лицензионное соглашение Link to comment Share on other sites More sharing options...
AlexDW Posted January 6, 2024 at 05:12 PM Share Posted January 6, 2024 at 05:12 PM 0 Quote модули для удобной работы с Opencart Link to comment Share on other sites More sharing options...
chixx Posted January 6, 2024 at 05:36 PM Author Share Posted January 6, 2024 at 05:36 PM В 06.01.2024 в 20:12, AlexDW сказал: Да, я видел Ваш модуль, но меня смутила вот эта строка Я ничего не понял, но понял, что хочу чтобы ссылки были как есть на категории (ЧПУ) И вывести хочу тупо вот как на зеленом сайте 0 Quote Link to comment Share on other sites More sharing options...
AlexDW Posted January 6, 2024 at 06:03 PM Share Posted January 6, 2024 at 06:03 PM ссылки и будут с ЧПУ, если ЧПУ включено и задано на демо для 2х как раз часть тегов категорий с ЧПУ, а у части просто они не заполнены если нужно для самих посетителей и удобства навигации - ajax не помеха если нужно для ботов, чтобы индексировались - копать по методу жпт 0 Quote модули для удобной работы с Opencart Link to comment Share on other sites More sharing options...
chixx Posted January 6, 2024 at 06:34 PM Author Share Posted January 6, 2024 at 06:34 PM (edited) В 06.01.2024 в 21:03, AlexDW сказал: ссылки и будут с ЧПУ, если ЧПУ включено и задано на демо для 2х как раз часть тегов категорий с ЧПУ, а у части просто они не заполнены если нужно для самих посетителей и удобства навигации - ajax не помеха Мне нужно для тех и для других. Но больше для перелинковки. Я нагуглил некоторые варианты, но в основном модификаторы на бурже. Но я не хочу модификатор) Нашел, метод, как в шаблон добавить, но у меня не сработало( Цитата файл — catalog/controller/product/product.php после $this->load->model('catalog/product'); добавить $this->load->model('catalog/category'); $this->data['catprod'] = array(); $product_category = $this->model_catalog_product->getCategories($product_id); foreach ($product_category as $prodcat) { $category_info = $this->model_catalog_category->getCategory($prodcat['category_id']); if ($category_info) { $this->data['catprod'][] = array( 'name' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $category_info['category_id']) ); } } файл — catalog/view/theme/*/template/product/product.tpl перед <?php if ($manufacturer) { ?> добавить <span>Категория: </span><?php foreach ($catprod as $catp) { ?> <a href="<?php echo $catp['href']; ?>"><?php echo $catp['name']; ?></a> |<?php } ?><br /> Edited January 6, 2024 at 07:11 PM by chixx 0 Quote Link to comment Share on other sites More sharing options...
Solution chixx Posted January 14, 2024 at 10:44 PM Author Solution Share Posted January 14, 2024 at 10:44 PM (edited) В общем-то справился я. Для тех, кто тоже будет искать, что я делал: В catalog/controller/product/product.php после строки $product_info = $this->model_catalog_product->getProduct($product_id); Добавил Спойлер $data['text_linked_categories'] = $this->language->get('text_linked_categories'); $query_linked_categories = $this->model_catalog_product->getCategories($product_id); $linked_categories = array(); foreach( $query_linked_categories as $linked_category_data ) { $linked_category = $this->model_catalog_category->getCategory($linked_category_data['category_id']); $linked_category_info['id'] = $linked_category_data['category_id']; $linked_category_info['href'] = $this->url->link('product/category', 'path=' . $linked_category_data['category_id']); $linked_category_info['name'] = $linked_category['name']; $linked_categories[] = $linked_category_info; } $data['linked_categories'] = $linked_categories; Далее в catalog/language/*/product/product.php перед $_['text_manufacturer'] Добавил Спойлер $_['text_linked_categories'] = 'Категории:'; Далее в catalog/view/theme/*/template/product/product.twig перед строкой {% if manufacturer %} Добавил Спойлер {% if linked_categories %} <li>{{ text_linked_categories }} {% for linked_category in linked_categories %} <a href="{{ linked_category.href }}">{{ linked_category.name }}</a>,; {% endfor %} </li> {% endif %} Edited January 14, 2024 at 11:04 PM by chixx 0 Quote Link to comment Share on other sites More sharing options...
chixx Posted January 14, 2024 at 11:18 PM Author Share Posted January 14, 2024 at 11:18 PM Только вот у меня в конце ставиться запятая. Кто знает, что дописать, чтобы не ставилась?) 0 Quote Link to comment Share on other sites More sharing options...
AlexDW Posted January 15, 2024 at 02:10 AM Share Posted January 15, 2024 at 02:10 AM В 15.01.2024 в 04:18, chixx сказал: Только вот у меня в конце ставиться запятая. Кто знает, что дописать, чтобы не ставилась?) переделать свое <a href="{{ linked_category.href }}">{{ linked_category.name }}</a>,; с учетом последнего элемента 0 Quote модули для удобной работы с Opencart Link to comment Share on other sites More sharing options...
chixx Posted January 15, 2024 at 08:20 AM Author Share Posted January 15, 2024 at 08:20 AM (edited) В 15.01.2024 в 05:10, AlexDW сказал: переделать свое <a href="{{ linked_category.href }}">{{ linked_category.name }}</a>,; с учетом последнего элемента Это я догадался))) Вот если бы было решение, было бы прекрасно. Я в итоге сделал так, помогло Спойлер {% if linked_categories %} {% for linked_category in linked_categories %} <a style="color:#71be00;" <a href="{{ linked_category.href }}">{{ linked_category.name }}</a>{% if not loop.last %}, {% endif %} {% endfor %} </li> {% endif %} Хз, правильно или нет) Но работает Кстати, кому надо. У меня модуль HPM и выводились его пустые категории, добавил проверку, чтобы не тянулись выключенные категориии. В итоге получилось так Спойлер $data['text_linked_categories'] = $this->language->get('text_linked_categories'); $query_linked_categories = $this->model_catalog_product->getCategories($product_id); $linked_categories = array(); foreach( $query_linked_categories as $linked_category_data ) { $linked_category = $this->model_catalog_category->getCategory($linked_category_data['category_id']); if ($linked_category['status']) { $linked_category_info['id'] = $linked_category_data['category_id']; $linked_category_info['href'] = $this->url->link('product/category', 'path=' . $linked_category_data['category_id']); $linked_category_info['name'] = $linked_category['name']; $linked_categories[] = $linked_category_info; } } $data['linked_categories'] = $linked_categories; Edited January 15, 2024 at 08:24 AM by chixx 1 Quote Link to comment Share on other sites More sharing options...
chixx Posted January 16, 2024 at 07:43 AM Author Share Posted January 16, 2024 at 07:43 AM На этом все не закончилось. Вылезло предупреждение. PHP Notice: Undefined index: status in /var/www/storage/modification/catalog/controller/product/product.php on line 272 На эту строку ворчит if ($linked_category['status']) { Кто подскажет, что делать дальше?) 0 Quote Link to comment Share on other sites More sharing options...
AlexDW Posted January 16, 2024 at 10:39 AM Share Posted January 16, 2024 at 10:39 AM var_dump в помощь 0 Quote модули для удобной работы с Opencart Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.