Jump to content

два варианта product-list.tpl


Recommended Posts

Hello, коллеги.

 

Думаю сделать в ИМ два варианта отображения товаров.

 

Вариант 1 - стандартный.

Вариант 2 - по типу прайс-листа.

 

Делаю второй product-lits.tpl с нужным мне отображением.

 

Собственно вопрос в следующем :

Как на определенную кнопку повесить смену product-list.tpl ?

 

Чувствую, что истина где-то близко. Но где ?

Link to comment
Share on other sites

гм... можно сделать на js по onclick заменить содержимое нужных тегов (убирать img и т д.)

или, вижу в category.tpl

{if $products}
{include file="$tpl_dir./product-compare.tpl"}
{include file="$tpl_dir./product-sort.tpl"}
{include file="$tpl_dir./product-list.tpl" products=$products}
{include file="$tpl_dir./product-compare.tpl"}
{include file="$tpl_dir./pagination.tpl"}
  {elseif !isset($subcategories)}

 

т.е. делаем в category кнопку с гет/пост параметром типа pricelist=yes

в CategoryController.php добавляем что-то типа

if (isset($_POST['pricelist']) AND $_POST['pricelist'] = 'yes')
 $pricelist = true;

и в массив для смарти добавляем передачу

self::$smarty->assign(array(

'pricelist' => $pricelist,

 

в шаблоне там где вызов {include file="$tpl_dir./product-list.tpl" products=$products}

вызываем по if $pricelist либо product-list.tpl либо product-list-pricelist.tpl

 

думаю не самое изящное решение в плане использования внутренностей престы, но придумано за 5 мин)

 

П.С. щас подумал, в js не силен, но там вроде просто все... добавить к img - display: none и если нужно к li нужный класс дописать. Тогда на стороне клиента будет меняться вид категории, без запросов к серверу - быстро и вебдванольно)

Edited by SergeyH (see edit history)
Link to comment
Share on other sites

гм... можно сделать на js по onclick заменить содержимое нужных тегов (убирать img и т д.)

или, вижу в category.tpl

{if $products}
{include file="$tpl_dir./product-compare.tpl"}
{include file="$tpl_dir./product-sort.tpl"}
{include file="$tpl_dir./product-list.tpl" products=$products}
{include file="$tpl_dir./product-compare.tpl"}
{include file="$tpl_dir./pagination.tpl"}
  {elseif !isset($subcategories)}

 

т.е. делаем в category кнопку с гет/пост параметром типа pricelist=yes

в CategoryController.php добавляем что-то типа

if (isset($_POST['pricelist']) AND $_POST['pricelist'] = 'yes')
 $pricelist = true;

и в массив для смарти добавляем передачу

self::$smarty->assign(array(

'pricelist' => $pricelist,

 

в шаблоне там где вызов {include file="$tpl_dir./product-list.tpl" products=$products}

вызываем по if $pricelist либо product-list.tpl либо product-list-pricelist.tpl

 

думаю не самое изящное решение в плане использования внутренностей престы, но придумано за 5 мин)

 

П.С. щас подумал, в js не силен, но там вроде просто все... добавить к img - display: none и если нужно к li нужный класс дописать. Тогда на стороне клиента будет меняться вид категории, без запросов к серверу - быстро и вебдванольно)

 

Коллега, большое Вам спасибо.

Но я не совсем вас понял.

 

Я так понимаю следует в product-list добавить что-то вроде

 

if (Tools::isSubmit(ВашаКнопка'))

{include file="$tpl_dir./product-list-с-нужным-отображением.tpl" products=$products}

 

Шаблон отображения я сделаю. Мне не понятно как заменять product-list.tpl на prosuct-list-второй вариант.tpl.

Прошу полную конструкцию. В php не силен.

Link to comment
Share on other sites

Коллега, большое Вам спасибо.

Но я не совсем вас понял.

Прошу полную конструкцию. В php не силен.

 

кажется я чушь смолол, щас...

*** паническое чтение документации и проба кода *** :D

нет, не чушь, проверил, работает, даже сам удивлен))

 

итого:

 

я же помню что читал что-то подобное... смотри что нашел

http://forum.htmlboo...?showtopic=5539

 

Переменные $smarty

Для обращения к зарезервированным в PHP массивам GET, POST, COOKIES, SERVER, ENV и SESSION применяется специальная переменная $smarty. Вначале пишется $smarty, затем после точки имя массива PHP, дальше чего через точку указывается имя переменной пользователя. В табл. 1 приведены некоторые переменные запроса.

 

Табл. 1. Получение переменных запроса через Smarty

 

$smarty.get.id Значение id, полученное через метод GET

$smarty.post.name Значение name, полученное через метод POST

