Jump to content

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


Recommended Posts

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

Link to comment
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}

Link to comment
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>

Link to comment
Share on other sites

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

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

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

 

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

 

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

Link to comment
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>

Link to comment
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)
Link to comment
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 категории и в итоге вместо магазина получил надпись "категории" на чистом листе.

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

Link to comment
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
Link to comment
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
Link to comment
Share on other sites

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

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

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

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

Link to comment
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
×
×
  • Create New...