Перейти к содержанию
Форум поддержки пользователей VamShop

Показ подкатегорий в категориях.


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

Привет. У меня в категориях не показываются подкатегории. Я нашла ответ на свой вопрос:

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

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

Заранее спасибо.

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

Никак.

Нужно товары в подкатегориях размещать.

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

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

нужно править includes/modules/default.php

там в самом начале файла часть кода которая отвечает за вывод подкатегорий (nested)

просто нужно добавить в метку {$main_content} еще выведенные продукты

сюды примерн =)


  $main_content = $default->fetch(CURRENT_TEMPLATE.'/module/categorie_listing/'.$category['categories_template']);
  $vamTemplate->assign('main_content', $main_content);
[/code]

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

нужно править includes/modules/default.php

Вот столкнулся с таким же вопросом. Пробовал покрутить этот default.php, не получается.

По идее нужно прикрутить к assign('main_content', $main_content) результат файла product_listing.php, но у них даже название переменных одинаковые на выходе - обе  {$main_content}.

Похоже в каком-то начальном файле прописано взаимосключение этих файлов default.php и product_listing.php. Если один грузится, то второй нет.

Я попробовал сделать по типу featured - данных, которые грузятся вместе с категорией. Т.е. product_listing подвесить на какую-нибудь свою переменную {$main_content_product} и вставить ее в шаблон categorie_listing.html. Но эффекта нет. Кстати, почему-то если в категорию вставить продукты , а потом сделать их статус не видимыми, а подкатегория видима, то при открытии этой категории выдается, что такая страница не найдена. Возможно это из-за того что я юзаю старый магазин 1.32, а может и нет.

Может кто-нибудь подскажет как решить этот вопрос подкатегории+продукты ?

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

На главной ведь не получится использовать product_listing, если не задана категория товара, он же работает только если Вы внутри категории, на основании id категории формируется SQL запрос товаров из данной категории.

Если нужно что-то на главноую выводить, то только писать свой код.

Вот так примерно добавляется блок по центру на главной - http://vamshop.ru/forum/index.php?topic=2673.msg22038#msg22038

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

Спасибо за совет Vam.

Я тут правда, кое-что нащупал. Может сработает. Правда не идеально получается, но все же

хоть какое-то решение вопроса. Вечером возможно доделаю.

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

Получилось.

Версия моего vamshopa 1.32;

Рекомендация - перед редактированием файлов делайте их копии.

1)

Открываем файл "\includes\modules\default.php"

Находим строку: "if ($category_depth == 'nested') {"

Копируем все от нее до

"$main_content =$default_smarty->fetch(CURRENT_TEMPLATE.'/module/categorie_listing/'.$category['categories_template']);

$smarty->assign('main_content', $main_content);

}"

2)

Создаем файл default_cat.php в том же каталоге и вставляем этот код туда.

В полученном коде изменяем:

'nested' заменяем на 'products' (в верхней строке)

Внизу файла перед "}" вносим $main_content_cat=$main_content;

3)

Открываем файл "\includes\modules\product_listing.php" 

- вверху вносим туда строчку "include ('default_cat.php');"

- внизу файла находим строчку "$smarty->assign('main_content', $module);" перед ней вставляем код "$module=$module." ".$main_content_cat;"

4)

Теперь осталось поменять шаблоны.

- "categorie_listing.html" полностью очистить - этот шаблон использовать там где нужен вывод только товаров (в этой категории только товары)

- "categorie_listing_categories.html" сделать шаблон для вывода только подкатегорий (в этой категории только подкатегории)

- "categorie_listing_products.html" сделать шаблон для вывода продуктов и подкатегорий (в этой категории подкатегории и товары)

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

что-то для 1.62 это уже не работает,

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

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

Есть разве что опция в Админке - Настройки - Вывод товара.

Можно выводить товар из низлежащих подкатегорий в категории.

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

нет я был не прав,

все работает на 1.62

просто кое-что переименовано, например

не

$smarty->assign

а

$vamTemplate->assign

не

include ('default_cat.php');

а

require_once (DIR_WS_MODULES.'default_cat.php');

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

Подскажите пожалуйста можно ли сделать адреса подкатегорий в категориях нормального чпу вида,а не такие вот <a href="index.php?cat=22">
                 Из жёлтого золота</a>

сейчас код выглядит так

