typo3 7.6,新闻 6.3.0 - processDatamap_afterDatabaseOperations 不起作用

问题描述 投票:0回答:1

用例:在后端保存新闻实例时,我想在保存到数据库之前操作值。

  • 我通过以下方式将我的钩子包含在 ext_localconf.php 中:

$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的版本,甚至无法升级新闻,但我不知道还能尝试什么。 我希望有人能帮助我。也欢迎提出意见。 预先感谢

hook typo3-7.6.x tx-news
1个回答
0
投票

我认为你的方法、参数

&$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();
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.