如何在我的扩展中使用钩子processUpload_postProcessAction?

时间:2016-03-23 15:53:14

标签: typo3 hook

这里的任何人都知道如何在我的扩展程序中使用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
);
           }

    }
?>

这个不起作用。我的代码没有被执行。这里的任何人都可以帮助我吗?

2 个答案:

答案 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()),如果您没有在班级中实施此方法,那当然无法正常工作。