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

Вывод подкатегорий в определенной категории


Перейти к решению Решено Kosjak76,

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

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

Ссылка на сообщение
Поделиться на другие сайты
  • Ответов 64
  • Дата создания
  • Последний ответ

Лучшие авторы в теме

Лучшие авторы в теме

Популярные посты

Блин, да сколько можно-то?? Каждую неделю выкладывать?                         {foreach $categories as $c}                        {if in_array($category->id, $c->children) && $c->subc

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

 

потому что вы не убрали ваше условие

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

я прошу прощения, все логично и  правельно работает,  нужно с заполнением товарами поиграться, спасибо большое за помощь, извеняюсь за вынос мозга ) 

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

Снова я ))) прошу помощи, перетыкал все комбинации не как не выстраиваются списком подкатегории 3-тьего уровня они тянут стиль родителя не как не могу избежать этого.

 

{if $category->subcategories}
<div class="row">
	{function name=categories_sub}
		<ul> 		 	    
			    {if $categories}
			    	{foreach $categories as $c}
			    	<div class="col-sm-3">
			    		<li>
						<!-- 3 уровень  -->
						{if $c->image} 			
					    
							<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name}" title="{$c->name}" class="img-rounded col-xs-3 col-sm-3 col-md-12 col-lg-12">
							
						    <a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a>
						        
		      				{if $c->subcategories}
					    		{categories_sub categories=$c->subcategories}
							{/if}	

						<!-- 3 уровень  -->
						{/if}
						</li>		
					</div>
					{/foreach} 	
				{/if}
		</ul>		
	{/function}	
	{categories_sub categories=$category->subcategories}	    		
</div>
{else}
<!-- ТОВАР -->
{/if}	    		
Ссылка на сообщение
Поделиться на другие сайты

У ВАс в результате выходит
<ul>
<div class="col-sm-3">
<li>...,
что очень неверно, так как непосредственно внутри <ul> не должно быть <div>.

Может, Вам стоит из приведенного фрагмента удалить все <ul> и <li> ?

...перетыкал все комбинации...

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

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

Снова я ))) прошу помощи, перетыкал все комбинации не как не выстраиваются списком подкатегории 3-тьего уровня они тянут стиль родителя не как не могу избежать этого.

 

замените внутренний див, это не правильно. достаточно написать так: <li class="col-sm-3">

{if $category->subcategories}
<div class="row">
	{function name=categories_sub}
		<ul> 		 	    
			    {if $categories}
			    	{foreach $categories as $c}
			    		<li class="col-sm-3">
						<!-- 3 уровень  -->
						{if $c->image} 			
					    
							<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name}" title="{$c->name}" class="img-rounded col-xs-3 col-sm-3 col-md-12 col-lg-12">
							
						    <a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a>
						        
		      				{if $c->subcategories}
					    		{categories_sub categories=$c->subcategories}
							{/if}	

						<!-- 3 уровень  -->
						{/if}
						</li>
					{/foreach} 	
				{/if}
		</ul>		
	{/function}	
	{categories_sub categories=$category->subcategories}	    		
</div>
{else}
<!-- ТОВАР -->
{/if}	    		

дальше смотрите как у вас написаны стили для этого списка. для первого уровня вложенности используйте

ul>li>a {
   ...
}​
Ссылка на сообщение
Поделиться на другие сайты

 

замените внутренний див, это не правильно. достаточно написать так: <li class="col-sm-3">

{if $category->subcategories}
<div class="row">
	{function name=categories_sub}
		<ul> 		 	    
			    {if $categories}
			    	{foreach $categories as $c}
			    		<li class="col-sm-3">
						<!-- 3 уровень  -->
						{if $c->image} 			
					    
							<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name}" title="{$c->name}" class="img-rounded col-xs-3 col-sm-3 col-md-12 col-lg-12">
							
						    <a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a>
						        
		      				{if $c->subcategories}
					    		{categories_sub categories=$c->subcategories}
							{/if}	

						<!-- 3 уровень  -->
						{/if}
						</li>
					{/foreach} 	
				{/if}
		</ul>		
	{/function}	
	{categories_sub categories=$category->subcategories}	    		
