用例:在后端保存新闻实例时,我想在保存到数据库之前操作值。
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass'][]= \Vendor\mytheme\Hooks\NewsControllerSettings::class;
在我的 Hooks 中,我编写了这段代码来检查 Hook 是否正在触发,但它没有。
<?php
namespace Vendor\mytheme\Hooks;
class NewsControllerSettings {
public function processDatamap_afterDatabaseOperations($status, $table, $id, &$fieldArray,\TYPO3\CMS\Core\DataHandling\DataHandler $pObj){
echo 'Hello world ! ';
exit();
}
}
我无法升级typo3的版本,甚至无法升级新闻,但我不知道还能尝试什么。 我希望有人能帮助我。也欢迎提出意见。 预先感谢
我认为你的方法、参数
&$fieldArray
没有正确的签名,试试这个:
<?php
namespace Vendor\mytheme\Hooks;
class NewsControllerSettings {
/**
* Generate a different preview link *
*
* @param string $status status
* @param string $table table name
* @param int $recordUid id of the record
* @param array $fields fieldArray
* @param \TYPO3\CMS\Core\DataHandling\DataHandler $parentObject parent Object
*/
public function processDatamap_afterDatabaseOperations(
$status,
$table,
$recordUid,
array $fields,
\TYPO3\CMS\Core\DataHandling\DataHandler $parentObject
) {
echo 'Hello world ! ';
exit();
}
}