Изображения категорий в горизонтальном меню Prestashop
Нужно было вывести картинки категорий в самом горизонтальном меню (blocktopmenu) Престашоп.
За вывод изображений категорий в меню отвечает функция generateCategoriesMenu которая находиться в файле blocktopmenu.php
Открываем этот файл который находиться в модулях и редактируем его
public_html/modules/blocktopmenu/blocktopmenu.php
ищем функцию generateCategoriesMenu и комментируем её для сохранности оригинала
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | // 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; // } |
после неё добавляем
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | 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; } |
Спасибо — класс