kyestu Posted September 20, 2011 Share Posted September 20, 2011 Hello, коллеги. Думаю сделать в ИМ два варианта отображения товаров. Вариант 1 - стандартный. Вариант 2 - по типу прайс-листа. Делаю второй product-lits.tpl с нужным мне отображением. Собственно вопрос в следующем : Как на определенную кнопку повесить смену product-list.tpl ? Чувствую, что истина где-то близко. Но где ? Link to comment Share on other sites More sharing options...
Ronaldo Perez Posted September 20, 2011 Share Posted September 20, 2011 (edited) гм... можно сделать на 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 September 20, 2011 by SergeyH (see edit history) Link to comment Share on other sites More sharing options...
kyestu Posted September 21, 2011 Author Share Posted September 21, 2011 гм... можно сделать на 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 More sharing options...
Ronaldo Perez Posted September 21, 2011 Share Posted September 21, 2011 (edited) Коллега, большое Вам спасибо. Но я не совсем вас понял. Прошу полную конструкцию. В php не силен. кажется я чушь смолол, щас... *** паническое чтение документации и проба кода *** нет, не чушь, проверил, работает, даже сам удивлен)) итого: я же помню что читал что-то подобное... смотри что нашел 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 September 21, 2011 by SergeyH (see edit history) Link to comment Share on other sites More sharing options...
kyestu Posted September 21, 2011 Author Share Posted September 21, 2011 кажется я чушь смолол, щас... *** паническое чтение документации и проба кода *** нет, не чушь, проверил, работает, даже сам удивлен)) итого: я же помню что читал что-то подобное... смотри что нашел 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 More sharing options...
Ronaldo Perez Posted September 21, 2011 Share Posted September 21, 2011 ну так, там нет пхп только смарти + штмл, приведенный код уже работает так как ты хотел, ничего военного нет. А по смарти в любом случае надо читать, если ты намереваешься самостоятельно шаблоны править. Link to comment Share on other sites More sharing options...
Ronaldo Perez Posted September 21, 2011 Share Posted September 21, 2011 мне тут подсказывают что вот здесь http://kotoblog.pp.ua/php/shablon-vyvoda-spiska-tovarov-kategorii-prestashop.html описано как реализовать задачу с учетом движка и на пхп, только изменить чтобы срабатывало по кнопке. Link to comment Share on other sites More sharing options...
kyestu Posted September 22, 2011 Author Share Posted September 22, 2011 Спасибо, ребята. Попробую, затем отпишусь. Link to comment Share on other sites More sharing options...
kyestu Posted October 17, 2011 Author Share Posted October 17, 2011 Ребята, не выходит с возвратом в стандартный шаблон. Прошу еще кусок кода. Link to comment Share on other sites More sharing options...
kyestu Posted November 4, 2011 Author Share Posted November 4, 2011 ап Link to comment Share on other sites More sharing options...
kyestu Posted November 15, 2011 Author Share Posted November 15, 2011 ап Link to comment Share on other sites More sharing options...
Ronaldo Perez Posted November 15, 2011 Share Posted November 15, 2011 ппц... за ДВА месяца реально это все было выучить уже самому) лень великая вещь, приложенная в нужном месте конечно. Link to comment Share on other sites More sharing options...
kyestu Posted November 15, 2011 Author Share Posted November 15, 2011 Если бы я сутками сидел дома и кроме престашоп ничем не занимался... Link to comment Share on other sites More sharing options...
Ronaldo Perez Posted November 15, 2011 Share Posted November 15, 2011 Кто хочет, тот ищет возможности, а кто не хочет, тот ищет оправдания Подход забавный конечно, типа - я тут занят, и нет времени вникать, а вы мне нарисуйте... обсуждать нет желания, помогать тоже. Link to comment Share on other sites More sharing options...
YoWeb3 Posted November 16, 2011 Share Posted November 16, 2011 Удалось? Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now