我在typo3中有一个扩展名。我想使用itemsProcFunc进行单选按钮选择:
<radField>
<label>Radiobuttons</label>
<config>
<type>radio</type>
<itemsProcFunc>CM\Parser\UserFunc\FlexFormUserFunc->getNames</itemsProcFunc>
</config>
</radField>
不幸的是,我收到以下错误消息:
Item itemsProcFunc of field radField of TCA table tt_content is no array as exepcted
我也尝试过选择框:
<dynField>
<TCEforms>
<label>dynamic content</label>
<config>
<type>select</type>
<renderType>selectSingle</renderType>
<itemsProcFunc>CM\Parser\UserFunc\FlexFormUserFunc->getNames</itemsProcFunc>
</config>
</TCEforms>
</dynField>
使用选择框,它起作用了,但是我得到了我无法从下拉列表中删除的第一项[无效值]。但是,如果我使用
<renderType>selectCheckBox</renderType>
相反,我没有得到任何无效值,但是我可以选择多个我不想使用的选项。
其背后的php文件如下所示:
class FlexFormUserFunc {
function getNames($config) {
$fileList = array();
$i=0;
$pathParts = "";
foreach(glob(__DIR__ . "/formatClasses/*.php") as $fileName) {
$pathParts = pathinfo($fileName);
$fileList[$i] = array( 0 => $pathParts['filename'], 1 => $pathParts['basename'] );
$i++;
}
$config['items'] = array_merge($config['items'],$fileList);
return $config;
}
}
感谢您的帮助。
答案 0 :(得分:0)
我找到了解决此问题的可行方法。可能的flexform如下所示(我忘记了items-array标签):
<radField>
<TCEforms>
<label>Radiobuttons</label>
<config>
<type>radio</type>
<itemsProcFunc>CM\Parser\UserFunc\FlexFormUserFunc->getNames</itemsProcFunc>
<items type="array">
</items>
</config>
</TCEforms>
</radField>