Михаил Проектов


Михаил Проектов

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

    Разобрались?

    Не знаю баг или так задумано, но при сборе маршрутов из конфигураций плагинов в методе blogConfig->getRouting() не заполняется параметр plugin для маршрутов.

    При этом plugin заполняется в приложении site - siteConfig->getRouting():

    /wa-apps/site/lib/config/siteConfig.class.php:43
    $route['plugin'] = $plugin;
    

    и аналогично в приложении shop - shopConfig->getRouting:

    /wa-apps/shop/lib/config/shopConfig.class.php:135
    if (!array_key_exists('plugin', $route)) {
      $route['plugin'] = $plugin;
    }
    

    Получается для приложения blog во frontend основной контроллер waFrontController в методе execute() выполняет поиск класса экшна или контроллера только с использованием $module и $action.

    Это ответ на вопрос "Почему?"

    Можно обойти сие странное различие в конфигурации приложений, указав plugin явно в routing.php для плагина:

      'geoip/popup/' => array(
        'module' => 'frontend',
        'action' => 'popup',
        'plugin' => 'geoip',
      )
    

    Тогда все будет работать аналогично shop и site.

    в ответ на Почему не проходит ajax запрос к плагину приложения blog

  • Михаил Проектов Михаил Проектов 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();
      }
    }

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

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

  • Михаил Проектов Михаил Проектов 13 марта 2016 00:25 #

    Вопрос был изначально про формы регистрации, авторизации и восстановления пароля.
    Что не работает в личном кабинете? Симптомы опишите.

    в ответ на Форма регистрации и авторизации а так же восстановление пароля

  • Михаил Проектов Михаил Проектов 11 марта 2016 22:39 #

    Содержимое блога публикуется в RSS.
    А там только абсолютные по стандарту.

    в ответ на Https и webasyst

  • Михаил Проектов Михаил Проектов 11 марта 2016 02:20 #

    Есть хук backend_order.
    В его обработчике можно сделать так

    $html = <<<HTML
    <script>
    $(document).ready(function() {
        $('.wf-action').data('confirm',"Уверен?");
    });
    </script>
    HTML;
    
    return array(
        'action_link' => $html
    );

    в ответ на Подтверждение действий со статусом заказа в бекенде.

  • Михаил Проектов Михаил Проектов 10 марта 2016 23:36 #

    404 ошибку "организовывает" срабатывающий экшн или контроллер. https://developers.webasyst.ru/basics/naming-rules...

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

    Если правил нет, значит срабатывает, что-то из:

    {APP_ID}FrontendController->execute()
    {APP_ID}FrontendActions->DefaultAction()
    {APP_ID}FrontendAction->execute()

    Внутри контроллера или экшна, когда хотим 404 вызываем

    throw new waException('Что угодно не найдено', 404);


    в ответ на 404 ошибка в своем приложении с фронтэндом как?

  • Михаил Проектов Михаил Проектов 10 марта 2016 23:02 #

    Для каждого домена настраивается приложение, которое будет "... отвечать за функциональность форм регистрации и авторизации пользователей на этом сайте....".

    Сайт->домен->Личный кабинет->Настройки авторизации->Настроить

    В теме поселения выбранного приложения можно изменить шаблоны:
    forgotpassword.html
    login.html
    signup.html.

    в ответ на Форма регистрации и авторизации а так же восстановление пароля

  • Михаил Проектов Михаил Проектов 9 марта 2016 08:41 #

    Сильно зависит от сути действий, которые надо сделать.
    Есть несколько возможных хуков.

    Вариант 1. frontend_category

    Вариант 2. frontend_head

    Вариант 3. Если нужен 301-й редирект например, то routing

    в ответ на Настройка роутинга для категорий магазина