【问题标题】:Get tt_content uid获取 tt_content uid
【发布时间】:2012-05-13 22:45:21
【问题描述】:

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

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

【问题讨论】:

    标签: php typo3


    【解决方案1】:

    这是方法(在 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);
    

    【讨论】:

      【解决方案2】:

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

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

      这在 TYPO3 8.7 中有效并经过测试

      【讨论】:

        【解决方案3】:

        $contentId 是typo3 后端的内容ID

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

        【讨论】:

          【解决方案4】:

          你在数组中获取所有 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");
          

          【讨论】:

          • 另外,我们如何在 Typoscript 中获取内容 ID,例如。 <div class="module" id="<need content ID here>">
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-11-14
          • 1970-01-01
          • 2018-04-18
          相关资源
          最近更新 更多