Как вызвать действие контроллера для каждого запроса страницы - PullRequest
1 голос
/ 16 мая 2019

У меня есть плагин с различными действиями, одно из действий, которое я хотел бы вызывать каждый раз, когда запрашивается страница.Я попробовал это таким способом, но когда у меня есть плагин на той же странице (скажем, это форма контакта), тогда плагин не знал другие действия, поэтому я должен каждый раз включать все действия вthe switchableControllerActions.

Может быть, есть другой способ?Может, зарегистрировать Действие Контроллера в каком-то хуке?

Ответы [ 3 ]

2 голосов
/ 17 мая 2019

ОК, я получил подсказку, и вот решение:

20 = USER_INT
20 {
    userFunc = Vendor\Extension\UserFunc\Class->function
}
1 голос
/ 16 мая 2019

Вероятно, вы можете создать объект lib из расширения. Взгляните на пользовательскую функцию ниже:

lib.myData = USER
lib.myData {
  userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
  extensionName = Ext
  pluginName = pluginName
  vendorName = MyVendor

  switchableControllerActions {
        MyController{
          1 = myAct
        }
  }

  settings < plugin.tx_ext.settings
  settings {
        // Your settings
  }
}

Теперь вы можете вызывать объект lib для жидкого шаблона (как вам нужно для каждой страницы)Вы можете добавить этот объект в макет главной страницы.

Здесь Георг Рингер создал такой же код для отображения списка новостей с помощью Typoscript.

Надеюсь, это поможет вам!

0 голосов
/ 16 мая 2019

Вы можете использовать FlexForms, чтобы установить предустановленный Контроллер-> Действие. Таким образом, даже если вы используете плагин дважды на одной странице, вы можете контролировать Controller-> Action каждого плагина через FlexForm.

Может быть, это хорошо помогает: Несколько контроллеров в расширении

...