Модуль Горизонтального меню, изменить

Автор smityukh, 18 ноября 2013, 16:54:32

« назад - далее »

smityukh

Добрый день, коллеги!

Столкнулся с такой проблемой: необходимо в горизонтальном меню в подкатегориях выводить не название подкатегории, а картинку, которая будет загружаться при создании подкатегории. Не могли бы вы подсказать, где найти код этого главного меню. В blocktopmenu.tpl стоит только переменная $MENU, а вот где содержимое этой переменной - не могу понять. Заранее благодарю за помощь!

coder


smityukh

Спасибо! Сам только что шерстил этот код...

вот я вижу формирование подкатегорий, насколько я понимаю

if (!empty($is_intersected))
{
$this->_menu .= '<li '.$selected.'>';
$this->_menu .= '<a href="'.Tools::HtmlEntitiesUTF8($category_link).'">'.$category->name.'</a>';

if (count($children))
{
$this->_menu .= '<ul>';

foreach ($children as $child)
$this->getCategory((int)$child['id_category'], (int)$id_lang, (int)$child['id_shop']);

$this->_menu .= '</ul>';
}
$this->_menu .= '</li>';
}

это вроде как формирование подкатегорий... как мне найти и где найти формирование <li></li> для подкатегорий, чтобы вместо названия подкатегории туда всунуть картинку загружаемую... заранее спасибо, а то разобраться сам не могу ((

coder

Открытие тега
$this->_menu .= '<li '.$selected.'>';
ссылка
$this->_menu .= '<a href="'.Tools::HtmlEntitiesUTF8($category_link).'">'.$category->name.'</a>';
закрытие
$this->_menu .= '</li>';

smityukh

Удаляю код $category->name и ничего на сайте не меняется ((

Не могу понять, как быть...

Насколько я понял, чтобы вставить в подкатегории картинку, которую можно загружать при создании категорий, нужно найти место, где формируется меню, список подкатегории и вставить вместо имя категории переменную с выводом картинки, так?

В .tpl субкатегорий темы нашел вывод картинки на странице подкатегорий, ее код вот такой

<div id="subcategories">
<h3>{l s='Subcategories'}</h3>
<ul class="inline_list">
{foreach from=$subcategories item=subcategory}
<li class="clearfix">
<a href="{$link->getCategoryLink($subcategory.id_category, $subcategory.link_rewrite)|escape:'htmlall':'UTF-8'}"
title="{$subcategory.name|escape:'htmlall':'UTF-8'}" class="img">
{if $subcategory.id_image}
<img src="{$link->getCatImageLink($subcategory.link_rewrite, $subcategory.id_image, 'medium_default')|escape:'html'}"
alt="" width="{$mediumSize.width}" height="{$mediumSize.height}" />
{else}
<img src="{$img_cat_dir}default-medium_default.jpg" alt="" width="{$mediumSize.width}" height="{$mediumSize.height}" />
{/if}
</a>
<a href="{$link->getCategoryLink($subcategory.id_category, $subcategory.link_rewrite)|escape:'htmlall':'UTF-8'}" class="cat_name">{$subcategory.name|escape:'htmlall':'UTF-8'}</a>
{if $subcategory.description}
<p class="cat_desc">{$subcategory.description}</p>
{/if}
</li>
{/foreach}
</ul>
<br class="clear"/>
</div>


Т.е. вывод картинки тут идет

{if $subcategory.id_image}
<img src="{$link->getCatImageLink($subcategory.link_rewrite, $subcategory.id_image, 'medium_default')|escape:'html'}"
alt="" width="{$mediumSize.width}" height="{$mediumSize.height}" />
{else}
<img src="{$img_cat_dir}default-medium_default.jpg" alt="" width="{$mediumSize.width}" height="{$mediumSize.height}" />
{/if}


Это нужно поместить, вместо названия подкатегории в месте, где формируется подкатегория... Поможете?..

coder

ЦитироватьУдаляю код $category->name и ничего на сайте не меняется ((
Кеш отключить нужно.
Если поставить вместо "$category->name" любое значение, то в меню будет видно это значение.
Для подставновки картинки нужно удалить имя категории и вставить переменную изображения.
Не так как в шаблонах tpl.

smityukh

Цитата: coder от 18 ноября 2013, 18:27:18
Если поставить вместо "$category->name" любое значение, то в меню будет видно это значение.
Для подставновки картинки нужно удалить имя категории и вставить переменную изображения.
Не так как в шаблонах tpl.
Уже разобрался слегка... там запущен цикл.., если есть подкатегории опять запускается функция getCategory и повторяет все шаги. Придумано хорошо, но получается, что если заменить $category->name на что-то другое, то изменяться не только пункты подменю, а и все остальные пункты меню. А мне нужно картинки дать только подпунктам меню ((

mAgency

Функция формирования меню рекурсивная, вызывает сама себя. Для различия категорий и подкатегорий есть переменная уровня
$category->level_depth
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.

Adik

Цитироватьзаменить $category->name на что-то другое
Можно так
if ($category->level_depth > 1){
$category_link = $category->getLink();
$img_category =  '<img src="'.$this->context->link->getCatImageLink($category->link_rewrite, $id_category, 'small_default').'" />';
}

и заменить имя на картинку
if (!empty($is_intersected))
{
$this->_menu .= '<li '.$selected.'>';
$this->_menu .= '<a href="'.Tools::HtmlEntitiesUTF8($category_link).'">'.$img_category.'</a>';



smityukh

Спасибо за подсказки.

Подскажите, какая переменная отвечает за id категории? Хочу прописать еще условие, чтобы подкатегории отрисовывались только для категории с определенным id... спасибо!

smityukh



smityukh

#12

neogen

Прошу сбросить мне эти отредактированые файлы на neolvg@gmail.com, поскольку не могу разобраться сам в коде...