5

管理者がデータベースにデータを保存できるようにする拡張機能を開発しています。

また、拡張機能の各インスタンスには、データベース内に独自のIDが必要です。拡張PHPでtt_contentuid(拡張インスタンスIDだと思います)を取得する方法はありますか?

4

4 に答える 4

12

配列内のすべての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");
于 2012-05-04T11:54:06.513 に答える
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);
于 2019-02-13T05:29:22.133 に答える
1

プラグインuidに答えて知っている更新の効果については、デバッグできます\TYPO3\CMS\Core\Utility\DebugUtility::debug($this->configurationManager->getContentObject()->data['uid'], 'parameter');

完了していない場合、デバッグはuid理由を表示せず、遅延読み込みconfigurationManagerを使用します。contentObject

これは動作し、TYPO38.7からテストされています

于 2019-06-28T13:56:57.733 に答える
0

$contentIdはtypo3バックエンドのコンテンツIDです

$content_rec = $GLOBALS["TYPO3_DB"]->exec_SELECTgetrows('header,bodytext','tt_content','uid='.$contentId);
$this->markerArray['###content###'] = $content_rec[0]['bodytext'];
于 2013-12-02T08:10:18.673 に答える