这里的任何人都知道如何在我的扩展程序中使用processUpload_postProcessAction挂钩吗?
我创建了一个hook文件夹,并添加了一个名为 class.tx_lms_tcemain.php 的php文件
我在扩展程序的ext_localconf.php
中添加了以下行$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processUploadClass'][] = 'EXT:wr_dw_lms/hooks/class.tx_lms_tcemain.php:tx_lms_tcemain';
在钩子文件夹里面的PHP文件包含以下代码:
<?php
class tx_lms_tcemain {
function processUpload_postProcessAction (&$filename, t3lib_TCEmain
$parentObject) {
$this->addFlashMessage(
'Blog created successfully!',
'Status',
\TYPO3\CMS\Core\Messaging\AbstractMessage::OK,TRUE
);
}
}
?>
这个不起作用。我的代码没有被执行。这里的任何人都可以帮助我吗?
答案 0 :(得分:1)
尝试在ext_localconf.php
中写这个 $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_extfilefunc.php']['processData'][] = 'Vendor\WrDwLms\Hooks\Tcemain\';
答案 1 :(得分:0)
尝试将ext_localconf.php
中的代码更改为
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processUpload'][] = 'EXT:wr_dw_lms/hooks/class.tx_lms_tcemain.php:tx_lms_tcemain';
请注意“processUpload”而不是“processUploadClass”。
我建议您使用正确的命名空间:
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processUploadClass'][] =
'Vendor\WrDwLms\Hooks\Tcemain';
你的Hook看起来像这样(把它放在wr_dw_lms/Classes/Hooks/
中):
namespace Vendor\WrDwLms\Hooks;
use TYPO3\CMS\Core\DataHandling\DataHandler
class Tcemain {
public function processUpload_postProcessAction(&$filename, DataHandler $parentObject) {
....
}
}
编辑:至于您编辑到问题中的代码($this->addFlashMessage()
),如果您没有在班级中实施此方法,那当然无法正常工作。