Ich versuche, die Erweiterung importr zu ändern, um eine benutzerdefinierte Aktion auf den Controller "Importr" unter importr \ Klassen \ Controller \ ImportrController.php einzufügen.TYPO3 ExtBase - Erforderliches Argument X ist nicht gesetzt
rief ich die Aktion "Custom" und die Bezugnahme auf sie aus einer Taste, die ich mit Flüssigkeit machen in importr \ Resources \ Private \ Templates \ Importr \ Index.HTML unter Verwendung <f:link.action>
<div id="myButton">
<f:link.action
extensionName="Importr"
pluginName="Importr"
controller="Importr"
action="custom"
arguments="{taskid:5}"
>
Click here
</f:link.action>
</div>
Controller-Aktion:
/**
* @param int $taskid
* @return void
*/
public function customAction($taskid)
{
...
}
jedoch jeder Versuch, einen Parameter auf die Aktion nicht besteht. Bei meinem ersten Versuch erhalte ich sogar eine Fehlerseite, ohne auf den Button zu klicken, wie im Screenshot unten zu sehen ist.
Versuch # 1
/**
* @param int $taskid
* @return void
*/
public function customAction($taskid)
{
print_r($taskid);
die;
}
Uncaught TYPO3 Exception
1298012500: Erforderliches Argument "taskid" für hdnet \ Importr \ Controllers \ ImportrController-> Brauch nicht gesetzt.
TYPO3 \ CMS \ Extbase \ Mvc \ Controllers \ Exception \ RequiredArgumentMissingException in Datei geworfen /var/www/typo3/typo3_src-6.2.25/typo3/sysext/extbase/Classes/Mvc/Controller/AbstractController.php in Zeile 425. '
Versuch # 2
/**
* @return void
*/
public function customAction()
{
$taskid = "default";
if ($this->request->hasArgument('taskid')) {
$taskid = $this->request->getArgument('taskid');
}
echo "TASKID = '$taskid'";
die;
...
OUTPUT: TASKID = 'default'
Versuch # 3:
/**
* @return void
*/
public function customAction()
{
$args = $this->request->getArguments();
$taskid = $args['taskid'];
echo "TASKID = '$taskid'";
die;
OUTPUT: TASKID = ''
Ich weiß nicht, was kann ich sonst noch versuchen. Ist es möglich, dass ich im Fluid Code einen Fehler gemacht habe? Benutzt ich einen falschen pluginName oder extensionName oder ist es sogar ein typo3 Bug? Wo ist der pluginName gespeichert, damit ich es überprüfen kann?
Mehr Infos
ich meine benutzerdefinierte Aktion erlaubt, indem sie es auf die anderen Aktionen innerhalb ext_tables.php
<?php
if (!defined('TYPO3_MODE')) {
die('Access denied.');
}
/** @var string $_EXTKEY */
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerModule(
'HDNET.' . $_EXTKEY,
'file',
'tx_importr_mod',
'',
[
'Importr' => 'custom,index,import,preview,create',
],
[
'access' => 'user,group',
'icon' => 'EXT:' . $_EXTKEY . '/ext_icon.gif',
'labels' => 'LLL:EXT:' . $_EXTKEY . '/Resources/Private/Language/locallang_mod.xlf'
]);
wenn das die lösung ist, flag sie als one, thx;) –
kann ich noch nicht, weil du erst ein paar tage warten musst nachdem du deine eigene antwort annehmen kannst.:P kann ich in 2 tage annehmen. – Black