我如何在typo3 6.1.5中使用php在tt_content中呈现内容对象

时间:2013-11-29 10:50:52

标签: database plugins typo3 frontend

我需要使用我的扩展程序来呈现tt_content中的特定内容。

我该怎么做?

\ TYPO3 \ CMS \ Frontend \ ContentObject \ ContentObjectRenderer?

4 个答案:

答案 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

https://jainishsenjaliya.wordpress.com/2014/08/21/how-to-get-current-tt_content-uid-in-pi-base-and-extbase-extension/