无法为新闻条目生成 TYPO3 tt_news 类别树
Can't generate TYPO3 tt_news category tree for news entry
我在我的 TYPO3 v7.6.18(刚刚从 6.2.31 升级)中使用 tt_news
扩展
我在分类树方面遇到了问题。我为 tt_news
类别渲染做了更多调试,这是目前的问题:
旧的 tca.php
看起来像这样:
'category' => Array(
'exclude' => 1,
'label' => 'LLL:EXT:tt_news/locallang_tca.xml:tt_news.category',
'config' => Array(
'type' => 'select',
'form_type' => 'user',
'userFunc' => 'tx_ttnews_TCAform_selectTree->renderCategoryFields',
'treeView' => 1,
'foreign_table' => 'tt_news_cat',
'autoSizeMax' => 50,
'minitems' => $confArr['requireCategories'] ? 1 : 0,
'maxitems' => 500,
'MM' => 'tt_news_cat_mm',
),
),
这给了我错误的结果,意思是,我没有得到一棵树,而是多 select。现在,当我将类型更改为 user 时,出现此错误:
Fatal error: Call to undefined method TYPO3\CMS\Backend\Form\Element\UserElement::addSelectOptionsToItemArray() in /home/portal/typo3project/typo3conf/ext/tt_news/lib/class.tx_ttnews_TCAform_selectTree.php on line 167
我检查了 class tx_ttnews_TCAform_selectTree
方法 renderCategoryFieldsand
中的行,它看起来像这样:
$selItems = $fobj->addSelectOptionsToItemArray($fobj->initItemArray($this->PA['fieldConf']),$this->PA['fieldConf'],$fobj->setTSconfig($table,$row),$field);
$fobj 作为函数定义中的参考:function renderCategoryFields(&$PA, &$fobj)
看起来,它在某处定义错误,因为 addSelectOptionsToItemArray
位于FormEngine
和 不是 UserElement
.
因为方法是在tca中调用的tx_ttnews_TCAform_selectTree->renderCategoryFields
我不能改变class,它正在使用。
有什么解决办法吗?
从 TYPO3 7 开始,您不需要定义自定义用户函数来将列表呈现为树。有一个renderType
TCA configuration option for select类型的字段,可以通过selectTree
值定义树渲染。
所以配置应该如下所示:
'category' => Array(
'exclude' => 1,
'label' => 'LLL:EXT:tt_news/locallang_tca.xml:tt_news.category',
'config' => Array(
'type' => 'select',
'renderType' => 'selectTree',
'foreign_table' => 'tt_news_cat',
'autoSizeMax' => 50,
'minitems' => $confArr['requireCategories'] ? 1 : 0,
'maxitems' => 500,
'MM' => 'tt_news_cat_mm',
'treeConfig' => array(
'parentField' => 'parent_category',
),
),
),
此外,您可能想使用 treeConfig
configuration option 进行一些视觉调整。
我在我的 TYPO3 v7.6.18(刚刚从 6.2.31 升级)中使用 tt_news
扩展
我在分类树方面遇到了问题。我为 tt_news
类别渲染做了更多调试,这是目前的问题:
旧的 tca.php
看起来像这样:
'category' => Array( 'exclude' => 1, 'label' => 'LLL:EXT:tt_news/locallang_tca.xml:tt_news.category', 'config' => Array( 'type' => 'select', 'form_type' => 'user', 'userFunc' => 'tx_ttnews_TCAform_selectTree->renderCategoryFields', 'treeView' => 1, 'foreign_table' => 'tt_news_cat', 'autoSizeMax' => 50, 'minitems' => $confArr['requireCategories'] ? 1 : 0, 'maxitems' => 500, 'MM' => 'tt_news_cat_mm', ), ),
这给了我错误的结果,意思是,我没有得到一棵树,而是多 select。现在,当我将类型更改为 user 时,出现此错误:
Fatal error: Call to undefined method TYPO3\CMS\Backend\Form\Element\UserElement::addSelectOptionsToItemArray() in /home/portal/typo3project/typo3conf/ext/tt_news/lib/class.tx_ttnews_TCAform_selectTree.php on line 167
我检查了 class tx_ttnews_TCAform_selectTree
方法 renderCategoryFieldsand
中的行,它看起来像这样:
$selItems = $fobj->addSelectOptionsToItemArray($fobj->initItemArray($this->PA['fieldConf']),$this->PA['fieldConf'],$fobj->setTSconfig($table,$row),$field);
$fobj 作为函数定义中的参考:function renderCategoryFields(&$PA, &$fobj)
看起来,它在某处定义错误,因为 addSelectOptionsToItemArray
位于FormEngine
和 不是 UserElement
.
因为方法是在tca中调用的tx_ttnews_TCAform_selectTree->renderCategoryFields
我不能改变class,它正在使用。
有什么解决办法吗?
从 TYPO3 7 开始,您不需要定义自定义用户函数来将列表呈现为树。有一个renderType
TCA configuration option for select类型的字段,可以通过selectTree
值定义树渲染。
所以配置应该如下所示:
'category' => Array(
'exclude' => 1,
'label' => 'LLL:EXT:tt_news/locallang_tca.xml:tt_news.category',
'config' => Array(
'type' => 'select',
'renderType' => 'selectTree',
'foreign_table' => 'tt_news_cat',
'autoSizeMax' => 50,
'minitems' => $confArr['requireCategories'] ? 1 : 0,
'maxitems' => 500,
'MM' => 'tt_news_cat_mm',
'treeConfig' => array(
'parentField' => 'parent_category',
),
),
),
此外,您可能想使用 treeConfig
configuration option 进行一些视觉调整。