Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Как вывести картинку категории в меню?


martovytskyi
 Поделиться

Рекомендованные сообщения

Пробую так: 
в catalog/controller/common.menu.php

<?php
class ControllerCommonMenu extends Controller {
   public function index() {
      $this->load->language('common/menu');

      // Menu
      $this->load->model('catalog/category');

      $this->load->model('catalog/product');

      $data['categories'] = array();

      $categories = $this->model_catalog_category->getCategories(0);

      foreach ($categories as $category) {
         if ($category['top']) {
            // Level 2
            $children_data = array();

            $children = $this->model_catalog_category->getCategories($category['category_id']);

            foreach ($children as $child) {
               $filter_data = array(
                  'filter_category_id'  => $child['category_id'],
                  'filter_sub_category' => true
               );
                    if ($child['image']) {
                        $child_thumb = $this->model_tool_image->resize($child['image'], 50, 50);
                    } else {
                        $child_thumb = '';
                    }
               $children_data[] = array(
                  'name'  => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
                  'thumb' => $child_thumb,
                  'href'  => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
               );
            }

            // Level 1
                if ($category['image']) {
                    $category_thumb = $this->model_tool_image->resize($category['image'], 50, 50);
                } else {
                    $category_thumb = '';
                }
            $data['categories'][] = array(
               'name'     => $category['name'],
               'children' => $children_data,
                    'thumb'    => $category_thumb,
               'column'   => $category['column'] ? $category['column'] : 1,
               'href'     => $this->url->link('product/category', 'path=' . $category['category_id'])
            );
         }
      }

      return $this->load->view('common/menu', $data);
   }
}

 

дальше в menu.twig добавил но не вывелась картинка категории. Что делаю не так?

<img src="{{ category.thumb }}" alt="">
Ссылка на комментарий
Поделиться на других сайтах


23 минуты назад, AlexDW сказал:

либо не туда добавляете

либо кеши обновить - модификаторов и шаблона

 

Кеши чищу везде. Вставляю тоже вроде туда

 

{% if categories %}
        <div class="col-md-12">
          <h4 class="block-title"><span>{{ text_category }}</span></h4>
          <ul>
              {% for category in categories %}
              {% if category.children %}
                <li><a href="{{ category.href }}">{{ category.name }}</a>
                    <img src="{{ category.thumb }}" alt="">
                  <div>
                    <div class="dropdown-inner"> {% for children in category.children|batch(category.children|length / category.column|round(1, 'ceil')) %}
                        <ul class="list-unstyled">
                            {% for child in children %}
                              <li><a href="{{ child.href }}">{{ child.name }}</a></li>
                            {% endfor %}
                        </ul>
                        {% endfor %}</div>
                    <a href="{{ category.href }}" class="see-all">{{ text_all }} {{ category.name }}</a> </div>
                </li>
              {% else %}
                <li><a href="{{ category.href }}">{{ category.name }}</a></li>
              {% endif %}
              {% endfor %}
          </ul>
        </div>

{% endif %} 
Ссылка на комментарий
Поделиться на других сайтах


вы модель (tool/image) не загружаете перед использованием, т.е.

$this->load->model('tool/image)';

должна быть вызвана до использования функции ресайз, там же где грузите модели товара и каталога

Ссылка на комментарий
Поделиться на других сайтах


В 17.06.2019 в 14:26, lexxkrt сказал:

вы модель (tool/image) не загружаете перед использованием, т.е.

$this->load->model('tool/image)';

должна быть вызвана до использования функции ресайз, там же где грузите модели товара и каталога

спасибо, код рабочий, просто не туда вставлял

Ссылка на комментарий
Поделиться на других сайтах


14 часов назад, martovytskyi сказал:

спасибо, код рабочий, просто не туда вставлял

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

Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.