Перейти к содержимому


Фото
* * * * * 3 голосов

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


Best Answer Kosjak76 , 11.05.2014 - 20:55

Блин, да сколько можно-то??

Каждую неделю выкладывать?

                        {foreach $categories as $c}
                        {if in_array($category->id, $c->children) && $c->subcategories}
                            <div class="col-md-12 col-xs-6">
                                <div class="products-dropdown open-dropdown">
                                    <span><i class="icon-515" title="515"></i>{$c->name|escape}</span>
                                    <ul>
                                    {foreach $c->subcategories as $cat}
                                       <li><a {if $category->id == $cat->id}class="active"{/if} href="catalog/{$cat->url}" data-category="{$cat->id}">{$cat->name|escape}</a></li>
                                    {/foreach}    
                                    </ul>
                                </div>
                                <div class="clear"></div>
                            </div>
                         {/if}
                         {/foreach}
Вот рабочий вариант из шаблона, который в работе.
Перейти к посту


  • Чтобы отвечать, сперва войдите на форум
64 ответов в теме

#1 xipro

xipro
  • Пользователь
  • 14 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x

Опубликовано 12.10.2013 - 19:21

При просмотре товаров в одной конкретной категории хочу чтобы над фильтрами выводились подкатегории. Функция вывода категорий есть:

 

