Поддомены для пользователей
Просмотрел сегодня код 0.4.1 и так и не догнал как правильно сделать поддомены для пользователей. То есть как понятно с переписанным Router, но не хочется нарушать идеологию движка. Хочется, чтобы было через плагин.
Мои мысли свелись к этому:
Делаем планиг, вешаем хук, допустим на init_action, в функции которую запустит хук разбираем $_SERVER['HTTP_HOST']. Если обращение идет с поддомена, смотрим какой евент запрашивается, подстраиваем под себя и вызывает каким-то хитрым способом Router::action() с нужными нам параметрами. Все остальное сделает движок. Вопрос в том, как правильно запустить Router::Action(), с учетом того, что его надо запускать из модуля или из акшена.
Была мысль сделать через переопределение нужной функции init в акшене, но inherits надо определять сразу в классе плагина, и динамически подстроить нужный вызов не получится. Поэтому дальше не стал копать.
Или я вообще неправильно понял всю идеологию? =)
UPD 1
Теоретически можно еще в конфиге плагина, если обращение с поддомена, дать правило роуту на несуществующий action + задать по-умолчанию нужный нам, но мне кажется это не очень правильно.
Мои мысли свелись к этому:
Делаем планиг, вешаем хук, допустим на init_action, в функции которую запустит хук разбираем $_SERVER['HTTP_HOST']. Если обращение идет с поддомена, смотрим какой евент запрашивается, подстраиваем под себя и вызывает каким-то хитрым способом Router::action() с нужными нам параметрами. Все остальное сделает движок. Вопрос в том, как правильно запустить Router::Action(), с учетом того, что его надо запускать из модуля или из акшена.
Была мысль сделать через переопределение нужной функции init в акшене, но inherits надо определять сразу в классе плагина, и динамически подстроить нужный вызов не получится. Поэтому дальше не стал копать.
Или я вообще неправильно понял всю идеологию? =)
UPD 1
Теоретически можно еще в конфиге плагина, если обращение с поддомена, дать правило роуту на несуществующий action + задать по-умолчанию нужный нам, но мне кажется это не очень правильно.
8 комментариев
Все нормально выводится, не считая того, то еще появляются на странице топиков пользователя все блоки с главной страницы (прямой эфир, блоги, облако тегов)
проблема из-за того, что сейчас блоки не поддерживают динамических евентов, поэтому приходиться описывать их через полные пути и появляется зависимость от $sPathWebCurrent. В след версиях сделаем поддержку определения блоков через метод евента
include/ajax/stream_topic.php выдает:
PHPSESSID на поддоменах разный и незнаю как это побороть.
Ваш плагин тоже будет платным?
Я пока через прямое копание в коде сделал, благо всего тремя строчками отделался.
Что касается вашей проблемы, то куку можно ставить и на поддомены главного домена. А прямой эфир скорее всего у вас не работает, т.к. аякс запросы идут на домен отличный от текущего, чего делать нельзя.