Tx_news的Flexform Hook在TYPO3 8.x中不起作用

时间:2016-09-10 07:52:37

标签: typo3 hook tx-news

在我的扩展中,我正在使用tx_news扩展的backendUtility Hook。它适用于TYPO3的普及版本。

/**
 * @param array|string $params
 * @param array $reference
 * @return void
 */
public function updateFlexforms(&$params, &$reference) {
    if ($params['selectedView'] === 'News->calendar') {
        $removedFields = $this->removedFieldsInCalendarView;

        $this->deleteFromStructure($dataStructure, $removedFields);
    }

}

在TYPO3 8.3和8.4中,我收到以下警告:

  

1:PHP警告:\ Foo \ BarBackendUtility :: updateFlexforms(& $ params,& $ reference)的声明应与GeorgRinger \ News \ Hooks \ BackendUtility :: updateFlexforms(array& $ dataStructure,array)兼容$ row /to/BackendUtility.php第0行

由于它是一个钩子,它需要这些参数参数和参考,我无法将其更改为原始函数的参数。这也会导致问题。

我在这里缺少什么?

3 个答案:

答案 0 :(得分:1)

只需将updateFlexform方法重命名为其他名称即可。

问题是因为php7

答案 1 :(得分:1)

第一个答案和同一主题中的评论(均由Georg Ringer合并)导致了解决方案:

/**
 * @param array $params
 * @param array $reference
 * @return void
 */
public function updateFlexformsDatedNews(&$params, &$reference) {
    if ($params['selectedView'] === 'News->calendar') {
        $removedFields = $this->removedFieldsInCalendarView;
        $this->deleteFromStructure($params['dataStructure'], $removedFields);
    }

}

这适用于PHP5.6和7.0

答案 2 :(得分:0)

这是PHP Warrnig消息,在TYPO3 8核心updateFlexforms()函数中的Becaue传递了两个带有always类型数组的参数。您需要在此函数中传递数组值。