Как добавить картинки при выводе списка подкатегорий в OpenCart

category-pictures

Приветствую вас, уважаемые сайтостроители и OpenCart-о колупатели.

Наверное, многим из вас не нравится, как выводится список вложенных категорий при заходе на сайте на страницу категории. Мне, например не нравится.

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

1. catalog/controller/product/category.php после строк

foreach ($results as $result) {
   $data = array(
      'filter_category_id'  => $result['category_id'],
      'filter_sub_category' => true
                              );

дописываем строки

if ($result['image']) {
    $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
                      }
    else {
          $image = $this->model_tool_image->resize('no_image.jpg', $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
          }

 

чуть ниже после

'name'  => $result['name'] . ' (' . $product_total . ')',

 

добавляем строку

'thumb' => $image,

 

2. Теперь редактируем темплейт. На примере дефолтного :

в файле catalog/view/theme/default/template/product/category.tpl 

ищем

<?php if ($categories) { ?>
  <h2><?php echo $text_refine; ?></h2>
  <div class="category-list">
    <?php if (count($categories) <= 5) { ?>
    <ul>
      <?php foreach ($categories as $category) { ?>
      <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li>
      <?php } ?>
    </ul>
    <?php } else { ?>
    <?php for ($i = 0; $i < count($categories);) { ?>
    <ul>
      <?php $j = $i + ceil(count($categories) / 4); ?>
      <?php for (; $i < $j; $i++) { ?>
      <?php if (isset($categories[$i])) { ?>
      <li><a href="<?php echo $categories[$i]['href']; ?>"><?php echo $categories[$i]['name']; ?></a></li>
      <?php } ?>
      <?php } ?>
    </ul>
    <?php } ?>
    <?php } ?>
  </div>
  <?php } ?>

и заменяем это все на

<?php if ($categories) { ?>
  <div class="box-product">
    <?php foreach ($categories as $category) { ?>
    <div>
         <div class="image">
             <a href="<?php echo $category['href']; ?>">
                 <img src="<?php echo $category['thumb']; ?>" title="<?php echo $category['name']; ?>" alt="<?php echo $category['name']; ?>" />
             </a>
         </div>
         <div class="name">
             <a href="<?php echo $category['href']; ?>">
                 <?php echo $category['name']; ?>
             </a>
         </div>
    </div>
    <?php } ?>
  </div>
  <?php } ?>

Вот и всё.

Отлично работает на OpenCart 1.5.6

Источник: http://finesites.ru/opencart/kak-dobavit-kartinki-pri-vy-vode-spiska-podkategorij-v-opencart