Задать вопрос
ermolaevalexey
@ermolaevalexey
frontend веб-разработчик

Как правильно вывести условие в шаблоне Smarty?

Ситуация следующая: сайт на Webasyst. На сайте есть несколько категорий товаров. В одной присутствует сайдбар с сортировками слева и список товаров справа. В другой присутствует просто список ее подкатегорий без сайдбара.

Обе категории используют для вывода товаров один шаблон. В той которая с сайдбаром, ширина блока 77%. Соответственно, в другой такая же ширина. Необходимо чтобы на странице той категории которая без сайдбара, список товаров растягивался бы на полную ширину страницы. Прибавление доп класса не решило бы проблему, так как этот же класс появился бы и на других страницах, шаблон ведь один. Поэтому было принято решение вывести блоки через условие, на одной странице див с одним айдишником, на другой с другим. Записываю условие в шаблоне так:

{if $wa->app() == 'shop' && $page.url == '/category/avtochekhly-po-modelyam/'}

<div id="product-list">

{else}

<div id="cat-list">

{/if}


Эффекта никакого, за исключением того, что айдишник меняется на тот что в else на страницах всех категорий.
Поэтому вопрос: как правильно записать это условие?

Спасибо.
  • Вопрос задан
  • 640 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
thewind
@thewind
php программист, front / backend developer
Не знаю, что у вас хранится в $page, но можете попробовать так
$smarty.server.REQUEST_URI == '/category/avtochekhly-po-modelyam/'

только, вероятно, без последнего слеша
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Vampireos
@Vampireos
https://vk.com/axelaredz
Делал так:
{* ВЫВОДИМ НА СТРАНИЦЕ ПРОДУКТА *}
{if strpos($smarty.server.REQUEST_URI,"/show-product/") !== false}

  контент

{* ВЫВОДИМ НА ГЛАВНОЙ *}
{elseif strpos($smarty.server.REQUEST_URI,"/base/") !== false}
 
  контент  

{* ВЫВОДИМ НА СТРАНИЦЕ ПРОДУКТОВ *}
{elseif strpos($smarty.server.REQUEST_URI,"/show-products/") !== false}

   контент  

{/if}


Указываем, что должно быть быть в адресе например "/show-product/" или "/base/"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы