Как в подключаемом файле темы определить текущую страницу (продукт, категория и т. д.)
В моей теме в футере подключается файл, в котором я хочу выводить содержимое в зависимости от текущей страницы (главная страница, страница категории, страница продукта, страница отзывов).
Как это однозначно определить?
К примеру переменная $product доступна и в странице самого продукта и в странице отзывов на продукт. Как мне определить что я нахожусь именно на странице отзывов?
Пробовал это делать через глобальные переменные $wa->globals.
Если я присваиваю значение глобальной переменной, к примеру, в product.html :
{$wa->globals("product_page", true)}
{$wa->globals("review_page", false)}потом я c помощью include подключаю reviews.html . И в нем выполню:
{$wa->globals("product_page")|var_dump}
{$wa->globals("review_page")|var_dump}результатом будет NULL NULL.
В чем тогда вообще смысл глобальных переменных?
Эта тема в архиве. Добавление комментариев к ней отключено.










6 ответов
Используйте переменную $action, примерно так:
или
*посмотрите что выдает данная переменная на интересующих вас страницах и создайте себе нужный набор условий
Дополню Александра.
{if $action == 'productReviews'} {* Код для страницы отзывов *} {elseif $action == 'product'} {* Код для страницы товаров *} {elseif $action == 'category'} {* Код для страницы категорий товаров *} {/if} {if $wa_url == $wa->currentUrl()} {* Код для главной страницы *} {/if}У меня $action не выводится в product.cart.html, как тогда быть?
а с чего ему там срабатывать? это же подключаемая страница с выводом блока цены и артикулов, зачем там проверка? какая цель преследуется?
Такая ситуация с этим шаблоном может возникнуть только в том случае если шаблон вызван в самостоятельном потоке, а это попытка добавить в корзину товар с несколькими артикулами из категории или главной страницы(или любом другом месте где размещен список товаров).
В этом случае вам нужно самостоятельно передать признак текущей страницы в адресе запроса.
Один из вариантов такой, в файле формирующем список продуктов(обычно list-thumbs.html) есть примерно такая строка:
{if $p.sku_count > 1}data-url="{$p.frontend_url}{if strpos($p.frontend_url, '?')}&{else}?{/if}cart=1"{/if}заменить ее на:
{if $p.sku_count > 1}data-url="{$p.frontend_url}{if strpos($p.frontend_url, '?')}&{else}?{/if}cart=1&_action={$action|default:''}"{/if}В шаблоне product.cart.html делать проверку:
{if $wa->post('_action') == 'category'}... {/if}
{wa_tpl_vars} даст вам все переменные в шаблоне.