Webasyst Shop-Script 3: Убираем категории с витрины

Часто приходится скрывать определенные категории товаров с витрины сайта от пользователей, дабы не вводить их в заблуждение (товара нет в наличии/временно недоступен/снят с производства и т.п.). К сожалению, разработчики не уделили этому моменту достаточно внимания и в один клик скрыть категорию с главной нельзя. Ниже, я расскажу как это сделать самостоятельно.

Для начала, стоит определиться с номером скрываемой категории. Узнать искомый номер, можно так: заходим в админпанель магазина, далее выбираем продукты и подводим курсор к нужной вам категории. Через время выплывет подсказка с адресом ссылки вида http://domain.com/published/SC/html/scripts/index.php?ukey=categorygoods&categoryID=614&did=14&expandCat=614. Цифры в конце — и есть номер категории (в нашем случае — 614).

После того, как узнали нужную цифру, необходимо отредактировать файл root_categories.html, отвечающий за вывод категорий на витрину. Находится он в published/SC/html/scripts/templates/frontend. Открываем блокнотом, видим внутри код. Полностью логику исполняемого кода описывать не буду, да нам это и не нужно.
Чтобы скрыть категорию, добавляем между td class=»cat_name» и a href='{$_cat_url}’ class[…] код:

{if $_cat.categoryID ne XXX}

где XXX — номер скрываемой категории. Далее, добавляем

{/if}

перед закрывающими тэгами /div и /td.

В итоге имеем такой кусок кода в файле:

<td class="cat_name">
{if $_cat.categoryID ne XXX}<a href='{$_cat_url}' class="rcat_root_category">{$_cat.name|escape:'html'|default:'(no name)'}</a> 
<span class="rcat_products_num">[{$_cat.products_count}]</span>
<div class="rcat_child_categories"> {foreach name=sub_cat_list from=$root_categories_subs[$_cat.categoryID] item=_subcat} {if $subcategories_numberlimit&&(!$smarty.foreach.sub_cat_list.first)&&($smarty.foreach.sub_cat_list.iteration==$subcategories_numberlimit)} &nbsp;... {elseif !$subcategories_numberlimit||$subcategories_numberlimit&&($smarty.foreach.sub_cat_list.iteration<$subcategories_numberlimit)}  {if !$smarty.foreach.sub_cat_list.first}{$subcategories_delimiter|escape:'html'}{/if} 
<a href='{"?categoryID=`$_subcat.categoryID`&category_slug=`$_subcat.slug`"|set_query_html}'>{$_subcat.name|escape:'html'}</a> 
{/if}
{/foreach}
{/if}
</div>
</td>

Логика как видите странная, однако работает.
Если категории у вас отображаются с картинками, т.е. с лого категорий, тогда стоит убрать и её, для этого:

<td width="1%" align="center" class="cat_image">{if $_cat.categoryID ne 659}<a href='{$_cat_url}' class="home_page_category_logo"></a>{/if}</td> 

Собственно, всё.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

пять + 14 =