Я использую CodeIgniter, но этот вопрос относится к любой среде MVC. У меня есть пользовательская CMS, которая позволяет управлять 5 различными сайтами. Пользователи входят в систему и переключаются между этими сайтами. Они могут добавлять контент в каждую из областей сайтов. CMS и данные, которые можно ввести, одинаковы для каждого сайта.
Все общедоступные сайты выглядят совершенно по-разному и представляют разные бренды, даже если они содержат те же данные, что и все остальные.
Так как бы вы пошли на реализацию этих взглядов? Есть ли какие-то шаблоны дизайна, на которые я должен смотреть?
Единственный способ, которым я могу думать о том, чтобы сделать это прямо сейчас, - это поместить оператор switch внутри каждого действия контроллера, чтобы получить другое представление для каждого веб-сайта, но должен быть гораздо более умный способ сделать это. Я хочу обойтись созданием множества кода, который выглядит следующим образом:
class Home extends Controller {
public function getPage()
{
$website = $this->session->userdata( "site_id" );
switch( $website )
{
case "1":
// load view one
break;
case "2":
// load view 2
break;
// etc etc
}
}
}