Как выводить разный контент в шаблоне Smarty в зависимости от поддомена в Webasyst
Если вы используете Webasyst и хотите показывать уникальный контент для каждой витрины (на поддоменах вроде sochi.site.ru
, krasnodar.site.ru
), это можно реализовать на уровне шаблона, без PHP-кода. Всё делается средствами Smarty.
Зачем это нужно
Допустим, у вас одна установка Webasyst с несколькими витринами:
sochi.site.ru
rostov-na-donu.site.ru
krasnodar.site.ru
И вы хотите, чтобы на каждой из них отображались уникальные заголовки, тексты или блоки.
Решение на Smarty
В нужном .html
-шаблоне используйте следующее:
{assign var="host" value=$smarty.server.HTTP_HOST}
{if strpos($host, '.site.ru') !== false}
{assign var="subdomain_parts" value="`$host`"|explode:"."}
{assign var="subdomain" value=$subdomain_parts[0]}
{else}
{assign var="subdomain" value=""}
{/if}
{if $subdomain == 'sochi'}
<h1>Добро пожаловать во флористический центр Сочи</h1>
{elseif $subdomain == 'rostov-na-donu'}
<h1>Цветы в Ростове-на-Дону — с любовью</h1>
{elseif $subdomain == 'krasnodar'}
<h1>Краснодарский филиал Floramour</h1>
{else}
<h1>Общий сайт сети Floramour</h1>
{/if}
Как работает
{$smarty.server.HTTP_HOST}
— получает полный домен, напримерsochi.site.ru
.explode
разбивает строку по точкам, берём[0]
— это и есть поддомен.- Далее — обычные
if/elseif
, чтобы отобразить нужный блок в зависимости от города.
Смотрите также
8 октября 2025
22 сентября 2025
19 февраля 2025
26 июля 2024
10 июня 2024
26 октября 2023
7 июля 2023
31 октября 2022