Вызов экшена бекенда из плагина

Добрый день!

Можно ли каким-то способом вызвать экшен бекенда (админки) из кода плагина? И ещё вопрос - как туда передавать параметры? Например, это действие требует выбора файла на компьютере, как его передавать из php-кода плагина?

10 ответов

  • 1
    Алексей 7 сентября 2016 11:58 #

    Можно - достаточно просто обратиться к нужному методу или по URL к шаблону.
    Файлы отправляются обычно через POST поэтому вам нужен JS/HTML.

    • +1
      foxsorek foxsorek 7 сентября 2016 12:20 #

      Не могли бы Вы показать пример php-кода, вызывающего определённый экшен? Что-то нигде не могу найти.

    • +1
      foxsorek foxsorek 14 сентября 2016 12:47 #

      Мне нужно вызвать функцию save из контроллера shopCsvProductupload (как я понял, именно она отвечает за выгрузку csv-файла перед импортом товаров), но она protected. Как правильно к ней обращаться? Или можно выполнить задачу как-то иначе?

  • 1
    Rat 8 сентября 2016 22:55 #

    Экшен обычно возвращает фрагмент HTML-кода в ответ на запрос пользователя. А для загрузки файлов обычно используется контроллер, не возвращающий HTML. Почему вы пытаетесь объединить обе эти задачи? Вообще что вам нужно сделать в итоге?

    • +1
      foxsorek foxsorek 13 сентября 2016 09:01 #

      Мне нужно автоматизировать процесс выгрузки товаров из csv-файла в админке.

    • +1
      ITFrogs ITFrogs 14 сентября 2016 00:19 #

      Здесь как раз та самая путаница в терминологии между экшенами и контроллерами, о которой неоднократно говорили. Одно отличается от другого только наследованием родительских классов. Возможно, при проектировании движка этому придавался какой-то смысл, но сейчас его нет. Было бы гораздо проще, если б всегда был экшен или всегда контроллер без разницы.

      • +1
        Rat Rat 14 сентября 2016 10:07 #

        Экшен не всегда обязательно обрабатывает HTTP-запросы. А контроллер — всегда. Возможно, как минимум, поэтому между ними разница в терминологии.

        • +1
          Nichikov Eugen Nichikov Eugen 14 сентября 2016 10:31 #

          waCliController :)

          А когда экшены не обрабатывают? В случаях типа вызова из контроллера executeAction()?

          • +1
            Rat Rat 14 сентября 2016 10:34 #

            Значит, с приставкой "HTTP-" я погорячился. Просто "запросы" тогда )

            А когда экшены не обрабатывают? В случаях типа вызова из контроллера executeAction()?

            или в случае с

            $some_html = wao(new myAction($params))->display();
      • +1
        Rat Rat 14 сентября 2016 10:09 #

        Но мне кажется, что эта дискуссия бессмысленна. Если человек не до конца понимает разницу, достаточно просто объяснить. Вряд ли Вебасист станет менять терминологию только из-за того, что кому-то она кажется нелогичной.

Эта тема в архиве. Добавление комментариев к ней отключено.