0

tx_mytable から単一のレコードを編集するためのフォームを作成するために、できるだけ標準的な TYPO3 を使用したいと考えています。

pi1 で、テーブルの tca をロードします: t3lib_div::loadTCA('tx_mytable');

今、標準関数を使用して、バックエンドで行われるようにフォーム要素を多かれ少なかれ作成したいと思います...

フロントエンド用にこれを見つけましたが、動作する例が見つかりません: t3lib_TCEforms_fe.php (通常の t3lib_TCEforms を拡張します)

これは正しい方法ですか、それともより良い方法はありますか?

4

1 に答える 1

0

私は何かが機能していましたが、フロントエンドでそれほど素晴らしいコードではありませんでした

これは、TCA では不十分であるが、配列に 2 つの新しいエントリが必要であることを示すリンクです http://www.martin-helmich.de/?p=15

itemFormElName と itemFormElValue です

// include tceforms_fe (place outside class where pipase is included)
require_once(PATH_t3lib.'class.t3lib_tceforms_fe.php');

// load TCA for table in frontend
t3lib_div::loadTCA('tx_ogcrmdb_tasks');

// init tceforms
$this->tceforms = t3lib_div::makeInstance("t3lib_TCEforms_FE");
$this->tceforms->initDefaultBEMode(); // is needed ??
$this->tceforms->backPath = $GLOBALS['BACK_PATH']; // is empty... may not be needed

//////////REPEAT FOR EACH INPUT FIELD/////////
// start create input fields, here just a single select for responsible

// conf used for tceforms similar to but not exactly like normal TCA
$conftest = array(
    'itemFormElName' => $GLOBALS['TCA']['tx_ogcrmdb_tasks']['columns']['responsible']['label'],
    'itemFormElValue' => 1,
    'fieldConf' => array(
        'config' => $GLOBALS['TCA']['tx_ogcrmdb_tasks']['columns']['responsible']['config']
    )
);

// create input field
$this->content .= $this->tceforms->getSingleField_SW('','',array(),$conftest);

// wrap in form
$output = '<form action="" name="editform" method="post">';
$output .= $this->content;
$output .= '</form>';

// wrap and return output
return $output;

入力フィールドのカスタムテンプレートを使用した実際の例をまだ探しています。

于 2013-01-01T22:05:32.020 に答える