获取tt_content uid

时间:2012-05-04 11:31:16

标签: php typo3

我正在开发一个扩展程序,允许管理员将内容保存到数据库中。

我希望扩展的每个实例都应该在数据库中拥有它自己的Id。 有没有办法在扩展php中获取tt_content uid(我猜是扩展实例Id)。

4 个答案:

答案 0 :(得分:11)

您获取数组中的所有tt_content数据:

$this->cObj->data

即:

$uidOfCE = $this->cObj->data['uid'];

如果你正在使用Extbase,你需要先获取内容对象,即:

$this->contentObj = $this->configurationManager->getContentObject();
debug($this->contentObj->data, "current tt_content's data");

答案 1 :(得分:0)

$ contentId是typo3后端的内容ID

$content_rec = $GLOBALS["TYPO3_DB"]->exec_SELECTgetrows('header,bodytext','tt_content','uid='.$contentId);
$this->markerArray['###content###'] = $content_rec[0]['bodytext'];

答案 2 :(得分:0)

这就是方法(在TYPO3 9.5.4中测试)

  

这将返回整个 HTML 内容,您可以直接呈现

$conf = [
    'tables' => 'tt_content',
    'source' => $uid, //uid of tt_content
    'dontCheckPid' => 1
];
$html = $GLOBALS['TSFE']->cObj->cObjGetSingle('RECORDS', $conf);

答案 3 :(得分:0)

要获得答案并了解插件uid的更新效果,可以调试\TYPO3\CMS\Core\Utility\DebugUtility::debug($this->configurationManager->getContentObject()->data['uid'], 'parameter');

如果未完成,则调试不会显示uid,因为configurationManagercontentObject使用延迟加载。

这可以通过TYPO3 8.7进行测试,