Jump to content

Категории в блоке


Recommended Posts

Подскажите, создал допустим две категории. Товары и услуги. Хочу, чтобы в блоке категории не отображалась вначале название категории Товары, а только отображались подкатегории. Если ставлю не показывать категорию, то автоматом не показываются и подкатегории. А поднять подкатегории вверх не могу, тогда в горизонтальном меню не получается сделать на все товары один выпадающий пункт.

Share this post


Link to post
Share on other sites

Если на странице категории есть субкатегории, то не отображать продукты, а только субкатегории? я так понял? Если да, то шаблон category.tpl должен содержать вот этот код:

 

{include file="$tpl_dir./breadcrumb.tpl"}
{include file="$tpl_dir./errors.tpl"}
{if isset($category)}
{if $category->id AND $category->active}
 <h1>
  {strip}
   {$category->name|escape:'htmlall':'UTF-8'}
   {if isset($categoryNameComplement)}
 {$categoryNameComplement|escape:'htmlall':'UTF-8'}
   {/if}
  {/strip}
 </h1>

 <div class="resumecat category-product-count">
  {include file="$tpl_dir./category-count.tpl"}
 </div>

 {if $scenes || $category->description || $category->id_image}
 <div class="content_scene_cat">
  {if $scenes}
   <!-- Scenes -->
   {include file="$tpl_dir./scenes.tpl" scenes=$scenes}
  {else}
   <!-- Category image -->
   {if $category->id_image}
   <div class="align_center">
 <img src="{$link->getCatImageLink($category->link_rewrite, $category->id_image, 'category_default')}" alt="{$category->name|escape:'htmlall':'UTF-8'}" title="{$category->name|escape:'htmlall':'UTF-8'}" id="categoryImage" width="{$categorySize.width}" height="{$categorySize.height}" />
   </div>
   {/if}
  {/if}
  {if $category->description}
   <div class="cat_desc">
   {if strlen($category->description) > 120}
 <p id="category_description_short">{$category->description|truncate:120}</p>
 <p id="category_description_full" style="display:none">{$category->description}</p>
 <a href="#" onclick="$('#category_description_short').hide(); $('#category_description_full').show(); $(this).hide(); return false;" class="lnk_more">{l s='More'}</a>
   {else}
 <p>{$category->description}</p>
   {/if}
   </div>
  {/if}
 </div>
 {/if}
 {if isset($subcategories)}
  <!-- Subcategories -->
  <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')}" 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>
 {else}
  {if $products}
   <div class="content_sortPagiBar">
 {include file="$tpl_dir./pagination.tpl"}
 <div class="sortPagiBar clearfix">
  {include file="./product-sort.tpl"}
  {include file="./product-compare.tpl"}
  {include file="./nbr-product-page.tpl"}
 </div>
   </div>

   {include file="./product-list.tpl" products=$products}

   <div class="content_sortPagiBar">
 <div class="sortPagiBar clearfix">
  {include file="./product-sort.tpl"}
  {include file="./product-compare.tpl"}
  {include file="./nbr-product-page.tpl"}
 </div>
 {include file="./pagination.tpl"}
   </div>
  {/if}
 {/if}
{elseif $category->id}
 <p class="warning">{l s='This category is currently unavailable.'}</p>
{/if}
{/if}

Share this post


Link to post
Share on other sites

А если не выводить указанные категории в модуле "Categories block", то в шаблоне modules/blockcategories/category-tree-branch.tpl прописать дополнительное условие:

 

