На декількох проектах мені доводилося створювати 2 чи 3 (бувало і 10) тем для одного сайту. Це корисно коли, наприклад, є основний сайт і декілька дочірніх сайтів (які використовують одну базу даних). Найбільш простий спосіб - переключати активну тему в залежності від того на який домен заходить користувач.
Слідуючий код необхідно додати в boot() метод в файлі Plugin.php свого плагіну. Тут ми перевіряємо чи запит до домену був з сайту (а не адмін панелі) і повертаємо код потрібної теми. Замість domain1.com, domain2.com, theme-code-1, theme-code-2, theme-code-3 необхідно підставити свої дані.
/*
* Switch active theme depends on damin 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';
}
});
}
Можливо для складних сайтів таке рішення не підійде, але в мене проблем поки що не було.