2013-05-16 35 views
1

一種方式來呈現來自自己的分機tt_content元素是這樣的:TYPO3:如何使局部tt_content在自己的分機

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)

感謝您的反饋意見。我以某種方式做錯了'CONTENT'的做法。我從功能中得不到任何回報。無論有沒有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。安德斯

回答

1

您可以嘗試使用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); 
+0

謝謝你的例子。我無法讓它工作。我更新了我的問題。如果您有時間,請發佈一個簡單的工作示例 – Tillebeck

0

你應該CONTENT取代RECORDS並相應調整$conf陣列。 http://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/Content/Index.html

CONTENT利用的selecthttp://docs.typo3.org/typo3cms/TyposcriptReference/Functions/Select/Index.html和再次可以使用languageField翻譯內容的正確選擇。

但是您必須將其連接到原始$id,因爲內容元素通過l18n_parent字段「知道」它們的原始元素。您可以使用whereandWhere

+0

以及helmbert發佈​​的代碼示例,您將不會獲得特定的內容元素,而是使用當前選定的語言獲得「正常」列的全部內容。 您應該在where子句中將l18n_parent設置爲$ id,以確保只會獲得該特定元素的翻譯。 – Joey

+0

感謝您的留言。即使我試圖閱讀並理解您發佈的鏈接,我也無法使其工作。我更新了我的問題。如果您有時間,請發佈一個簡單的工作示例。 – Tillebeck

相關問題