<li {if isset($last) && $last == 'true'}class="last"{/if}>
<a href="{$node.link|escape:'htmlall':'UTF-8'}" {if isset($currentCategoryId) && $node.id == $currentCategoryId}class="selected"{/if} {if ($node.id == 'здесь указать id категории, которую не отображать' || $node.id == 'здесь указать id второй категории, которую не отображать'}style="display: none"{/if} title="{$node.desc|escape:'htmlall':'UTF-8'}">{$node.name|escape:'htmlall':'UTF-8'}</a>
{if $node.children|@count > 0}
 <ul>
 {foreach from=$node.children item=child name=categoryTreeBranch}
  {if $smarty.foreach.categoryTreeBranch.last}
   {include file="$branche_tpl_path" node=$child last='true'}
  {else}
   {include file="$branche_tpl_path" node=$child last='false'}
  {/if}
 {/foreach}
 </ul>
{/if}
</li>

Share this post


Link to post
Share on other sites

Спасибо за ответ. Сейчас ещё раз объясню что хочется.

Допустим есть категория 1. В ней есть подкатегория 1.1 и 1.2. В этих подкатегориях уже товары.

есть категория 2. В ней тоже подкатегории 2.1 и 2.2.

 

Когда происходит вывод в блоке категорий. то там вначале появляются категория 1, а уже в ней появляются категории 1.1 и 1.2. Можно ли сделать так, чтобы в блоке категория 1 не выводилась (не показывалась), а показывались только подкатегории?

 

На вопрос зачем мне тогда вообще нужны категории 1 и 2, то мне необходимо в верхнем горизонтальном меню выводить отдельными пунктами категория 1 и категория 2, которые раскрываются и там уже можно выбрать подкатегории. А как сделать это по другому я не знаю.

Share this post


Link to post
Share on other sites

Спасибо за ответ. Сейчас ещё раз объясню что хочется.

Допустим есть категория 1. В ней есть подкатегория 1.1 и 1.2. В этих подкатегориях уже товары.

есть категория 2. В ней тоже подкатегории 2.1 и 2.2.

 

Когда происходит вывод в блоке категорий. то там вначале появляются категория 1, а уже в ней появляются категории 1.1 и 1.2. Можно ли сделать так, чтобы в блоке категория 1 не выводилась (не показывалась), а показывались только подкатегории?

 

На вопрос зачем мне тогда вообще нужны категории 1 и 2, то мне необходимо в верхнем горизонтальном меню выводить отдельными пунктами категория 1 и категория 2, которые раскрываются и там уже можно выбрать подкатегории. А как сделать это по другому я не знаю.

 

тогда вот решение:

<li {if isset($last) && $last == 'true'}class="last"{/if}>
<a href="{$node.link|escape:'htmlall':'UTF-8'}" {if isset($currentCategoryId) && $node.id == $currentCategoryId}class="selected"{/if} {if ($node.id == 'здесь указать id категории, которую не отображать' || $node.id == 'здесь указать id второй категории, которую не отображать'}style="display: none"{/if} title="{$node.desc|escape:'htmlall':'UTF-8'}">{$node.name|escape:'htmlall':'UTF-8'}</a>
{if $node.children|@count > 0}
 <ul>
 {foreach from=$node.children item=child name=categoryTreeBranch}
  {if $smarty.foreach.categoryTreeBranch.last}
   {include file="$branche_tpl_path" node=$child last='true'}
  {else}
   {include file="$branche_tpl_path" node=$child last='false'}
  {/if}
 {/foreach}
 </ul>
{/if}
</li>

Share this post


Link to post
Share on other sites

Всё работает. Спасибо. Вносил изменения в корневой папке, а надо было в темах со своим проектом.

Share this post


Link to post
Share on other sites

  • 3 weeks later...

Всегда хорошо, когда форум помогает))

 

Ребята, погодите!

Не закрывайте тему!!! Мне нужно ваша помощь. Опишу в 2-х словах. Использую PrestaShop v1.5.4.1 и стандартный модуль категорий. У меня несколько главных категорий (около 5-и), но в данный момент они отключен, активна только одна. Она главная и имеет подкатегории до 5-го уровня. Проблема в том, что в модуле КАТЕГОРИИ она отображается в свернутом состоянии и получается, что клиенты не видят подкатегории до тех пор пока не нажмут на ее.

Да и выглядит это не красиво.

Так вот и вопрос:

Может кто подскажет, где и что нужно поменять для того, чтобы категории отображались в развернутом виде т.е.

Сейчас у меня выглядит это так:

 

Модуль КАТЕГОРИИ

------------------------------

- 1-я категория+

------------------------------

 

а нужно сделать вот так:

 

Модуль КАТЕГОРИИ

------------------------------

- 1-я категория

-- -- 1-я подкатегория

-- -- 2-я подкатегория+

-- -- 3-я подкатегория+

-- -- 4-я подкатегория

-- -- 5-я подкатегория+

------------------------------

 

