我的一条记录的 TCA 字段如下:
'page_id' => array(
'exclude' => 0,
'label' => 'LLL:EXT:calendar/Resources/Private/Language/locallang_db.xlf:tx_calendar_domain_model_display.page_id',
'config' => array(
'type' => 'user',
'userFunc' => 'EXT:calendar/class.tx_calendars_tca.php:tx_calendars_tca->someWizard',
),
该函数someWizard
如下所示:
function someWizard($PA, $fObj) {
$content='<select>' .
'<option value="One" > item 1 </option>' .
'<option value="Two" > item 2 </option>' .
'<option value="Three" > item 55 </option>' .
'</select>';
return $content;
}
选择列表可以很好地呈现到后端表单中,但保存时它不会存储任何内容。可能是正在显示列表但未设置值。
编辑:
我正在尝试将所有页面标题放入下拉列表中,并带有一些条件和处理。我想做的伪代码是这样的。(我仍然需要对列表进行大量处理)
function someWizard($PA, $fObj) {
$GLOBALS['TYPO3_DB']->debugOutput = TRUE;
$formField='<select>';
$PA['fieldConf']['config']['type'] = 'select';
try{
$where='is_siteroot=1';
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*','pages',$where);
while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
$formField.='<option value='.$row['uid'].'>'.$row['title'].'</option>';
}
}
catch(Exception $e){
echo $e;
}
$formField.='</select>';
return $formField;
}
如果在我的 TCA 中,我给'type' => 'select'
它不会渲染任何东西。