</div>
{else}
<!-- ТОВАР -->
{/if}	    		

дальше смотрите как у вас написаны стили для этого списка. для первого уровня вложенности используйте

ul>li>a {
   ...
}​

 

а для второго ul li ul li a я пробовал так меняется лишь цвет ссылки но из за того что подкатегории 3-ур. перетягивают стили родителя я немогу поставить их списком так как под.кат-3ур. у каждого из пунктов значение <li class="col-sm-3">

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

а для второго ul li ul li a я пробовал так меняется лишь цвет ссылки но из за того что подкатегории 3-ур. перетягивают стили родителя я немогу поставить их списком так как под.кат-3ур. у каждого из пунктов значение <li class="col-sm-3">

 

вам нужно класс col-sm-3 для какой вложенности? только 3й?

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

только второй 

{if $category->subcategories}
<div class="row">
	{function name=categories_sub}
		<ul class="menu level_{$level}"> 		 	    
			    {if $categories}
			    	{foreach $categories as $c}
			    		<li {if $level==1}class="col-sm-3"{/if}>
						<!-- 3 уровень  -->
						{if $c->image} 			
					    
							<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name}" title="{$c->name}" class="img-rounded col-xs-3 col-sm-3 col-md-12 col-lg-12">
							
						    <a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a>
						        
		      				{if $c->subcategories}
					    		{categories_sub categories=$c->subcategories level=$level+1}
							{/if}	

						<!-- 3 уровень  -->
						{/if}
						</li>
					{/foreach} 	
				{/if}
		</ul>		
	{/function}	
	{categories_sub categories=$category->subcategories level=0}	    		
</div>
{else}
<!-- ТОВАР -->
{/if}	    		
Ссылка на сообщение
Поделиться на другие сайты

так получаеться что class="col-sm-3" служит для 3-тей вложенности и включает в сеяб каким то чудом одну из категорий 2-ой вложенности

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

   {categories_sub categories=$c->subcategories level=0} 

 

{categories_sub categories=$category->subcategories level=$level+1}       

 

поменял значения местами

 

помогло

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

   {categories_sub categories=$c->subcategories level=0} 

 

{categories_sub categories=$category->subcategories level=$level+1}       

 

поменял значения местами

 

помогло

 

 

зачем менять местами), достаточно было тут {if $level==1} поставить нужный левел

Изменено пользователем mishanya
Ссылка на сообщение
Поделиться на другие сайты

зачем менять местами), достаточно было тут {if $level==1} поставить нужный левел

 

Скажите а таким методом исключить вывод изображений в 3-тьем уровне возможно ? 

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

Скажите а таким методом исключить вывод изображений в 3-тьем уровне возможно ? 

 

{if $category->subcategories}
<div class="row">
	{function name=categories_sub}
		<ul class="menu level_{$level}"> 		 	    
		    {if $categories}
		    	{foreach $categories as $c}
		    		<li {if $level==2}class="col-sm-3"{/if}>
						{if $c->image && $level<2}
							<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name}" title="{$c->name}" class="img-rounded col-xs-3 col-sm-3 col-md-12 col-lg-12">
						{/if}
					    <a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a>

				    	{categories_sub categories=$c->subcategories level=$level+1}
					</li>
				{/foreach} 	
			{/if}
		</ul>		
	{/function}	
	{categories_sub categories=$category->subcategories level=0}	    		
</div>
{else}
<!-- ТОВАР -->
{/if}

 

класс class="col-sm-3" для 3го уровня и фото для уровней 1 и 2 (не выше 2го)

Изменено пользователем mishanya
Ссылка на сообщение
Поделиться на другие сайты

я извиняюсь

работает с точностью наоборот таким образом

 

