chixx Опубликовано 6.01.2024 в 13:30 Поделиться Опубликовано 6.01.2024 в 13:30 Кто знает, как их вывести?) 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 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
ChatGPT Опубликовано 6.01.2024 в 13:31 Поделиться Опубликовано 6.01.2024 в 13:31 В 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 Цитата Сборка OpenCart club edition | Документация OpenCart | Условия соглашения | Лицензионное соглашение Ссылка на комментарий Поделиться на другие сайты Поделиться
AlexDW Опубликовано 6.01.2024 в 17:12 Поделиться Опубликовано 6.01.2024 в 17:12 0 Цитата модули для удобной работы с Opencart Ссылка на комментарий Поделиться на другие сайты Поделиться
chixx Опубликовано 6.01.2024 в 17:36 Автор Поделиться Опубликовано 6.01.2024 в 17:36 В 06.01.2024 в 20:12, AlexDW сказал: Да, я видел Ваш модуль, но меня смутила вот эта строка Я ничего не понял, но понял, что хочу чтобы ссылки были как есть на категории (ЧПУ) И вывести хочу тупо вот как на зеленом сайте 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AlexDW Опубликовано 6.01.2024 в 18:03 Поделиться Опубликовано 6.01.2024 в 18:03 ссылки и будут с ЧПУ, если ЧПУ включено и задано на демо для 2х как раз часть тегов категорий с ЧПУ, а у части просто они не заполнены если нужно для самих посетителей и удобства навигации - ajax не помеха если нужно для ботов, чтобы индексировались - копать по методу жпт 0 Цитата модули для удобной работы с Opencart Ссылка на комментарий Поделиться на другие сайты Поделиться
chixx Опубликовано 6.01.2024 в 18:34 Автор Поделиться Опубликовано 6.01.2024 в 18:34 (изменено) В 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 /> Изменено 6.01.2024 в 19:11 пользователем chixx 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Решение chixx Опубликовано 14.01.2024 в 22:44 Автор Решение Поделиться Опубликовано 14.01.2024 в 22:44 (изменено) В общем-то справился я. Для тех, кто тоже будет искать, что я делал: В 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 %} Изменено 14.01.2024 в 23:04 пользователем chixx 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
chixx Опубликовано 14.01.2024 в 23:18 Автор Поделиться Опубликовано 14.01.2024 в 23:18 Только вот у меня в конце ставиться запятая. Кто знает, что дописать, чтобы не ставилась?) 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AlexDW Опубликовано 15.01.2024 в 02:10 Поделиться Опубликовано 15.01.2024 в 02:10 В 15.01.2024 в 04:18, chixx сказал: Только вот у меня в конце ставиться запятая. Кто знает, что дописать, чтобы не ставилась?) переделать свое <a href="{{ linked_category.href }}">{{ linked_category.name }}</a>,; с учетом последнего элемента 0 Цитата модули для удобной работы с Opencart Ссылка на комментарий Поделиться на другие сайты Поделиться
chixx Опубликовано 15.01.2024 в 08:20 Автор Поделиться Опубликовано 15.01.2024 в 08:20 (изменено) В 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; Изменено 15.01.2024 в 08:24 пользователем chixx 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
chixx Опубликовано 16.01.2024 в 07:43 Автор Поделиться Опубликовано 16.01.2024 в 07:43 На этом все не закончилось. Вылезло предупреждение. PHP Notice: Undefined index: status in /var/www/storage/modification/catalog/controller/product/product.php on line 272 На эту строку ворчит if ($linked_category['status']) { Кто подскажет, что делать дальше?) 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AlexDW Опубликовано 16.01.2024 в 10:39 Поделиться Опубликовано 16.01.2024 в 10:39 var_dump в помощь 0 Цитата модули для удобной работы с Opencart Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.