TYPO3 Extbase调用新动作
TYPO3 Extbase call new action
我已经创建了自己的 TYPO3 扩展。此扩展程序将显示文件列表。在后端我可以创建新类别。在这些类别中,我可以添加新文件。这行得通。但是当我将link下载按钮到新的控制器动作时,它总是出现错误。
我创建了一个新控制器(类 -> 控制器 -> DownloadController.php)。
该文件包含以下内容:
namespace Mbdownloads\MbDownloads\Controller;
class DownloadController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
/**
* action list
*
* @return void
*/
public function downloadAction() {
//$files = $this->fileRepository->findAll();
$this->view->assign("sample_var", "sample value");
//$this->view->assign('files', $files);
}
在 ext_localconf.php
我添加了以下几行:
'Mbfilelist',
array(
'Category' => 'list,show,test',
'File' => 'show',
'Download' => 'download',
然后我添加了以下文件:Resources/Private/Templates/Download/Download.html
最后在显示操作模板中,我将流体下载link 添加到控制器:
<f:link.action action="download" controller="Download"><i class="fa fa-download"></i> File Download</f:link.action>
Url:
index.php?id=217&tx_mbdownloads_mbfilelist%5Baction%5D=download&tx_mbdownloads_mbfilelist%5Bcontroller%5D=Download&cHash=c1ee54cc5ccaedbeeeeef098a2029e5c
但现在我只得到:糟糕,发生错误! :(
唯一有效的动作是表演动作?!
Classes/Controller/CategoryController/showAction
如果我在此控制器中添加一个动作,exampleAction 并且我将调用这些动作,同样的错误:糟糕,发生错误!
感谢帮助!
我使用 TYPO3 6.2.16 ...
您是否在 flexform 中添加了动作?
<switchableControllerActions>
<TCEforms>
<label>Select Options</label>
<onChange>reload</onChange>
<config>
<type>select</type>
<items>
<numIndex index="0">
<numIndex index="0">...Select Item...</numIndex>
</numIndex>
<numIndex index="1">
<numIndex index="0">Download</numIndex>
<numIndex index="1">ControllerName->action;Download->download</numIndex>
</numIndex>
</items>
</config>
</TCEforms>
</switchableControllerActions>
添加控制器名称和操作后,还必须更新 FE 插件元素。
我已经创建了自己的 TYPO3 扩展。此扩展程序将显示文件列表。在后端我可以创建新类别。在这些类别中,我可以添加新文件。这行得通。但是当我将link下载按钮到新的控制器动作时,它总是出现错误。
我创建了一个新控制器(类 -> 控制器 -> DownloadController.php)。 该文件包含以下内容:
namespace Mbdownloads\MbDownloads\Controller;
class DownloadController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
/**
* action list
*
* @return void
*/
public function downloadAction() {
//$files = $this->fileRepository->findAll();
$this->view->assign("sample_var", "sample value");
//$this->view->assign('files', $files);
}
在 ext_localconf.php
我添加了以下几行:
'Mbfilelist',
array(
'Category' => 'list,show,test',
'File' => 'show',
'Download' => 'download',
然后我添加了以下文件:Resources/Private/Templates/Download/Download.html
最后在显示操作模板中,我将流体下载link 添加到控制器:
<f:link.action action="download" controller="Download"><i class="fa fa-download"></i> File Download</f:link.action>
Url:
index.php?id=217&tx_mbdownloads_mbfilelist%5Baction%5D=download&tx_mbdownloads_mbfilelist%5Bcontroller%5D=Download&cHash=c1ee54cc5ccaedbeeeeef098a2029e5c
但现在我只得到:糟糕,发生错误! :(
唯一有效的动作是表演动作?! Classes/Controller/CategoryController/showAction
如果我在此控制器中添加一个动作,exampleAction 并且我将调用这些动作,同样的错误:糟糕,发生错误!
感谢帮助! 我使用 TYPO3 6.2.16 ...
您是否在 flexform 中添加了动作?
<switchableControllerActions>
<TCEforms>
<label>Select Options</label>
<onChange>reload</onChange>
<config>
<type>select</type>
<items>
<numIndex index="0">
<numIndex index="0">...Select Item...</numIndex>
</numIndex>
<numIndex index="1">
<numIndex index="0">Download</numIndex>
<numIndex index="1">ControllerName->action;Download->download</numIndex>
</numIndex>
</items>
</config>
</TCEforms>
</switchableControllerActions>
添加控制器名称和操作后,还必须更新 FE 插件元素。