Перейти к содержанию
Официальный форум поддержки Simpla

Отображение в меню только субкатегорий текущей категории.


Рекомендуемые сообщения

Здравствуйте, интересует один вопрос, как сделать в Simple отображение только субкатегорий в выбранном пункте меню?
Сейчас меню выглядит так:
-Категория1
--Подкатегория 1.1
---Подкатегория 1.1.1
---Подкатегория 1.1.2
---Подкатегория 1.1.3

-Категория2
--Подкатегория 2.1
---Подкатегория 2.1.1
---Подкатегория 2.1.2
---Подкатегория 2.1.3

А нужно при открытии Подкатегории выводить только её дочерне элементы:
Заголовок страницы: Подкатегория 1.1
Меню Сайта:
---Подкатегория 1.1.1
---Подкатегория 1.1.2
---Подкатегория 1.1.3
---Подкатегория 1.1.4
---Подкатегория 1.1.5


Я так понял нужно править в index.tpl вот этот кусок кода:

<li>
{if $c->image}<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name}">{/if}
<a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name}</a>
{categories_tree categories=$c->subcategories}
</li>

Но что именно написать так и не понял :(
Ссылка на сообщение
Поделиться на другие сайты

Именно так и предполагается, сверху горизонтальное меню с категориями-подкатегориями, юзверь выбирает нужную категорию и в левой колонке меню с "вариантами" товара

Ссылка на сообщение
Поделиться на другие сайты
  • 1 месяц спустя...

 

<!-- Меню каталога -->
			<div id="catalog_menu">
			<ul>
			{foreach $category->subcategories as $c}
				{* Показываем только видимые категории *}
				{if $c->visible}
					<li>
						{if $c->image}<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name}">{/if}
						<a href="catalog/{$c->url}" data-category="{$c->id}">{$c->name}</a>
					
					</li>
				{/if}
			{/foreach}
			</ul>
			<!-- Меню каталога (The End)-->

 

 

 

Подскажите, а как вывести тут ещё товары которые находятся в открытой под категории?

Делаю вот так, товары выводятся, но есть глюк. они дублируются и у другой под категории.... Что не так с кодом?

<div id="catalog_menu">
  <ul>
  {foreach $category->subcategories as $c}
    {* Показываем только видимые категории *}
    {if $c->visible}
    <li>
    <a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name}</a>
    <!--Каталог товаров-->
    {if ($c->parent_id<0) && ($c->id == $c->id)}
       <!-- Список товаров-->					
       {foreach $products as $product}
		<!-- Товар-->
		<div class="product">
		<!-- Название товара -->
		<a data-product="{$product->id}" href="products/{$product->url}">{$product->name|escape}</a>
		<!-- Название товара (The End) -->
		</div>
		<!-- Товар (The End)-->
       {/foreach}	  
							
    {/if}	
     <!--Каталог товаров (The End)-->
    </li>
  {/if}
 {/foreach}
 </ul>
</div>

Вот что получается:

- Категория 0

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

--- Под категория 1.2

---- Товар 1.2.1

---- Товар 1.2.2

 

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

---- Товар 1.2.1

---- Товар 1.2.2

 

Тоесть товары которые привязаны к под категории (1.2) тоже выводятся :(    Помогите исправить это

Ссылка на сообщение
Поделиться на другие сайты

($c->id == $c->id) а что это за условие?

может хотели ($category->id == $c->id)

да именно так, прошу прощения случайно удалил когда вставлял код, что подскажете по этому поводу?

Ссылка на сообщение
Поделиться на другие сайты

Для начала вам необходимо сделать изменения в /view/View.php как рассказано 

http://forum.simplacms.ru/topic/4370-spisok-tovarov-pod-kategoriyami-na-glavnoy/?hl=%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B8

 

ну и далее

 

<div id="catalog_menu">
  <ul>
  {foreach $category->subcategories as $c}
    {* Показываем только видимые категории *}
    {if $c->visible}
    <li>
    <a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name}</a>
    <!--Каталог товаров-->
	 {get_cat_products category_id = $c->id var=products}
    {if $products}
      <!-- Список товаров-->	
      {foreach $products as $product}
		<!-- Товар-->
		<div class="product">
		<!-- Название товара -->
		{$product->product_id}
		<a data-product="{$product->id}" href="products/{$product->url}">{$product->name|escape}</a>
		<!-- Название товара (The End) -->
		</div>
		<!-- Товар (The End)-->
      {/foreach}
    {/if}
     <!--Каталог товаров (The End)-->
    </li>
    {/if}	
 {/foreach}
 </ul>
</div>	

Ссылка на сообщение
Поделиться на другие сайты

Просто супер :) Спасибо Вам.

Если можно ещё один вопросик?

 

Товары показываются, всё гут.

Но когда я захожу уже в под под категорию, я вижу описание её, под ней товары которые в ней находятся, а вот меню почему больше не выводятся дальше с товарами этой под по категории. Так и должно быть или они все таки должны выводится ...

Ссылка на сообщение
Поделиться на другие сайты

У вас же условие в меню стоит, показывать только подкатегории.

 

Я наверное не совсем правильно изложил свой вопрос...

 

Попытаюсь еще разок. Вот такая цепочка выстраиваться должна:

Под категория -> Под под категория -> Товар

 

Наглядно вот как на рисунке http://floomby.ru/s1/vaPg4B

 

Получается что товары мы не должны видеть до того момента пока не нажмем на под под категорию

Ссылка на сообщение
Поделиться на другие сайты

{* Рекурсивная функция вывода дерева категорий *}
{function name=categories_tree}
{if $categories}
<ul>
{foreach $categories as $c}
{* Показываем только видимые категории *}
{if $c->visible}
<li>
{if $c->image}<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name}">{/if}
<a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name}</a>
{if $category->id == $c->id}
{get_cat_products category_id = $c->id var=products}
{if $products}
<ul>
{foreach $products as $product}
<li><a data-product="{$product->id}" href="products/{$product->url}">{$product->name|escape}</a></li>
{/foreach}
</ul>
{/if}
{/if}
{categories_tree categories=$c->subcategories}
</li>
{/if}
{/foreach}
</ul>
{/if}
{/function}
{categories_tree categories=$categories}
</div>
<!-- Меню каталога (The End)-->

Ссылка на сообщение
Поделиться на другие сайты
  • 4 месяца спустя...

а вот у мну чета не раюботает 

<!-- Меню каталога -->
			<div id="catalog_menu">
					
			{* Рекурсивная функция вывода дерева категорий *}
			{function name=categories_tree}
			{if $categories}
			<ul>
			{foreach $categories as $c}
				{* Показываем только видимые категории *}
				{if $c->visible}
					<li>
						{if $c->image}<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name}">{/if}
						<a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name}</a>
						{*categories_tree categories=$c->subcategories*}
						<!-- Меню каталога -->
						{if $category->id == $c->id}
						<ul>
						{foreach $category->subcategories as $c}
							{* Показываем только видимые категории *}
							{if $c->visible}
								<li>
									{if $c->image}<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name}">{/if}
									<a href="catalog/{$c->url}" data-category="{$c->id}">{$c->name}</a>
								
								</li>
							{/if}
						{/foreach}
						</ul>
						{/if}
						<!-- Меню каталога (The End)-->
					</li>
				{/if}
			{/foreach}
			</ul>
			{/if}
			{/function}
			{categories_tree categories=$categories}
			</div>
			<!-- Меню каталога (The End)-->		

У меня

Категория -> подкатегория -> товары

и вот значит если нажать на категории то они отображаются а вот если нажать на Подкатегорию то подкатегории не отображаются

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...