{if $categories_list}
 <div class="page">   
 	<div class="pageItem">     
 		<ul class="categories-list">      
 			{foreach name=aussen item=category_data from=$categories_list}  	   
 			<li><a href="index.php?cat={$category_data.CATEGORIES_ID}">
 				{$category_data.CATEGORIES_NAME}</a></li>      
 			{/foreach}     
 		</ul>  
 	</div> 
{/if} 

 

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

А это где такой шаблон, в каком файле?!

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

Попробуйте поменять:

index.php?cat={$category_data.CATEGORIES_ID}

на:

{$category_data.CATEGORIES_LINK}

 

2 минуты назад, madvolkov сказал:

Подскажите пожалуйста можно ли сделать адреса подкатегорий в категориях нормального чпу вида,а не такие вот <a href="index.php?cat=22">

 

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

это в product_listing_columns.html

поменял но тогда ссылки вообще пропадают просто остаётся название категорий

Ссылка на сообщение
Поделиться на другие сайты
8 минут назад, madvolkov сказал:

это в product_listing_columns.html

поменял но тогда ссылки вообще пропадают просто остаётся название категорий

Это какая-то Ваша доработка, видимо, по умолчанию такого нет.

Нужно смотреть как формирутеся массив categories_list

Либо в /includes/modules/default.php или product_listing.php

Что там, какие метки доступны.

CATEGORIES_ID или ещё есть что-то, например CATEGORIES_NAME и CATEGORIES_LINK

 

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

вот в файле product_listing.php 

такое вот для вывода списка подкатегорий

	if ($_GET['cat']) { 		
	$categories_query = "SELECT c.categories_id, cd.categories_name FROM categories AS c, categories_description AS cd WHERE c.categories_id=cd.categories_id AND c.parent_id=$current_category_id"; 		
	$categories_query = vamDBquery($categories_query); 		
	$categories_list = array(); 		
	while ($subcategory = vam_db_fetch_array($categories_query, true)) {
		$categories_list[] =  array ('CATEGORIES_NAME' => $subcategory['categories_name'], 'CATEGORIES_ID' => $subcategory['categories_id']);	 		
		} 		
		$module->assign('categories_list', $categories_list); 	
	}

в product_listing_columns.html 

так вот

{if $categories_list}
 <div class="page">   
 	<div class="pageItem">     
 		<ul class="categories-list">      
 			{foreach name=aussen item=category_data from=$categories_list}  	   
 			<li><a href="index.php?cat={$category_data.CATEGORIES_ID}">
 				{$category_data.CATEGORIES_NAME}</a></li>      
 			{/foreach}    
{php}{/php}			
 		</ul>  
 	</div> 
{/if}

как поправить чтобы ссылки были нормального вида,а не такого вот <a href="index.php?cat=22">

сам отвечу....сделал так вот добавил выборку из таблицы урла категорий 

	if ($_GET['cat']) { 		
	$categories_query = "SELECT categories_url, c.categories_id, cd.categories_name FROM categories AS c, categories_description AS cd WHERE c.categories_id=cd.categories_id AND c.parent_id=$current_category_id"; 		
	$categories_query = vamDBquery($categories_query); 		
	$categories_list = array(); 		
	while ($subcategory = vam_db_fetch_array($categories_query, true)) {
		$categories_list[] =  array ('CATEGORIES_NAME' => $subcategory['categories_name'], 'CATEGORIES_ID' => $subcategory['categories_id'], 'CATEGORIES_URL' => $subcategory['categories_url']);	 		
		} 		
		$module->assign('categories_list', $categories_list); 	
	}

ну и в шаблоне вывод :

 		<ul class="categories-list">      
 			{foreach name=aussen item=category_data from=$categories_list}  	   
 			<li><!--<a href="index.php?cat={$category_data.CATEGORIES_ID}">-->
			<a href="{$category_data.CATEGORIES_URL}"> 
 				{$category_data.CATEGORIES_NAME}</a></li>      
 			{/foreach}    		
 		</ul>  

 

Ссылка на сообщение
Поделиться на другие сайты
1 час назад, madvolkov сказал:

ну и в шаблоне вывод :



 

Спасибо, что поделились кодом.

Вообще есть функция vam_category_link , которая как раз строит url адрес.

т.е. если Вам известен id категории и название категории, то можно этой функцией получить url на категорию.

Вот так:

vam_category_link($sub_category['categories_id'],$sub_category['categories_name'])

Так, по идее, правильнее всё-таки, универсальнее.

Если например у категории не будет задан seo url или ещё что, эта функция вернёт всгда рабочий адрес категории.

Вне зависимости от настроек магазина.

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