hook - 更新我的扩展名的条目

时间:2017-04-28 12:29:27

标签: typo3

我需要你的帮助。我创建了我的扩展。我可以在后端添加条目。我跟着钩子:

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processCmdmapClass']['fefiles'] =
    \Istar\Fefiles\Hooks\DataHandler::class;

我的数据处理程序文件:

class DataHandler{

    public function processDatamap_afterDatabaseOperations(
        $status,
        $table,
        $recordUid,
        array $fields,
        \TYPO3\CMS\Core\DataHandling\DataHandler $parentObject
    ) {
        $fp = fopen($_SERVER['DOCUMENT_ROOT'].'/666.txt', 'w');
        fwrite($fp, print_r(get_defined_vars(), true));
        fclose($fp);
    }


    public function processDatamap_preProcessFieldArray(&$fieldArray, $table, $id, $parentObject)
    {
        $fp = fopen($_SERVER['DOCUMENT_ROOT'].'/666.txt', 'w');
        fwrite($fp, print_r(get_defined_vars(), true));
        fclose($fp);
    }


    public function processCmdmap_preProcess($command, &$table, $id, $value, $parentObject)
    {
        $fp = fopen($_SERVER['DOCUMENT_ROOT'].'/666.txt', 'w');
        fwrite($fp, print_r(get_defined_vars(), true));
        fclose($fp);
    }



}

我想收到有关更新条目的数据。(uid和其他)。 但是当我更新条目时,没有任何反应。正如您所见,我尝试在我的代码中创建文件。我这样做是为了测试它并接收数据。什么都没发生。当我将create file的代码添加到方法__construct时,就创建了该文件。

我希望你理解我的问题。有人,请帮帮我。

1 个答案:

答案 0 :(得分:2)

如果你想要挂钩processDatamap_afterDatabaseOperationsprocessDatamap_preProcessFieldArray,你必须注册,作为名称的前缀(processDatamap_*),你的班级:

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass'][]

而不是

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processCmdmapClass'][]

<强>更新 它可能看起来像这样。将它们注册到两个案例中以获得所有钩子:

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass'][] = \Istar\Fefiles\Hooks\DataHandler::class;
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processCmdmapClass'][] = \Istar\Fefiles\Hooks\DataHandler::class;