3

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

我怎样才能做到这一点?

\TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer ?

4

4 回答 4

6

在 Extbase 中,扩展$this->cObj在当前范围内不再可用,因此您需要先获取它,然后才能使用:

$cObj = $this->configurationManager->getContentObject();

$ttContentConfig = array(
    'tables'       => 'tt_content',
    'source'       => 123,
    'dontCheckPid' => 1
);

$content .= $cObj->RECORDS($ttContentConfig);
于 2013-11-29T12:48:20.777 回答
3

您也可以从控制器执行此操作。如果我理解你的问题,你可能想试试这个

$cObject = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer');
于 2013-12-06T10:48:21.570 回答
2

您可以使用 Typoscript CONTENT 对象并将其传递给流畅的 ViewHelper:

lib.myContent = CONTENT
lib.myContent {
  table = tt_content
  select {
    pidInList = yourPid
    where = uid=yourContentElementID
  }
}

在使用 Fluid 的扩展中:

<f:cObject typoscriptObjectPath="lib.myContent" />

您还可以通过 viewHelper 传递值,请参见此处

于 2013-11-30T00:46:57.500 回答
1

以下脚本将使用 PI 基本扩展。

$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 的更多信息,您可以访问我的博客

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

于 2016-03-18T10:11:21.360 回答