2013-10-21 35 views
0

我有一個tt_content的自定義cType,其中來自正常tt_content的標題和bodytext字段被重用。目標是擁有一個自定義的tt_content cType,以正常方式顯示標題和bodytext。但我需要從PHP而不是TS來完成,因爲在返回它之前我將不得不處理文本。TYPO3從類中渲染bodytext。訪問lib.parseFunc_RTE的錯誤

我可以輸出標題和bodytext作爲原始文本,但我無法使用pi_RTEcssText格式化bodytext。每次我嘗試失敗。沒有訪問parseFunc_RTE的東西。

關於如何使用自定義類(不是前端插件)正確地輸出正文格式的任何其他好主意。我曾嘗試包括tslib的,並將其存儲在$這個 - > hObj,也嘗試了正常$這個 - > cObj具有相同restult

require_once(PATH_tslib . 'interfaces/interface.tslib_content_cobjgetsinglehook.php'); 
require_once(PATH_tslib . 'class.tslib_pibase.php'); 

class tx_cObj_ogProcessTtContent implements tslib_content_cObjGetSingleHook { 
    protected $cObj; 

    public function getSingleContentObject($contentObjectName, array $configuration, $TypoScriptKey, tslib_cObj &$parentObject) { 

     $this->cObj =& $parentObject; 

     // access to pibase 
     $this->hObj = new tslib_pibase(); // <-- did try with cObj with same result 

     // content from current tt_content element 
     $headerOfCE = $this->cObj->data['header']; 
     $bodytextOfCE = $this->cObj->data['bodytext']; 


     // header 
     $content = '<h1>'.$headerOfCE.'</h1>'; // <-- is there a wrap as header func? 
     // add bodytext (not possible since no access to lib.parseFunc_RTE) 
     $content .= $this->hObj->pi_RTEcssText($bodytextOfCE); 

     return $content; 

    } 

} 
+0

「Something with」是一個非常糟糕的描述。如果它不起作用,我們需要確切的錯誤,而不是「與...一起」。很明顯,「某些東西」不起作用:-)。 – lorenz

回答

0

沒有必要使用CObject的鉤簡單情況。

可以在typo3conf註冊一個新的插件/ extTables.php(AdditionalConfiguration.php):

$TCA['tt_content']['columns']['CType']['config']['mycontent'] = array(
    'label' => 'My Content', 
); 

$TCA['tt_content']['columns']['CType']['config']['items'][] = array('My Content', 'mycontent', 'path/to/my_icon.gif'); 

/* Arrange the fields you want to use in your content element */ 
$TCA['tt_content']['types']['mycontent'] = array(
    'showitem' => 'CType;;4;;1-1-1, hidden, header, bodytext, 
        --div--;LLL:EXT:cms/locallang_tca.xml:pages.tabs.access, starttime, endtime' 
); 

然後可以將內容類型添加到使用選項Page TSconfig新的內容元素精靈:

mod.wizards.newContentElement.wizardItems { 
    mycontent { 
     icon = path/to/my_icon.gif 
    } 
    common.show := addToList(mycontent) 
} 

mod.wizards.newContentElement.wizardItems.common.elements.mycontent { 
     icon = path/to/my_icon.gif 
     title = My content 
     description = The description 
     tt_content_defValues { 
      CType = mycontent 
     } 
} 

然後你需要一些TypoScript來正確呈現內容。如果要使用tt_content中的渲染作爲基礎,請使用

tt_content.mycontent < tt_content.text 

然後,您可以操縱你的頭部渲染:

# delete the stdheader 
tt_content.mycontent.10 > 
tt_content.mycontent.10 = TEXT 
tt_content.mycontent.10.field = header 
tt_content.mycontent.10.wrap = <h1>|</h1>