Параметры Extbase в TYPO3 в URL игнорируются.Никакое действие не называется - PullRequest
0 голосов
/ 11 июня 2019

Я пишу расширение, которое проверяет версию браузера, и если версия не поддерживается, отображается подсказка.Я делаю это с условием опечатки, которая хорошо работает до сих пор.Но в подсказке есть ссылка на игнорирование.Ссылка должна вызывать мое действие "setSessionParameters" в контроллере "BrowserCheck".Если щелкнуть ссылку, вызывается правильный URL-адрес, но отображается тот же вывод, что и раньше (подсказка).Действие полностью игнорируется.Я попытался вставить несуществующее действие, но даже не вызывается исключение, что для меня означает: не проверяется, разрешен ли вопрос в ext_localconf, и не проверяется и в контроллере.Я думаю, что конфигурация опечаток может быть проблемой, но я не могу найти решение.Кто-нибудь может помочь?Пожалуйста, смотрите мой код ниже

ext_localconf.php:

    \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
        'VENDOR.' . $extensionKey,
        'browsercheck',
        [
            'BrowserCheck' => 'setSessionParameter',
        ],
        [
            'BrowserCheck' => 'setSessionParameter',
        ]
    );

page.typoscript:

    page = PAGE
    [session('wcobrowsercheck') == "ignore" || checkInternetExplorer()]
    page{
       //normal setup
    }
    [ELSE]
    // called setup for hint-case
    page >
    page = PAGE
    page{
        typeNum = 0
        shortcutIcon = {$files.favicon.path}
        10 = FLUIDTEMPLATE
        10 {
          templateRootPaths {
              0 = EXT:my_extension/Resources/Private/Templates/BrowserCheck
          }
          layoutRootPaths {
              0 = EXT:my_extension/Resources/Private/Layouts/BrowserCheck
          }

          templateName = MainPage
          }
          includeCSS {
            ...
           }
     }
     [END]

ссылка вызов в шаблоне:

    <f:link.action controller="BrowserCheck" action="setSessionParameters" extensionName="my_extension" pluginName="browsercheck" arguments="{ignore: 'true'}"> ignore </f:link.action>

1 Ответ

0 голосов
/ 11 июня 2019

Я вижу 2 проблемы с вашей настройкой.

  1. Вы определяете объект PAGE дважды. И во второй раз вы стираете все предыдущие настройки
  2. Я не вижу, чтобы вы разместили плагин на странице.

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

page = PAGE
// ...
page.999 < tt_content.list.20.extkey_pluginname

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

...