tx_新闻的Flexform挂钩在TYPO3 8.x中不起作用
在我的扩展中,我正在使用tx_新闻扩展的后端实用程序挂钩。它在TYPO3的previos版本中运行良好tx_新闻的Flexform挂钩在TYPO3 8.x中不起作用,typo3,hook,tx-news,Typo3,Hook,Tx News,在我的扩展中,我正在使用tx_新闻扩展的后端实用程序挂钩。它在TYPO3的previos版本中运行良好 /** * @param array|string $params * @param array $reference * @return void */ public function updateFlexforms(&$params, &$reference) { if ($params['selectedView'] === 'News->calen
/**
* @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警告:updateFlexforms(&$params,&$reference)的声明应与/path/to/BackendUtility.PHP行0中的GeorgRinger\News\Hooks\BackendUtility::updateFlexforms(array&$dataStructure,array$row)兼容
由于它是一个钩子,需要这些参数params和reference,所以我无法将其更改为原始函数的参数。这也会导致一个问题
我在这里遗漏了什么?只需将updateFlexform方法重命名为其他名称即可
问题是由于php7的原因,只需将updateFlexform方法重命名为其他名称即可
问题是因为php7,第一个答案和同一个线程中的注释(均由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。第一个答案和同一条线索中的注释(均由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,这是PHP Warrnig消息,因为在TYPO3 8 core
updateFlexforms()函数中,总是使用类型数组传递两个参数。您需要在此函数中传递数组值 这是PHP Warrnig消息,因为在TYPO3 8 coreupdateFlexforms()
函数中,始终使用类型数组传递两个参数。您需要在此函数中传递数组值 我以前也这么认为,但得到了这个错误:传递给GeorgRinger\News\Hooks\BackendUtility::deleteFromStructure()的参数1必须是数组类型,null给定,在第33行的/BackendUtility.php中调用,我以前也这么认为,但得到了这个错误:传递给GeorgRinger\News\Hooks\BackendUtility::deleteFromStructure()的参数1必须是第33行的/BackendUtility.php中调用的数组类型(给定null)