Jump to content

[Solved] Шаблон вывода товаров в категории


Recommended Posts

Переделывал ли то нибудь шаблон вывода товаров в категории?
Мне нужно изменить существующий шаблон таким образом чтобы в некоторых категориях товары отображались: Наименование - цена - [купить] Без картинок и краткого описания

Link to comment
Share on other sites

Переделывал ли то нибудь шаблон вывода товаров в категории?
Мне нужно изменить существующий шаблон таким образом чтобы в некоторых категориях товары отображались: Наименование - цена - [купить] Без картинок и краткого описания


именно в некоторых?
за вывод товара в категории отвечает product-list.tpl - там удаляешь/комментируешь строки выводящие элементы товара
по поводу некоторых надо подумать - первое что приходит в голову, обернуть вывод картинок и краткого описания в условие по айди категории... но это костыль еще тот
Link to comment
Share on other sites

Уже смотрю product-list.tpl. Думаю мы сделаем доп поле в базе данных отвечающее за то каким макаром выводить категорию.
Буду шерстить шаблон, хоть со смарти я почти незнаком.

Link to comment
Share on other sites

Уже смотрю product-list.tpl. Думаю мы сделаем доп поле в базе данных отвечающее за то каким макаром выводить категорию.
Буду шерстить шаблон, хоть со смарти я почти незнаком.


ничего там сложного нет, я тоже все это "на пальцах" решаю, внутри фигурных скобок операторы смарти, многое по аналогии с пхп, чтобы не наносить непоправимого ущерба закаменти строки выводящие картинку и дескрипшн {* строка *}, собственно прокатят и хтмл каменты, но тогда код попадет в выдачу браузера.
Да, флаг в категории лучше всего подходит, но.. с обновлениями.. они вроде бы базу не задевают, короче надо учесть.

{*
{$product.description_short|truncate:360:'...'|strip_tags:'UTF-8'} *}



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

Link to comment
Share on other sites

Ситуация следующая.
Проблема вывода шаблона категории согласно флага, решается с помощью условий в файле product-list.tpl:

{if $flag_template == 0}
Template1
{/if}
{if $flag_template == 1}
Template2
{/if}


Спасибо SergeyH ;)
Теперь нужно найти где определить переменную смарти $flag_template. Я через поиск посмотрел что product-list.tpl инклудят только другие tpl, т. е. вложенные шаблоны, что усложняет поиск нужного контроллера. Серж есть идеи? Как найти контроллер?

Link to comment
Share on other sites

дык.. а ты не летчик (с) :)) думал ты кодер)
контроллеры лежат в ./Controllers

тебе надо взять из базы значение, поместить его в $flag_template,
затем что-то вида self::$smarty->assign('flag_template', (int)$flag_template); - это мы "передаем" в шаблон значение переменной пхп
после этого в шаблоне можем использовать $flag_template
делать лучше через переопределение классов http://prestalab.ru/wiki/arxitektura#model тем самым избегая редактирования файлов движка

Какие именно классы/функции отвечают за работы с БД, "не питай" :) не знаю я и ООП тоже не знаю)

Link to comment
Share on other sites

ну и вот тебе -волшебная палочка-

find project/www/temp/ -print0 | xargs -0 grep --files-with-matches ".tpl"

- поиск вхождений элемента, лучше конечно ограничить find маской типа "*.php"
это во всяком случае я так разбираю связи в незнакомых скриптах.

Link to comment
Share on other sites

Сори, но мне именно нужен контреллер, все остальное я уже опробовал, т.е. есть готовый кусок кода который определяет $flag_template и передает значение в template.tpl, вопрос только в том куда его вставлять. Нужно логически как то до этого дойти. Я перерыл все файлы Престы что содержат строку product-list.tpl, но ни один контроллер этого не имеет, только другие шаблоны. Вот.
+ Меня убивает "Принудительная компиляция", когда "Нет" изменения отображаются через минут 15, а если "Да", то сайт грузится минут 15 :( Я так понимаю что скомпилированные файлы Смарти хранит в /smarty/compile и оттудого их можно спокойно удалять?

Link to comment
Share on other sites

да, при работе с шаблоном, в любом движке на сматри ставится "принудительно" иначе данные кешируются.
15 мин.. это мы с тобой по поводу сервера-местного-значения общались?) Это не дело, возьми другой тазик под разработку (или на крайняк впс от того же хетзнера)

по product-list.tpl, я тоже не нашел, хотел дать тебе готовый путь... и поиск по внутренностям ничего не дает, не могу понять кто именно руководит этим шабом. Это если sors сюда заглянет, сориентирует)
по идее можно в любом месте связать переменную пхп со смарти, только это будет говонокод) и делать такое на рабочем продукте видать не стоит

П.С. порылся в гугле минут 20, нашел твою тему на англ)) и еще несколько, но явного ответа не получил. Просьба, разберешься в вопросе, мякни сюда, пригодится

Link to comment
Share on other sites

Ставим принудительная рекомпиляция - нет
В smarty.config.inc.php $smarty->compile_check = true;
Перекомпилироваться будут только измененные шаблоны.

Что вообще за $flag_template? Вы вроде хотели делать шаблон как свойство категории, вот и делайте на примере добавления дополнительного свойства к классу Category http://prestalab.ru/wiki/ispolzovanie-kartinok-so-storonnego-sajta

В category.tpl добавьте

{if $category->flag_template == 1}
{include file="$tpl_dir./product-list-1.tpl" products=$products}
{else}
{include file="$tpl_dir./product-list-2.tpl" products=$products}
{/if}

Link to comment
Share on other sites

×
×
  • Create New...