Поддержка нескольких доменов в приложении

Здравствуйте!

Разрабатываю приложение для Webasyst. После очередной отправки приложения на модерацию, пришел ответ, что приложение не поддерживает несколько доменов. Повозившись в той информации, что есть на сайте, ничего не нашла по поводу этого вопроса.

Какие инструменты (классы, методы) можно использовать для обеспечения поддержки мультидоменности?

6 ответов

  • 0
    Михаил Ушенин Webasyst 3 октября 2014 09:12 #
    Возможно, будет полезен класс waRouting. Посмотрите примеры его использования в других приложениях. Экземпляр этого класса получают путём такого вызова:
    wa()->getRouting()
  • 0
    Михаил Ушенин Webasyst 3 октября 2014 09:12 #
    Если интересует что-то более конкретное, спрашивайте более конкретно :)
  • 0
    Olga Mamizheva 4 октября 2014 09:46 #
    Михаил, спасибо за отклик!

    Ситуация такая. Я в приложении легко могу получить информацию о доступных доменах из БД и сохранять параметры приложения в свою таблицу. Но хочется сделать «правильно». Вот список конкретных вопросов, ответы на которые я не смогла найти:

    1) Как получить список доменов и осуществить переключение между ними (как это выполнено в стандартных приложениях Webasyst, например Site)

    2) Как сохранять настройки приложения через waAppSettingsModel в зависимости от выбранного домена? Как я понимаю метод set устанавливает глобальные настройки для приложения и никак не привязываются к домену?

    Может я пошла не в ту сторону... подскажите пожалуйста. Думаю, другим разработчикам это тоже может быть полезно. Заранее благодарна!
  • 0
    Olga Mamizheva 4 октября 2014 09:59 #
    Список доменов и переключение между ними нашла:

    waSystem::getInstance()->getRouting()->getDomains(); // Массив доменов
    $this->getUser()->setSettings('site', 'last_domain_id', $d); // Переключение между доменами

    А вот с сохранением получается варантов, кроме как собственной таблицы, нет. Правильно?
    • +1
      Михаил Ушенин Михаил Ушенин Webasyst 6 октября 2014 01:46 #
      Таблица wa_app_settings как раз предназначена для хранения настроек приложения, независящих от пользователя, т. е. применимых ко всем пользователям приложения. Например, в неё можно сохранить в виде строки ассоциативный массив, обработанный функцией json_encode. В массиве ключом каждого элемента будет домен (адрес сайта, настроенного в приложении Сайт).
      Данные из этой таблицы автоматически считываются при инициализации приложения, поэтому вы таким образом можете сэкономить минимум 1 SQL-запрос, избежав создания собственной таблицы для хранения настроек. Получать содержимое настроек из таблицы можно с помощью метода get() класса модели waAppSettingsModel.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите