Вам нужно изменить файл шаблона вашего меню и лучше сделать это внутри вашей темы themes/your_theme/modules/ps_mainmenu/ps_mainmenu.tpl
и добавить туда аналогичную часть кода
{if $node.type == 'category'}
{if isset($node.image_urls) && $node.image_urls}
{foreach from=$node.image_urls item='thumb'}
<img src="{$thumb}" alt="" />
{/foreach}
{/if}
{/if}
внутри {foreach from=$nodes item=node}
, в моем случае это выглядит так
{assign var=_counter value=0}
{function name="menu" nodes=[] depth=0 parent=null}
{if $nodes|count}
<ul class="top-menu" {if $depth == 0}id="top-menu"{/if} data-depth="{$depth}">
{foreach from=$nodes item=node}
<li class="{$node.type}{if $node.current} current {/if}" id="{$node.page_identifier}">
{if $node.type == 'category'}
{if isset($node.image_urls) && $node.image_urls}
{foreach from=$node.image_urls item='thumb'}
<img src="{$thumb}" alt="" />
{/foreach}
{/if}
{/if}
{assign var=_counter value=$_counter+1}
<a
class="{if $depth >= 0}dropdown-item{/if}{if $depth === 1} dropdown-submenu{/if}"
href="{$node.url}" data-depth="{$depth}"
{if $node.open_in_new_window} target="_blank" {/if}
>
{if $node.children|count}
{* Cannot use page identifier as we can have the same page several times *}
{assign var=_expand_id value=10|mt_rand:100000}
<span class="float-xs-right hidden-md-up">
<span data-target="#top_sub_menu_{$_expand_id}" data-toggle="collapse" class="navbar-toggler collapse-icons">
<i class="material-icons add"></i>
<i class="material-icons remove"></i>
</span>
</span>
{/if}
{$node.label}
</a>
{if $node.children|count}
<div {if $depth === 0} class="popover sub-menu js-sub-menu collapse"{else} class="collapse"{/if} id="top_sub_menu_{$_expand_id}">
{menu nodes=$node.children depth=$node.depth parent=$node}
</div>
{/if}
</li>
{/foreach}
</ul>
{/if}
{/function}
<div class="menu js-top-menu position-static hidden-sm-down" id="_desktop_top_menu">
{menu nodes=$menu.children}
<div class="clearfix"></div>
</div>
и это работает, но не совсем предсказуемо для меня.Потому что он добавляет изображения только к категориям, которые имеют дочерние категории.Так что, если это нормально, вы можете оставить его в этом состоянии, но если нет, и вы хотите отображать изображения для всех категорий, вам нужно изменить файл контроллера модуля.Перейдите к вашему модулю в папке основных модулей modules/ps_mainmenu/ps_mainmenu.php
и измените метод generateCategoriesMenu
.Удалите код
$files = scandir(_PS_CAT_IMG_DIR_);
if (count(preg_grep('/^'.$category['id_category'].'-([0-9])?_thumb.jpg/i', $files)) > 0) {
foreach ($files as $file) {
if (preg_match('/^'.$category['id_category'].'-([0-9])?_thumb.jpg/i', $file) === 1) {
$image_url = $this->context->link->getMediaLink(_THEME_CAT_DIR_.$file);
$node['image_urls'][] = $image_url;
}
}
}
из условия if (isset($category['children']) && !empty($category['children']))
и поставьте его точно перед условием.