На декількох проектах мені доводилося створювати 2 чи 3 (бувало і 10) тем для одного сайту. Це корисно коли, наприклад, є основний сайт і декілька дочірніх сайтів (які використовують одну базу даних). Найбільш простий спосіб - переключати активну тему в залежності від того на який домен заходить користувач.
Слідуючий код необхідно додати в boot()
метод в файлі Plugin.php
свого плагіну. Тут ми перевіряємо чи запит до домену був з сайту (а не адмін панелі) і повертаємо код потрібної теми. Замість domain1.com
, domain2.com
, theme-code-1
, theme-code-2
, theme-code-3
необхідно підставити свої дані.
/*
* Switch active theme depends on domain name requested
*/
if(!$this->app->runningInBackend()) {
\Event::listen('cms.theme.getActiveTheme', function () {
if (strpos(\Request::getHost(), 'domain1.com') === 0) {
return 'theme-code-1';
} elseif(strpos(\Request::getHost(), 'domain2.com') === 0) {
return 'theme-code-2';
} else {
return 'theme-code-3';
}
});
}