繁体   English   中英

获取 tt_content uid

[英]Get tt_content uid

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

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

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

$this->cObj->data

IE:

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

如果您使用的是 Extbase,当然需要先获取内容对象,即:

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

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

获取控制器内的当前内容 ID

$this->configurationManager->getContentObject()->data['uid'];

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

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

对于更新答案和知道插件 uid 的效果,您可以调试\\TYPO3\\CMS\\Core\\Utility\\DebugUtility::debug($this->configurationManager->getContentObject()->data['uid'], 'parameter');

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

这从 TYPO3 8.7 开始工作和测试

$contentId 是typo3 后端的内容ID

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM