Не так давно во время работы над одним проектом у меня возникла необходимость разместить разные счетчики яндекс метрики в одном шаблоне. В зависимости от того, по какому домену на сайт приходили люди, активировался нужный счетчик. Задача была поставлена так:
Имеется сайт на CMS PrestaShop с поддержкой мультимагазина. Из одной админки управление 4 магазинами, некоторые с одинаковым каталогом и один с определенными товарами. Было решено использовать один шаблон для всех магазинов. Нужно было сделать так, чтобы у каждого магазина (у каждого домена) был свой счетчик посещаемости. Так как Prestashop использует шаблонизатор Smarty, то просто вставить в шаблон php код не получится. Но ситуацию спасает то, что у smarty есть свои встроенные управляющие конструкции и логические операторы. Задача решается очень просто: В папке /themes/ИМЯ_ШАБЛОНА/
открываем файл footer.tpl
и вставляем в него код:
{if $smarty.server.HTTP_HOST == 'domain1.name'}
{literal}
Сюда вставляем код счетичка
{/literal}
{elseif $smarty.server.HTTP_HOST == 'domain2.name'}
{literal}
Сюда вставляем код следующего счетчика
{/literal}
{/if}
и так далее, добавляя конструкцию:
{elseif $smarty.server.HTTP_HOST == 'domain.name'}
{literal}
Сюда вставляем код счетичка
{/literal}
до закрывающего {/if}
Для удобства я вынес данный код в отдельный файл и подключил его в шаблоне с помощью {include file="$tpl_dir./yandex_metrica.tpl"}
, в том месте, где должны отображаться счетчики.
Комментарии
RSS лента комментариев этой записи