Как выводить разный контент в шаблоне 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
, чтобы отобразить нужный блок в зависимости от города.
Смотрите также
19 февраля 2025
26 июля 2024
10 июня 2024
26 октября 2023
7 июля 2023
31 октября 2022
22 марта 2022
1 апреля 2021