1

独自の拡張機能から tt_content 要素をレンダリングする 1 つの方法は次のとおりです。

function getCE($id)
{
    $conf['tables'] = 'tt_content';
    $conf['source'] = $id;
    $conf['dontCheckPid'] = 1;
    return $this->cObj->cObjGetSingle('RECORDS', $conf);
}

tt_content がローカライズされるように $conf に何かを追加することは可能ですか? sys_language_uid = 2 の tt_content 行が必要だとしましょう。

別の方法として「getRecordOverlay」を使用することもできますが、cObjGetSingle の一部の機能が失われます。

UPDATE(TYPO3 4.5.10用です)

フィードバックありがとうございます。私はどういうわけかそれを行う「コンテンツ」の方法で間違っています。関数から何も返されません。languageField の有無にかかわらず。

実際の例を投稿することは可能ですか? tt_content uid が 3389 で、uid 2 の言語に翻訳されていることを知っているとしましょう。または、簡単な作業例へのリンクです。

$conf = array(
    'table'   => 'tt_content',
    'select.' => array(
        'where'         => 'colPos=0 AND uid = 3389',
        'orderBy'       => 'sorting',
        'languageField' => 2 << if I leave this line out of the conf array I still get no result
    )
);
return $this->cObj->cObjGetSingle('CONTENT', $conf);        

BR。アンダース

4

2 に答える 2

1

RECORDS の代わりにCONTENTを使用してみてください。

$conf = array(
    'table'   => 'tt_content',
    'select.' => array(
        'where'         => 'colPos=0',
        'orderBy'       => 'sorting',
        'languageField' => 'sys_language_uid' // <- Here!
    )
);
$conf['select.']['languageField'] = 'sys_language_uid';

return $this->cObj->cObjGetSingle('CONTENT', $conf);
于 2013-05-16T21:39:50.133 に答える
0

それに応じて配列 を置き換えRECORDSCONTENT調整する必要があります。http://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/Content/Index.html$conf

CONTENTselect http://docs.typo3.org/typo3cms/TyposcriptReference/Functions/Select/Index.htmlを利用languageFieldし、翻訳されたコンテンツの適切な選択に再び使用できます。

ただし$id、コンテンツ要素はl18n_parentフィールドによって元の要素を「認識」するため、元の要素に接続する必要があります。whereまたはそれを使用できますandWhere

于 2013-05-16T21:41:53.297 に答える