Читал тут статьи, пытался методом тыка что-то изменить, но ничего не вышло =(

Буду очень благодарен за помощь! Спасибо!

Edited by Oleg2013 (see edit history)

Share this post


Link to post
Share on other sites

тогда вот решение:

<li {if isset($last) && $last == 'true'}class="last"{/if}>
<a href="{$node.link|escape:'htmlall':'UTF-8'}" {if isset($currentCategoryId) && $node.id == $currentCategoryId}class="selected"{/if} {if ($node.id == 'здесь указать id категории, которую не отображать' || $node.id == 'здесь указать id второй категории, которую не отображать'}style="display: none"{/if} title="{$node.desc|escape:'htmlall':'UTF-8'}">{$node.name|escape:'htmlall':'UTF-8'}</a>
{if $node.children|@count > 0}
 <ul>
 {foreach from=$node.children item=child name=categoryTreeBranch}
  {if $smarty.foreach.categoryTreeBranch.last}
{include file="$branche_tpl_path" node=$child last='true'}
  {else}
{include file="$branche_tpl_path" node=$child last='false'}
  {/if}
 {/foreach}
 </ul>
{/if}
</li>

Привет, я попробовал сделать так же, но в итоге у меня рухнул магазин, указал id категории и в итоге вместо магазина получил надпись "категории" на чистом листе.

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

Share this post


Link to post
Share on other sites

  • 1 month later...

Привет, я попробовал сделать так же, но в итоге у меня рухнул магазин, указал id категории и в итоге вместо магазина получил надпись "категории" на чистом листе.

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

 

А если не выводить указанные категории в модуле "Categories block", то в шаблоне modules/blockcategories/category-tree-branch.tpl прописать дополнительное условие:

 

<li {if isset($last) && $last == 'true'}class="last"{/if}>
<a href="{$node.link|escape:'htmlall':'UTF-8'}" {if isset($currentCategoryId) && $node.id == $currentCategoryId}class="selected"{/if} {if ($node.id == 'здесь указать id категории, которую не отображать' || $node.id == 'здесь указать id второй категории, которую не отображать'}style="display: none"{/if} title="{$node.desc|escape:'htmlall':'UTF-8'}">{$node.name|escape:'htmlall':'UTF-8'}</a>
{if $node.children|@count > 0}
  <ul>
  {foreach from=$node.children item=child name=categoryTreeBranch}
   {if $smarty.foreach.categoryTreeBranch.last}
    {include file="$branche_tpl_path" node=$child last='true'}
   {else}
    {include file="$branche_tpl_path" node=$child last='false'}
   {/if}
  {/foreach}
  </ul>
{/if}
</li>

Сделал как Вы советовали. В итого падает магазин. Ошибка 500. Вот мой файл:

<li {if isset($last) && $last == 'true'}class="last"{/if}>
<a href="{$node.link|escape:'htmlall':'UTF-8'}" {if isset($currentCategoryId) && $node.id == $currentCategoryId}class="selected"{/if} title="{$node.desc|escape:'htmlall':'UTF-8'}" style="background:none;padding-left:7px">{$node.name|escape:'htmlall':'UTF-8'}</a>
 
</li>
 
 
А вот мой сайт www.shopthule.ru нужно скрыть в левой части 2-е последние категории. Версия 1.5.4

Share this post


Link to post
Share on other sites

  • 2 months later...

Ребята, погодите!

Не закрывайте тему!!! Мне нужно ваша помощь. Опишу в 2-х словах. Использую PrestaShop v1.5.4.1 и стандартный модуль категорий. У меня несколько главных категорий (около 5-и), но в данный момент они отключен, активна только одна. Она главная и имеет подкатегории до 5-го уровня. Проблема в том, что в модуле КАТЕГОРИИ она отображается в свернутом состоянии и получается, что клиенты не видят подкатегории до тех пор пока не нажмут на ее.

Да и выглядит это не красиво.

Так вот и вопрос:

Может кто подскажет, где и что нужно поменять для того, чтобы категории отображались в развернутом виде т.е.

Сейчас у меня выглядит это так:

 

Модуль КАТЕГОРИИ

------------------------------

- 1-я категория+

------------------------------

 

а нужно сделать вот так:

 

Модуль КАТЕГОРИИ

------------------------------

- 1-я категория

-- -- 1-я подкатегория

-- -- 2-я подкатегория+

-- -- 3-я подкатегория+

-- -- 4-я подкатегория

-- -- 5-я подкатегория+

------------------------------

 

Читал тут статьи, пытался методом тыка что-то изменить, но ничего не вышло =(

Буду очень благодарен за помощь! Спасибо!

В настройках модуля blockcategories отключи динамический режим.

  • Like 2

Share this post


Link to post
Share on other sites

Подскажите пожалуйста как сократить до 30 символов title - всплывающие окна в меню категорий (при наведении на категорию появляется окно с полным её описанием)

в category-tree-branch.tpl есть строчка

title="{$node.desc|escape:'htmlall':'UTF-8'}"

как можно поправить?

Share this post


Link to post
Share on other sites

  • 1 year later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More