Как получить доступ к действию TYPO3 через браузер - PullRequest
0 голосов
/ 01 декабря 2019

Я строю расширение TYPO3 с Extbase и хочу хранить данные, которые я получаю через HTTP GET. Сейчас я борюсь с возможностью использовать браузер для доступа к контроллеру действий.

Плагин реализован на странице 102
Ключ расширения - xyzlist
Имя плагина - xyzlistdb
Имя контроллераis PlaylistController
Действие getAction
Имя домена sub.domain.de

В PlaylistController.php находится только под getAction
error_log ("GetAction", 0);
чтобы выяснить, если URL браузера переходит на getAction.

Здесь я использую URL

http://sub.domain.de/index.php?id=102&tx_xyzlist_xyzlistdb[controller]=playlist&tx_xyzlist_xyzlisdb[action]=get

В браузере я использую '&' вместо только '&'
Но если я использую только '&', он также не получает доступ к действию Get

Но я не получаю никаких сообщений вфайл журнала!

Что я делаю не так?

Ответы [ 3 ]

1 голос
/ 02 декабря 2019

Здесь у вас есть несколько возможностей ...

Во-первых, вы можете отключить [FE][pageNotFoundOnCHashError] (Install-Tool), так что вы не получите 404 на недействительном cHash. Это глобальный для вас сайт для всех плагинов. Это небезопасный способ.

Во-вторых, вы можете установить plugin.tx_xyzlist_xyzlistdb.features.requireCHashArgumentForActionArguments = 0 в своем наборе текста, чтобы отключить плагин pageNotFoundOnCHashError для вас.

Наконец, вы можете добавить свои переменные в [FE][cHashExcludedParameters](Install-Tool), чтобы ваши переменные не были включены в вычисления cHash.

0 голосов
/ 13 декабря 2019

Напишите первую букву имени вашего контроллера с заглавной буквы.

http://sub.domain.de/index.php?id=102&tx_xyzlist_xyzlistdb[controller]=Playlist&tx_xyzlist_xyzlisdb[action]=get

Также не отключайте cHash без уважительной причины. Эта проблема вовсе не является причиной.

Джонас упомянул, что сгенерировал ссылку на ваше действие с:

<f:uri.action pageUid="102" extensionName="xyzlist" pluginName="xyzlistdb" action="get" />

Это действительно хорошая и экономящая время практика.

0 голосов
/ 01 декабря 2019

Чтобы получить правильную ссылку, вам придется использовать typolink. Вероятно, самый простой способ создать ссылку на действие плагина - это использовать f:uri.action в таком шаблоне:

<f:uri.action pageUid="102" extensionName="xyzlist" pluginName="xyzlistdb" action="get" />

https://docs.typo3.org/other/typo3/view-helper-reference/9.5/en-us/typo3/fluid/latest/Link/Action.html

...