2015-05-06 2 views
0

У меня трудное время, чтобы сделать это возможным. что я собираюсь сделать, так это то, что я хочу, чтобы изображения категорий в моем меню были большими пальцами в Opencart 2.0.x.Создание изображения категории в виде большого пальца в меню, OpenCart 2.0.x

Я поставил 'палец' => $ большой палец, в каталоге/контроллер/общий/header.tpl

Как это:

 // 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 
       ); 

       $children_data[] = array(
        'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 
        'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) 
       ); 
      } 

      // Level 1 

     $this->load->model('tool/image'); 
     $image = empty($category['image']) ? 'no_image.jpg' : $category['image']; 
     $thumb = $this->model_tool_image->resize($image, 100, 100); 

      $data['categories'][] = array(
       'name'  => $category['name'], 
       'children' => $children_data, 
       'thumb' => $thumb, 
       'column' => $category['column'] ? $category['column'] : 1, 
       'href'  => $this->url->link('product/category', 'path=' . $category['category_id']) 
      ); 
     } 
    } 

И я также поставил $ категорию [ 'палец' ] в каталоге/представления/темы/по умолчанию/шаблон/общее/header.tpl

Как это:

   <?php if ($categories) { ?> 
      <nav id="navigation"> 
       <div class="boxed bg-navigation"> 
        <div class="container"> 
         <ul data-breakpoint="800" class="flexnav with-js lg-screen clearfix"> 
          <?php foreach ($categories as $category) { ?> 
          <?php if ($category['children']) { ?> 
          <li><a href="<?php echo $category['href']; ?>" ><?php echo $category['name']; ?></a> 
           <ul class="list-unstyled ul-col-<?php echo $category['column']; ?>"> 
            <?php foreach (array_chunk($category['children'], ceil(count($category['children'])/$category['column'])) as $children) { ?> 
            <?php if ($category['column'] == 1) { ?> 
            <?php foreach ($children as $child) { ?> 
            <li><a href="<?php echo $child['href']; ?>"><?php echo $child['name']; ?></a></li> 
            <?php } ?> 
            <?php } else { ?> 
            <li class="li-inline"> 
             <div> 
              <?php foreach ($children as $child) { ?> 
              <?php $category['thumb']?> 
              <a href="<?php echo $child['href']; ?>"><?php echo $child['name']; ?></a> 
              <?php } ?> 
             </div> 
            </li> 
            <?php } ?> 
            <?php } ?> 
           </ul> 
          </li> 
          <?php } else { ?> 
          <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li> 
          <?php } ?> 
          <?php } ?> 
         </ul> 

        </div> 
       </div> 
      </nav> 
      <?php } ?> 

Что я DOI Неправильно? Я нашел это решение на переполнении стека Solution

Но я не могу исправить это правильно, это, вероятно, простая вещь, которую я действительно не вижу. Я уже делал это с другой картой в OpenCart 1.5.6.4. Но это также не очень помогло мне. Если вы хотите, я могу вставить другой код.

ответ

1

Это происходит потому, что $category['thumb'] содержит только источник изображения, так в файле шаблона

Заменить <?php $category['thumb']?>

С <img src="<?php echo $category['thumb']?>" alt="<?php echo $child['name']; ?>"/>

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

no_image.jpg заменен как no_image.png в последней версии.

+0

Я пробовал ваш ответ, но я получаю Уведомление: Неопределенный индекс: изображение или большой палец, если я перехожу к тому, что мы написали. Я все пробовал. И изменил какой-то материал, но ничего не работает нормально. –

+0

no_image.png он работал в моей, – Ramesh

2

У меня была такая же проблема, и получил эту работу на OpenCart 2.1.0.1 Вот каталог/контроллер/общий/файл header.php:

(line 113) 
// 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 
       ); 

       $this->load->model('tool/image'); 
       $image = empty($child['image']) ? 'no_image.png' : $child['image']; 
       $thumb = $this->model_tool_image->resize($image, 100, 100); 

       $children_data[] = array(
        'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 
        'thumb' => $thumb, 
        'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) 
       ); 
      } 

А вот мой каталог/просмотр/тема/default/template/common/header.tpl:

(line 108) 
<li><a href="<?php echo $child['href']; ?>"><img src="<?php echo $child['thumb']?>" alt="<?php echo $child['name']; ?>"/><br /><?php echo $child['name']; ?></a></li> 

Надеюсь, что это поможет.