Найти тему
TEMATUT.RU

Картинки категорий в горизонтальном меню Prestashop

Нужно было вывести картинки категорий в самом горизонтальном меню (blocktopmenu) Престашоп.

За вывод изображений категорий в меню отвечает функция generateCategoriesMenu которая находиться в файле blocktopmenu.php

Открываем этот файл который находиться в модулях и редактируем его

public_html/modules/blocktopmenu/blocktopmenu.php

ищем функцию generateCategoriesMenu и комментируем её для сохранности оригинала

// 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'].'">'.$category['name'].'</a>';

//         if (isset($category['children']) && !empty($category['children'])) {

//             $html .= '<ul>';

//             $html .= $this->generateCategoriesMenu($category['children'], 1);

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

//                 }

//             }

//             $html .= '</ul>';

//         }

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

//     }

//     return $html;

// }

после неё добавляем

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'].'">';

//$html .= '<img src="/img/c/'.(int)$category['id_category'].'-medium_default.jpg'.'" class="imgm" height="30" /><br>';

if($category['level_depth'] == '3' AND Tools::file_exists_cache(_PS_CAT_IMG_DIR_.(int)$category['id_category'].'-medium_default.jpg'))

$html .= '<img src="/img/c/'.(int)$category['id_category'].'-medium_default.jpg'.'" class="imgm" height="125" /><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;

}