私の記録の 1 つの 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'
何もレンダリングされません。