$smarty.cookies.user Значение user, хранящееся в кукисах

$smarty.session.time Значение time, хранящееся в сессии

$smarty.server.SCRIPT_NAME Вывод переменной сервера SCRIPT_NAME

 

и там ниже пример кода есть. Т.е. можно на уровне шаблона (смарти + штмл) все решить:

 

 

 


{* это форма с кнопкой *}
<form action="" method="post">
<input type="hidden" name="price" value="true">
<input type="submit" value="В виде прайса1" name="send_form">
</form>


{if $products}
{include file="$tpl_dir./product-compare.tpl"}
{include file="$tpl_dir./product-sort.tpl"}
{* Здесь обрабатываем условие нажатия кнопки  и выводим нужный шаблон *}
  {if $smarty.post.price}
	  {include file="$tpl_dir./product-list.tpl" products=$products}
  {else}
	   {include file="$tpl_dir./product-list-1.tpl" products=$products}
  {/if}
{* Конец условия *}
{include file="$tpl_dir./product-compare.tpl"}
{include file="$tpl_dir./pagination.tpl"}
{elseif !isset($subcategories)}
<p class="warning">{l s='There are no products in this category.'}</p>
{/if}
{elseif $category->id}
........

 

все это в tpl делается. Попробуй, по идее должно работать. работает.

По-хорошему надо в условии проверять так: "Если нажато Сабмит и передано поле прайс то ...", ну думаю сам допилишь дальше)

 

П.С.

лирика

Хотя как я писал выше за идеологию не ручаюсь и с внутренними классами престы я не работал почти, так что для меня Tools::isSubmit(ВашаКнопка')) типа откровения что-то) т.е. прикольно что там есть такие обертки.

 

П.П.С.

ну и да, после того как ты выведешь список2, надо же кнопку изменить на "Стандартный вид", ну или сразу 2 кнопки рисуй... корочое пользователю надо дать возможность вернуться в стандартный вид категории.

Edited by SergeyH (see edit history)
Link to comment
Share on other sites

 

кажется я чушь смолол, щас...

*** паническое чтение документации и проба кода *** :D

нет, не чушь, проверил, работает, даже сам удивлен))

 

итого:

 

я же помню что читал что-то подобное... смотри что нашел

http://forum.htmlboo...?showtopic=5539

 

 

 

и там ниже пример кода есть. Т.е. можно на уровне шаблона (смарти + штмл) все решить:

 

 

 


{* это форма с кнопкой *}
<form action="" method="post">
<input type="hidden" name="price" value="true">
<input type="submit" value="В виде прайса1" name="send_form">
</form>


{if $products}
{include file="$tpl_dir./product-compare.tpl"}
{include file="$tpl_dir./product-sort.tpl"}
{* Здесь обрабатываем условие нажатия кнопки  и выводим нужный шаблон *}
  {if $smarty.post.price}
	  {include file="$tpl_dir./product-list.tpl" products=$products}
  {else}
	   {include file="$tpl_dir./product-list-1.tpl" products=$products}
  {/if}
{* Конец условия *}
{include file="$tpl_dir./product-compare.tpl"}
{include file="$tpl_dir./pagination.tpl"}
{elseif !isset($subcategories)}
<p class="warning">{l s='There are no products in this category.'}</p>
{/if}
{elseif $category->id}
........

 

все это в tpl делается. Попробуй, по идее должно работать. работает.

По-хорошему надо в условии проверять так: "Если нажато Сабмит и передано поле прайс то ...", ну думаю сам допилишь дальше)

 

П.С.

лирика

Хотя как я писал выше за идеологию не ручаюсь и с внутренними классами престы я не работал почти, так что для меня Tools::isSubmit(ВашаКнопка')) типа откровения что-то) т.е. прикольно что там есть такие обертки.

 

П.П.С.

ну и да, после того как ты выведешь список2, надо же кнопку изменить на "Стандартный вид", ну или сразу 2 кнопки рисуй... корочое пользователю надо дать возможность вернуться в стандартный вид категории.

 

 

Боюсь, что мои заниня огриничиваются html, css и пониманием jquery.

Вртяли я смогу дописать самостоятельно.

Link to comment
Share on other sites

ну так, там нет пхп только смарти + штмл, приведенный код уже работает так как ты хотел, ничего военного нет. А по смарти в любом случае надо читать, если ты намереваешься самостоятельно шаблоны править.

Link to comment
Share on other sites

  • 4 weeks later...
  • 3 weeks later...
  • 2 weeks later...
Кто хочет, тот ищет возможности, а кто не хочет, тот ищет оправдания

 

Подход забавный конечно, типа - я тут занят, и нет времени вникать, а вы мне нарисуйте...

обсуждать нет желания, помогать тоже.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...