我需要使用我的扩展程序来呈现tt_content中的特定内容。
我该怎么做?
\ TYPO3 \ CMS \ Frontend \ ContentObject \ ContentObjectRenderer?
答案 0 :(得分:6)
在Extbase扩展中,$this->cObj
在当前范围内不再可用,因此您需要先使用它才能使用:
$cObj = $this->configurationManager->getContentObject();
$ttContentConfig = array(
'tables' => 'tt_content',
'source' => 123,
'dontCheckPid' => 1
);
$content .= $cObj->RECORDS($ttContentConfig);
答案 1 :(得分:2)
您可以使用Typoscript CONTENT object并将其传递给流畅的ViewHelper:
lib.myContent = CONTENT
lib.myContent {
table = tt_content
select {
pidInList = yourPid
where = uid=yourContentElementID
}
}
在使用Fluid的扩展程序中:
<f:cObject typoscriptObjectPath="lib.myContent" />
您还可以通过vie帮助程序传递值,请参阅here
答案 2 :(得分:2)
您也可以从控制器执行此操作。如果我理解你的问题,你可能想试试这个
$cObject = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer');
答案 3 :(得分:2)
以下脚本将使用PI base扩展。
$uid = $this->cObj->data['uid'];
if ($this->cObj->data['_LOCALIZED_UID']) {
$uid = $this->cObj->data['_LOCALIZED_UID'];
}
以下脚本将在EXT BASE扩展中使用。
$this->contentObj = $this->configurationManager->getContentObject();
$uid = $this->contentObj->data['uid'];
有关TYPO3内容的更多信息,请访问我的blog