2017-02-16 8 views
0

В Prestashop, мы можем добавить изображения (превью) в меню подкатегорийPrestashop Подкатегория изображение на верхнем меню

if ((int)$category['level_depth'] > 1 && !$is_children) { 
       $files = scandir(_PS_CAT_IMG_DIR_); 

       if (count(preg_grep('/^'.$category['id_category'].'-([0-9])?_thumb.jpg/i', $files)) > 0) { 
        $html .= '<li class="category-thumbnail">'; 

        foreach ($files as $file) { 
         if (preg_match('/^'.$category['id_category'].'-([0-9])?_thumb.jpg/i', $file) === 1) { 
          $html .= '<div><img src="'.$this->context->link->getMediaLink(_THEME_CAT_DIR_.$file) 
          .'" alt="'.Tools::SafeOutput($category['name']).'" title="' 
          .Tools::SafeOutput($category['name']).'" class="imgm" /></div>'; 
         } 
        } 

        $html .= '</li>'; 
       } 
      } 

Unfortelly, этот код не работает для меня, изображений не отображаются, хотя я установить превью изображения для подкатегорий. Любая помощь?

+0

вы регенерировать изображения после включения миниатюры для категорий? Миниатюра для каждой категории в папке img/c /? – sadlyblue

ответ

0

Это мое решение, он работает со мной

protected function generateCategoriesMenu($categories, $is_children = 0) 
{ 
    $html = ''; 

    foreach ($categories as $key => $category) { 
     if ($category['level_depth'] > 1) { 
      $cat = new Category($category['id_category']); 
      $link = Tools::HtmlEntitiesUTF8($cat->getLink()); 
     } else { 
      $link = $this->context->link->getPageLink('index'); 
     } 

     /* Whenever a category is not active we shouldnt display it to customer */ 
     if ((bool)$category['active'] === false) { 
      continue; 
     } 

     $html .= '<li'.(($this->page_name == 'category' 
      && (int)Tools::getValue('id_category') == (int)$category['id_category']) ? ' class="sfHoverForce"' : '').'>'; 
     $html .= '<a href="'.$link.'" title="'.$category['name'].'">'; 
     if($category['level_depth'] == '3' AND Tools::file_exists_cache(_PS_CAT_IMG_DIR_.(int)$category['id_category'].'_thumb.jpg')) 
      $html .= '<img src="/img/c/'.(int)$category['id_category'].'_thumb.jpg'.'" class="imgm" height="30" /><br>'; 
     $html .= $category['name']; 

     $html .='</a>'; 
     if (isset($category['children']) && !empty($category['children'])) { 
      $html .= '<ul>'; 
      $html .= $this->generateCategoriesMenu($category['children'], 1); 
      $html.= '<li class="sfHoverForce">'.$category['promo_right'].'</li>'; 
      $html .= '</ul>'; 
     } 


     $html .= '</li>'; 
    } 

    return $html; 
}