{* Рекурсивная функция вывода дерева категорий *}
			{function name=categories_tree}
			{if $categories}
			<ul class="closed">
			{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>

					</li>
				{/if}
			{/foreach}
			</ul>
			{/if}
			{/function}
			{categories_tree categories=$categories}

А вот допереть как выводить только подкатегории конкретной категории не могу...



#2 chocolate_moles

chocolate_moles
  • Фрилансер
  • 444 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Санкт-Петербург

Опубликовано 12.10.2013 - 19:50

Обернуть вывод в 

 

{if $category->name == "Название категории"}
...
{/if}


#3 xipro

xipro
  • Пользователь
  • 14 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x

Опубликовано 12.10.2013 - 22:46

    {if $category->id==555}
    {foreach $category->subcategories as $c}
                        <a href="catalog/{$c->url}">{$c->name}</a>
        {/foreach}
    {/if}

Спасибо, работает



#4 xipro

xipro
  • Пользователь
  • 14 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x

Опубликовано 25.02.2014 - 11:24

Появился еще вопрос:

 

 

На данный момент реализовал таким образом

{if $page->url=='products'} 
    {function name=categories_tree}
        <div id="catalog_menu">
             <h1>Каталог</h1>
                 <ul class="closed">
                 {foreach $categories 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>
		 </li>
                 {/if}
                 {/foreach}
						</ul>
				</div>
			{/function}
		{categories_tree categories=$categories}
			{else}
				{if $category->subcategories}
				<div id="catalog_menu">
					<div id="subcat">
						<ul>
                                                 {foreach $category->subcategories as $c}
                                                 <li>
                                                 <a href="catalog/{$c->url}">{$c->name}
                                                 </a>&nbsp;({$c->products_count})
                                                 </li>
							{/foreach}
						</ul>
					</div>
				</div>
{else}

                         	{/if}       
			{/if}

Заходишь в продукцию - показывает каталог, заходишь в категорию - показывает подкатегории. Но вот теперь задача - когда заходишь в подкатегорию надо чтобы оставалась менюшка подкатегорий. Кто знает как реализовать?



#5 xipro

xipro
  • Пользователь
  • 14 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x

Опубликовано 03.03.2014 - 03:33

Никто не знает как решить?



#6 cernos

cernos
  • Фрилансер
  • 369 сообщений
  • Дизайн, Программирование, Верстка, Заказчик
  • Версия CMS:2.x
  • Откуда:Донецк/Москва

Опубликовано 14.03.2014 - 00:21

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

#7 Gragory

Gragory
  • Пользователь
  • 58 сообщений

Опубликовано 11.05.2014 - 20:37

xipro:

Опубликовано 25.02.2014 - 12:24

Но вот теперь задача - когда заходишь в подкатегорию надо чтобы оставалась менюшка подкатегорий. Кто знает как реализовать?

 

cernos:

Опубликовано 14.03.2014 - 01:21
Чуть позже помогу, тоже реализовывать это буду. Но скорее всего придется ковырять исходники.

 

 

Удалось найти решение данного вопроса? Кто может подсказать или показать решение?!



#8 Kosjak76

Kosjak76
  • Модератор
  • 3 777 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 11.05.2014 - 20:55   Best Answer

Блин, да сколько можно-то??

Каждую неделю выкладывать?

                        {foreach $categories as $c}
                        {if in_array($category->id, $c->children) && $c->subcategories}
                            <div class="col-md-12 col-xs-6">
                                <div class="products-dropdown open-dropdown">
                                    <span><i class="icon-515" title="515"></i>{$c->name|escape}</span>
                                    <ul>
                                    {foreach $c->subcategories as $cat}
                                       <li><a {if $category->id == $cat->id}class="active"{/if} href="catalog/{$cat->url}" data-category="{$cat->id}">{$cat->name|escape}</a></li>
                                    {/foreach}    
                                    </ul>
                                </div>
                                <div class="clear"></div>
                            </div>
                         {/if}
                         {/foreach}
Вот рабочий вариант из шаблона, который в работе.


#9 Gragory

Gragory
  • Пользователь
  • 58 сообщений

Опубликовано 12.05.2014 - 00:39

Kosjak76, спасибо за решение!



#10 antidemon29

antidemon29
  • Пользователь
  • 25 сообщений

Опубликовано 08.09.2014 - 18:12

Блин, да сколько можно-то??

Каждую неделю выкладывать?

                        {foreach $categories as $c}
                        {if in_array($category->id, $c->children) && $c->subcategories}
                            <div class="col-md-12 col-xs-6">
                                <div class="products-dropdown open-dropdown">
                                    <span><i class="icon-515" title="515"></i>{$c->name|escape}</span>
                                    <ul>
                                    {foreach $c->subcategories as $cat}
                                       <li><a {if $category->id == $cat->id}class="active"{/if} href="catalog/{$cat->url}" data-category="{$cat->id}">{$cat->name|escape}</a></li>
                                    {/foreach}    
                                    </ul>
                                </div>
                                <div class="clear"></div>
                            </div>
                         {/if}
                         {/foreach}
Вот рабочий вариант из шаблона, который в работе.

А можно так же только для трехуровневого меню???



#11 antidemon29

antidemon29
  • Пользователь
  • 25 сообщений

Опубликовано 08.09.2014 - 18:51

                            {foreach $categories as $c}
                                {if in_array($category->id, $c->children) && $c->subcategories}
                                    <ul>
                                        {foreach $c->subcategories as $cat}
                                            {if !$cat->subcategories}
                                                <li><a {if $category->id == $cat->id}class="active"{/if} href="catalog/{$cat->url}" data-category="{$cat->id}"><span>{$cat->name|escape}</span></a></li>
                                            {/if}
                                            {if in_array($category->id, $cat->children) && $cat->subcategories}
                                                {foreach $cat->subcategories as $g}
                                                    <li><a {if $category->id == $g->id}class="active"{/if} href="catalog/{$g->url}" data-category="{$g->id}"><span>{$g->name|escape}</span></a></li>
                                                {/foreach} 
                                            {/if}
                                        {/foreach}    
                                    </ul>
                                {/if}                                
                             {/foreach} на 3 уровня сделал так если кому то надо


#12 dimalepel

dimalepel
  • Пользователь
  • 23 сообщений

Опубликовано 12.12.2014 - 01:42

А как добавить еще и вывод изображений для подкатегорий?



#13 Grosso2020

Grosso2020
  • Пользователь
  • 5 сообщений

Опубликовано 06.01.2015 - 01:15

А зачем вам реально подкатегории? Если у вас как минимум два меню на борту?! Я в теме более 8 лет и скажу, что это только минус вашему юзабилити сайта. Ибо человеку-юзеру это нахер не надо. Делайте СДЛ, не извращайтесь.



#14 kosix

kosix
  • Пользователь
  • 25 сообщений
  • Дизайн, Верстка, Заказчик
  • Версия CMS:2.x

Опубликовано 20.01.2015 - 19:24

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



#15 Kosjak76

Kosjak76
  • Модератор
  • 3 777 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 20.01.2015 - 19:37

Нужно тогда выводить по АйДи категории



#16 kosix

kosix
  • Пользователь
  • 25 сообщений
  • Дизайн, Верстка, Заказчик
  • Версия CMS:2.x

Опубликовано 20.01.2015 - 19:56

Нужно тогда выводить по АйДи категории

 

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



#17 Kosjak76

Kosjak76
  • Модератор
  • 3 777 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 20.01.2015 - 20:21

http://forum.simplac...рий/#entry67370

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



#18 Suprun4uk

Suprun4uk
  • Пользователь
  • 202 сообщений

Опубликовано 05.12.2015 - 12:37

Здравствуйте подскажите какое решение будет для Вывода подкатегорий с подкатегориями третьего уровня ? 



#19 mishanya

mishanya
  • Фрилансер
  • 2 553 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 05.12.2015 - 12:59

Здравствуйте подскажите какое решение будет для Вывода подкатегорий с подкатегориями третьего уровня ? 

 

поконкретнее где именно? если просто в категории, то так

{function name=categories_sub}
	{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|escape}">{/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}
					</li>
				{/if}
			{/foreach}
		</ul>
	{/if}
{/function}
{categories_sub categories=$category->subcategories}

если нужно чтобы в подкатегориях и во всех уровнях вложенности выводились все подкатегории и категории главной родительской то так

{$first_category = $category->path|first}
{function name=categories_sub}
	{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|escape}">{/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}
					</li>
				{/if}
			{/foreach}
		</ul>
	{/if}
{/function}
{categories_sub categories=$first_category->subcategories}


#20 Suprun4uk

Suprun4uk
  • Пользователь
  • 202 сообщений

Опубликовано 05.12.2015 - 13:02

поконкретнее где именно? если просто в категории, то так

{function name=categories_sub}
	{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|escape}">{/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}
					</li>
				{/if}
			{/foreach}
		</ul>
	{/if}
{/function}
{categories_sub categories=$category->subcategories}

если нужно чтобы в подкатегориях и во всех уровнях вложенности выводились все подкатегории и категории главной родительской то так

{$first_category = $category->path|first}
{function name=categories_sub}
	{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|escape}">{/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}
					</li>
				{/if}
			{/foreach}
		</ul>
	{/if}
{/function}
{categories_sub categories=$first_category->subcategories}

 

Спасибо огромное !!! это оно !






0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых