Закрыть
Скидки в Webasyst 25–29 ноября 2021

Бекенд приложения - несколько вопросов.

racheev

1. Можно ли для нескольких приложений иметь один общий дизайн бекенда?
2. Можно ли сделать так что бы пользователь который получил доступ к системе при входе попал сразу в свое приложение в бекенд к которому он имеет этот доступ? Сейчас при входе он видит "Ваша панель управления пуста. Добавьте виджеты на панель, щелкнув по ссылке «Настроить виджеты» в левом верхнем углу." Ну не нужна ему эта панель, Ему необходимо попасть сразу в приложение.
3. забыл что хотел спросить:-)))

8 марта 2016
  • racheev 8 марта 2016 19:19

    вот вспомнил,

    $contact->get('address');

    Array
    (
    [0] => Array
    (
    [data] => Array
    (
    [city] => Москва
    [country] => rus
    [street] => Крымский Вал, д. 3, стр. 2
    )

    [ext] => work
    [value] => Крымский Вал, д. 3, стр. 2, Москва, Российская Федерация
    )

    )


    Тут я получаю адрес контакта.. А вот когда два адреса один work второй home, как мне получить конкретный из двух?

  • Алексей Webasyst 8 марта 2016 23:02

    1. Дизайн это набор шаблонов и Layout, поэтому можете использовать одинаковые шаблоны для разных приложений, если это требуется.
    2. Обычно запоминается последнее посещенное приложение и при новом входе сразу переходит в него.
    3. https://developers.webasyst.ru/cookbook/contacts-a...

  • racheev 9 марта 2016 03:14

    1. А в каком месте его хранить и как пути к нему указать для других приложений. Вот у меня приложение AaA со своей структурой лайаутов и шаблонов. Я создаю приложение BbB это же такая же папка рядом с AaA . как мне объяснить приложению BbB что его все шаблоны (и те которых нет в приложении AaA экшенов и контроллеров) лежат в папке AaA? A?

    2. Я прекрасно это понимаю, зачем вы говорите то что и ежу понятно. Вопрос не в том что запоминается, а вопрос в том как перенаправить нового пользователя в его приложение минуя убожетсво которое он видит при входе. Просьба заказчика.

    3. Вы сейчас прикололись? Вы думаете я этого не видел?:-)) На основании того что там написано я и задаю вопрос!!! Как мне получить конкретный адрес контакта? Вот так -> $contact->get('address', 'home'); Не работает!!!


  • racheev 9 марта 2016 03:27

    можно ли как-то вообще заменить дизайн админки целиком? потому что все равно не используются на блог ни фото ни стикеры...

  • Алексей Webasyst 9 марта 2016 04:32

    3. -> $contact->get('address.home');

  • racheev 9 марта 2016 05:57

    3 - > Супер, то что надо! Спасибо.

  • Евгений Леман 9 марта 2016 06:36
    1. А в каком месте его хранить и как пути к нему указать для других приложений. Вот у меня приложение AaA со своей структурой лайаутов и шаблонов. Я создаю приложение BbB это же такая же папка рядом с AaA . как мне объяснить приложению BbB что его все шаблоны (и те которых нет в приложении AaA экшенов и контроллеров) лежат в папке AaA? A?

    У каждого приложения своя одноименная папка с рабочими файлами. Можно использовать 1 дизайн, но нужно будет просто заклонировать все шаблоны из одного приложения в другое. Я не ковырялся в кухне этого вопроса. Может и можно как-то подменить пути(сомневаюсь), вот только вопрос. Зачем? Наверняка вы нашли некорректное решение своей задачи.

  • racheev 9 марта 2016 09:04

    Ну почему же некорректное? Никакого решения. Потому что это возможно или после того как разработчики что-нибудь придумают, или никогда.

    Меня больше всего интересует 2 вопрос...

  • Алексей Webasyst 9 марта 2016 09:48

    2. Заранее пользователю ставите cookie last_page и он будет перенаправлен на указанное приложение после авторизации. Либо можете добавить виджет который проверит и перенаправит.

  • racheev 9 марта 2016 09:52

    Про куки я уже было подумывал... Спасибо, а вот на счет виджета, можно поподробнее что за виджет такой?

  • racheev 9 марта 2016 14:31

    А есть возможность этот виджет принудительно поставить в систему? Что бы он по умолчанию там стоял?

  • racheev 9 марта 2016 14:59

    Ну допустим я поставить его принудительно смогу всем кто пользователем станет.. А вот вопрос, как из него перейти в приложение? $this->redirect('/'); Редиректит в самом окне виджета.. Как его заставить редиректить на приложение?

  • Михаил Проектов 13 марта 2016 14:06

    По вопросу №2 предложу решение не идеальное, но которое вероятно не слетит с ближайшими обновлениями.

    Заливаем в /wa-system/webasyst/lib/actions/backend/webasystBackend.controller.php

    class webasystBackendController extends waController
    {
      public function execute()
      {
        if (empty(waRequest::param('action', null))) {
          foreach (array('myapp1', 'myapp2', 'helpdesk', 'shop',  'hub', 'blog', 'site', 'photo') as $app) {
            $rights = wa()->getUser()->getRights($app);
            if (!empty($rights['backend']) && $rights['backend'] > 0) {
              $this->redirect(
                $this->getConfig()->getBackendUrl(true) . $app . DIRECTORY_SEPARATOR
              );
            }
          }
        }
        $controller = new webasystBackendActions();
        $controller->run();
      }
    }

    Список и порядок приложений в цикле определяете согласно своим задачам и приоритетам.

  • racheev 14 марта 2016 01:48

    Спасибо:-) Я решил 2 пункт при помощи виджета. В шаблоне его

    <script type="text/javascript">

    location="/{$apps}/";

    </script>



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