<div class="row">
	{function name=categories_sub}
		<ul class=" level_{$level}"> 		 	    
			    {if $categories}
			    	{foreach $categories as $c}
			    		<li {if $level==1}class="thumbnail col-sm-6 col-md-2"{/if}>
						<!-- 3 уровень  -->
						{if $c->image && $level<1} 			

							<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name}" title="{$c->name}" class="img-rounded col-xs-3 col-sm-3 col-md-12 col-lg-12">

						{/if}	
						    <h3><a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a></h3>
						     
						    <p>   
		      				{if $c->subcategories}
					    		{categories_sub categories=$c->subcategories level=0}
							{/if}	
							</p>

						<!-- 3 уровень  -->
						
						</li>
					{/foreach} 	
				{/if}
		</ul>		
	{/function}	
	{categories_sub categories=$category->subcategories level=$level+1}	    		
</div>

 

получается убрать картинку только у родителя , в оригинале вашего решения не убирается вовсе

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

я извиняюсь

 

работает с точностью наоборот таким образом

 

<div class="row">
	{function name=categories_sub}
		<ul class=" level_{$level}"> 		 	    
			    {if $categories}
			    	{foreach $categories as $c}
			    		<li {if $level==1}class="thumbnail col-sm-6 col-md-2"{/if}>
						<!-- 3 уровень  -->
						{if $c->image && $level<1} 			

							<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name}" title="{$c->name}" class="img-rounded col-xs-3 col-sm-3 col-md-12 col-lg-12">

						{/if}	
						    <h3><a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a></h3>
						     
						    <p>   
		      				{if $c->subcategories}
					    		{categories_sub categories=$c->subcategories level=0}
							{/if}	
							</p>

						<!-- 3 уровень  -->
						
						</li>
					{/foreach} 	
				{/if}
		</ul>		
	{/function}	
	{categories_sub categories=$category->subcategories level=$level+1}	    		
</div>

 

получается убрать картинку только у родителя , в оригинале вашего решения не убирается вовсе

 

зачем вы пытаетесь еще что-то приделать туда? выше код который просто нужно скопировать а не придумывать. зачем это условие?

{if $c->subcategories}
{categories_sub categories=$c->subcategories level=0}
{/if}

я уже писал, вы не правильно передаете левел. посмотрите как у меня написано. код должен работать: https://yadi.sk/i/rQOT56B5kzfoB и не выводит картинку для второго уровня подкатегорий.

Изменено пользователем mishanya
Ссылка на сообщение
Поделиться на другие сайты

так и? я не вижу у вас уровня 3 совсем.

 

Протупил честное слово, весь день сижу за этой чушью, сейчас снова сделал как вы указали изначально все вышло как планировалось, большое спасибо вам Будите в ПМР поставлю магарыч !  :)

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

Приветствую, извиняюсь не могу разобраться, снова вылез косяк ( отображаются подкатегории 4-тых и 5-тых уровней ( можете объяснить принцип работы с этим меню категорий ? 

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

Приветствую, извиняюсь не могу разобраться, снова вылез косяк ( отображаются подкатегории 4-тых и 5-тых уровней ( можете объяснить принцип работы с этим меню категорий ? 

 

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

{if $level<3}{/if}

таким образом

{if $category->subcategories}
<div class="row">
	{function name=categories_sub}
		{if $level<3}
		<ul class="menu level_{$level}"> 		 	    
		    {if $categories}
		    	{foreach $categories as $c}
		    		<li {if $level==2}class="col-sm-3"{/if}>
						{if $c->image && $level<2}
							<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name}" title="{$c->name}" class="img-rounded col-xs-3 col-sm-3 col-md-12 col-lg-12">
						{/if}
					    <a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a>

				    	{categories_sub categories=$c->subcategories level=$level+1}
					</li>
				{/foreach} 	
			{/if}
		</ul>
		{/if}
	{/function}	
	{categories_sub categories=$category->subcategories level=0}	    		
</div>
{else}
<!-- ТОВАР -->
{/if}
Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

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

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

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

Загрузка...

×
×
  • Создать...