У меня задача сделать систему сайтов которые управляются одной админкой.
Домены типа:
magazin-moskva.ru
magazin-spb.ru
magazin-rostov.ru
magazin-bobruisk.ru
Админка на всех одна, вход к ней по any-domain/admin/
Для всех сайтов шаблон и все ресурсы (js, css, картинки) общие. База данных соответственно тоже общая.
Кроме того у каждого домена есть мобильная версия, которая имеет совершенно другой шаблон в отличие от основного. Доступ к этому шаблону будет по домену третьего уровня m.
m.magazin-moskva.ru
m.magazin-spb.ru
m.magazin-rostov.ru
m.magazin-bobruisk.ru
Вопрос 1: Как лучше организовать структуру каталогов для такой системы сайтов, с учётом того, что администратор потом мог без проблем добавлять любое количество доменов? Какой шаблон (basic или advanced) взять за основу, или может вообще другую структуру каталогов создавать? Вопрос 2: Мне нужны будут глобальные переменные, которые будут зависеть от имени домена. Например,
$gorod = 'Москва', $gorode = 'Москве', $goroda = 'Москвы' => для домена magazin-moskva.ru
$gorod = 'Санкт-Петербург', $gorode = 'Санкт-Петербурге', $goroda = 'Санкт-Петербурга' => для домена magazin-spb.ru
$gorod = 'Ростов-на-Дону', $gorode = 'Ростове-на-Дону', $goroda = 'Ростова-на-Дону' => для домена magazin-rostov.ru
Где лучше прописать такие переменные? Есть ли в Yii переменная имени домена, или можно просто использовать $_SERVER['HTTP_HOST']?
Админка на всех одна, вход к ней по any-domain/admin/
это не одна. Это много админок. Одна это admin.domain.com. И через нее можно управлять любым количество сайтов на любых доменах. Ей вообще все равно по идее. Она просто с базой или базами данных работает. Она не в курсе, что есть фронт или несколько фронтов и на каких доменах они живут.
Так что уточните 1 админка или много одинаковых.
По вопросам:
1) больше зависит от проекта, нежели от наличия админки. А о нем мы ничего не знаем. Так что посоветовать сложно. Точнее можно, если пальцем в небо тыкнуть. Думаю ща появятся "тыкатели".
2) Я так понимаю лучше запиcать в params на этапе формирования app. Потому как возможно и конфиг будет зависим от этого.
Админка одна, по крайней мере должна быть одна. Именно в ней будет происходить добавление новых доменов, потому от доменов она независима.
Честно говоря не понимаю чем admin.domain.com лучше чем any-domain/admin/
Получится либо так
magazin-moskva.ru/admin/
magazin-spb.ru/admin/
magazin-rostov.ru/admin/
magazin-bobruisk.ru/admin/
Либо так
admin.magazin-moskva.ru
admin.magazin-spb.ru
admin.magazin-rostov.ru
admin.magazin-bobruisk.ru
Но мне казалось, что в первом варианте будет проще, так как при добавлении нового домена администратором не нужно будет в апаче отдельно прописывать еще и путь до админки. Достаточно будет прописать только сам домен и его мобильную версию.
Но, возможно, я ошибаюсь.
1) больше зависит от проекта, нежели от наличия админки. А о нем мы ничего не знаем. Так что посоветовать сложно. Точнее можно, если пальцем в небо тыкнуть. Думаю ща появятся "тыкатели".
Как раз таки сам сайт достаточно прост, в отличие от админки, там есть несколько статичных страниц, типа "О нас", "Контакты", "Сотрудничество" и одна динамическая страница с товарами - каталог товаров. Эти страницы определяют на каком домене они открыты и меняют контент в зависимости от установленных переменных для домена, типа $gorod = 'Москва', $gorode = 'Москве', $goroda = 'Москвы'
А вот сама админка уже посложнее, там будет много зависимостей, в том числе и зависимость от сайтов. Например, какой-то товар есть в одном городе на складе, но нет в другом, а в третий город вообще не поставляется. Всё это настраивается в админке.
2) Я так понимаю лучше запиcать в params на этапе формирования app. Потому как возможно и конфиг будет зависим от этого.
Я подумал, может эти переменные хранить в базе данных и подключать уже в модели? Админинстратор сайта сможет задать эти параметры при создании нового домена непосредственно в интерфейсе, а не править конфиги.
Получится либо так
magazin-moskva.ru/admin/
magazin-spb.ru/admin/
magazin-rostov.ru/admin/
magazin-bobruisk.ru/admin/
Либо так
admin.magazin-moskva.ru
admin.magazin-spb.ru
admin.magazin-rostov.ru
admin.magazin-bobruisk.ru
разницы нет, это много админок, я про 1. Общую:
adminka.com
Но можно взять 1 приложение, конечно же тогда это шаблон advanced, а для magazin-bobruisk.ru/admin/ просто переадрессовать в нужную точку входа