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

Как сделать разные шаблоны для разных категорий?


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

Добрый день,

подскажите ,как сделать вывод содержимого категории различным для разных категорий. Конкретно надо применить разные реализации category_listing.html для разных категорий.

Как вариант думал о том ,чтобы в самом файле анализировать какая страница выводится и делать разную реализацию внешнего вида (меняться должен только внешний вид). Например ,анализируя в  category_listing.html содержимое {$smarty.server.REQUEST_URI}.

Может есть более простое и красивое решение? 

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

Вроде разобрался. Надо создать новый шаблон в папке category_listing и его прописать категории в админке. Правильно? 

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

Да.

 

Это шаблон внутренностей категории.

А вот как сделать "оболочку" - http://vamshop.ru/manual/ch15s04.html

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

Спасибо. 

Но есть еще вопросы:

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

2. Есть три шаблона рекомендуемых товаров feautured.html, featured_products_category.html, featured_products_default.html. В чем у них разница, как понять ,какой php файл за них отвечает (я что-то не нашел ,кроме ссылки на featured_products_default в feautured.php?

3. Есть ли модуль рекомендуемых товаров с фильтрацией тех товаров ,которые представлены в текущей категории?

 

Заранее благодарен.

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

1. Без правки кода никак не получится. По умолчанию нет такого функционала.

2. http://vamshop.ru/manual - там есть описание шаблонов.

3. По умолчанию так и есть, если заходите в категории, а в подкатегориях есть рекомендемые товара, то в блоке Рекомедуемые на странице категории выводятся рекомендуемые и новинки из подкатегорий текущей категории.

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

Спасибо.

Разбирая  feautured.php обнаружил ошибку. Если один и тот же товар присутствуебт в разных категориях (ссылки) ,то он дублируется в модуле рекомендуемых товаров. Мое предложение по исправлению:

Вместо

	$featured_products_query = "SELECT distinct * FROM
	                                         ".TABLE_PRODUCTS." p left join " . TABLE_PRODUCTS_DESCRIPTION . " pd on pd.products_id = p.products_id,
	                                         ".TABLE_FEATURED." f where
	                                         p.products_id=f.products_id ".$group_check."
	                                         ".$fsk_lock."
	                                         and p.products_status = '1' and f.status = '1' and pd.language_id = '".(int) $_SESSION['languages_id']."'
	                                         order by p.products_date_added DESC limit ".MAX_DISPLAY_FEATURED_PRODUCTS;

вставляем

	$featured_products_query = "SELECT * FROM
	                                         ".TABLE_PRODUCTS." p left join " . TABLE_PRODUCTS_DESCRIPTION . " pd on pd.products_id = p.products_id,
	                                         ".TABLE_FEATURED." f where
	                                         p.products_id=f.products_id ".$group_check."
	                                         ".$fsk_lock."
	                                         and p.products_status = '1' and f.status = '1' and pd.language_id = '".(int) $_SESSION['languages_id']."'
	                                         group by p.products_id order by p.products_date_added DESC limit ".MAX_DISPLAY_FEATURED_PRODUCTS;

вместо

	$featured_products_query = "SELECT distinct * FROM
	                                         ".TABLE_PRODUCTS." p left join " . TABLE_PRODUCTS_DESCRIPTION . " pd on pd.products_id = p.products_id,
	                                         ".TABLE_FEATURED." f,
	                                        ".TABLE_PRODUCTS_TO_CATEGORIES." p2c,
	                                        ".TABLE_CATEGORIES." c
	                                        where c.categories_status='1'
	                                        and p.products_id = p2c.products_id and p.products_id=f.products_id
	                                        and p2c.categories_id = c.categories_id
	                                        ".$group_check."
	                                        ".$fsk_lock."
	                                        and c.parent_id = '".$featured_products_category_id."'
	                                        and p.products_status = '1' and f.status = '1' and pd.language_id = '".(int) $_SESSION['languages_id']."'
	                                        order by p.products_date_added DESC limit ".MAX_DISPLAY_FEATURED_PRODUCTS;

вставляем

	$featured_products_query = "SELECT * FROM
	                                         ".TABLE_PRODUCTS." p left join " . TABLE_PRODUCTS_DESCRIPTION . " pd on pd.products_id = p.products_id,
	                                         ".TABLE_FEATURED." f,
	                                        ".TABLE_PRODUCTS_TO_CATEGORIES." p2c,
	                                        ".TABLE_CATEGORIES." c
	                                        where c.categories_status='1'
	                                        and p.products_id = p2c.products_id and p.products_id=f.products_id
	                                        and p2c.categories_id = c.categories_id
	                                        ".$group_check."
	                                        ".$fsk_lock."
	                                        and c.parent_id = '".$featured_products_category_id."'
	                                        and p.products_status = '1' and f.status = '1' and pd.language_id = '".(int) $_SESSION['languages_id']."'
	                                        group by p.products_id order by p.products_date_added DESC limit ".MAX_DISPLAY_FEATURED_PRODUCTS;											

В общем - убираем dictinct (в данном случае он не имеет смысла ,т.к. строки у копий товара разные) и добавляем group by p.products_id (группируем по коду товара).

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

Добрый день, обнаружил toot проблему. Есть модификатор lower (файл modifier.lower.php). Он не работает с кириллицей. Проблема в функции strtolower ,которая не работает с UTF 8. Возможно таже проблема  и с другими модификаторами. Я не проверял. Возможно ,мое решение не оптимально. Предлагаю внести в новый релиз и поправить остальные. 

/*
function smarty_modifier_lower($string)
{
    return strtolower($string);
}
*/
function smarty_modifier_lower($string, $cod = "utf-8")
{
	return mb_strtolower($string, $cod);
} 

TRUNСATE отрабатывет нормально.

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

Вообще файлы смарти править не очень хорошо.

 

Лучше завести свой модификатор в /includes/external/smarty/vam_plugins/

 

Что б не было проблем при обновлении smarty.

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

Еще вопрос ,как в popup окне задать размер картинки (шаблон vamshop1)? Сейчас ,как я понял ,изображение выводится в реальном размере. Где смотреть?

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

То что нет ,я понял. Хорошо буду искать..

Еще столкнулся с тем, что когда поиск по сайту ничего не находит ,то выдается предупреждение:

Warning: Cannot modify header information - headers already sent by (output started at W:\home\mysite.ru\www\includes\header.php:37) in W:\home\mysite.ru\www\includes\modules\error_handler.php on line 17

Если в файле error_handler.php

убрать строку 17

  header('HTTP/1.0 404 Not Found');

то все ОК. Это правильно или нет? На что-то может еще повлиять?

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

Еще всплыл вопрос. Как можно запретить индексацию части страниц поисковиками. Вручную прописывать в файле meta.php что-то типа этого:

вместо:

<meta name="robots" content="<?php echo META_ROBOTS; ?>" />

Вставить:

if (strstr($PHP_SELF, FILENAME_CHECKOUT) || strstr($PHP_SELF, FILENAME_SC_CHECKOUT_CONFIRMATION) || strstr($PHP_SELF, FILENAME_SHOPPING_CART)) {	
?>
<meta name="robots" content="noindex,follow" />
<?php
} else {
?>
<meta name="robots" content="<?php echo META_ROBOTS; ?>" />
<?php
}

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

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