- Для нашего сайта необходимо включить поддомены по маске *.yoursite.ru (все поддомены должны ссылаться в папку нашего основного сайта yoursite.ru)
- Если такой возможности нет, то нужно настроить поддомены самостоятельно
Все необходимые настройки лежат внутри файла setiings.php
, обязательно нужно указать основной домен и то, какие протоколы у нас используются. Если на сайте используется https, а поддомены планируется создавать на http, то рекомендую в файле .htaccess
либо убрать редирект на https, либо дополнить его так, чтобы он работал исключительно на основном домене.
Аргументы, которые передаются в скрипт:
Аргумент | Описание |
---|---|
$content | Переменная, в которой хранится весь контент |
$arSettings | Настройки из файла settings.php |
$explodeTabs | Устанавливается true, если наш файл надо разбивать по символу табуляции, а не ; По умолчанию false |
$typeReturn | Метод возврата обработанного контента. Возможные значения: *echo *return По умолчанию echo |
Для функционирования замен на наших поддоменах необходимо выполнить следующие шаги:
- Сохранить excel файл с заменами в формате
csv
с разделителем запятая - В зависимости от кодировки сайта преобразовать в нужную наш csv файл
- Закинуть файл на сервер в любое удобное место и указать путь к нему в настройках скрипта (по умолчанию скрипт ищет файл в той же директории)
- Произвести все необходимые настройки
- Вызвать нашу функцию перед непосредственным выводом контента. Для этого есть несколько путей:
- Можно зайти в корневой
index.php
и найти там функцию для вывода контента. После этого, используя буффер, передать весь вывод в переменную и после этого передать нашей функции. - Для Joomla > 3.0 подход выше может не сработать и тогда можно создать плагин, который будет отслеживать событие вывода отрендеренного контента
- Для 1C Bitrix нужно использовать событие
OnEndBufferContent
- Можно зайти в корневой
ob_start();
$app->execute(); // Здесь CMS выводила контент
$content = ob_get_contents(); // Передаём весь наш буффер в переменную
ob_get_clean();
include $_SERVER["DOCUMENT_ROOT"]."/regions.php";
replaceRegions($content, $arSettings);
Все изменения производятся в файле init.php
AddEventHandler("main", "OnEndBufferContent", "replaceSub");
function replaceSub(&$content) {
include $_SERVER["DOCUMENT_ROOT"]."/regions.php";
$content = replaceRegions($content, $arSettings, false, 'return'); // Для 1C Bitrix нужно возвращать контент, а не выводить, поэтому последним параметром стоит return
}