簡體   English   中英

TYPO3 - 將自定義內容元素數據存儲在自己的數據庫表中

[英]TYPO3 - store custom content element data in own database table

我想創建自定義內容元素。 我知道這基本上是如何工作的。 但是我問自己,是否有辦法將這些元素的配置數據存儲在一個像樣的數據庫表中?

我只知道擴展tt_content表並將我的數據存儲在那里的方法。 但是隨着元素和字段數量的增加, tt_content也會變得越來越大。 我想防止這種情況。

就在你問之前:我不想使用 FluidTYPO3。 ;) 我只想用基本的 TYPO3 功能來做。

不知道是否有更好的方法,但也許您可以創建沒有字段定義但使用 IRRE 和 min:1 和 max:1 的元素 - 但這並不是一個很好的方法。 更好的方法是盡可能多地重用 tt_content 中給出的字段,並且僅在確實需要時才添加更多字段。 也許您應該看看 EXT:mask 和 EXT:mask_export - 這兩個是創建自定義內容元素 (EXT:mask) 並將它們導出為自己的擴展 (EXT:mask_export) 的非常強大的工具,因此不需要這些生產中的兩個擴展,但僅在開發中。

創建內容元素時,您將始終需要使用數據庫表tt_content 當然,使用與自定義記錄的關系是有意義的,例如,如果您創建標簽、手風琴等元素...

您可以做的是重用現有的列,正如您所說的那樣,其中有很多列。 所以重用headerbodytextimage等字段......看看/sysext/frontend/Configuration/TCA/tt_content.php 好處是

  • 一個小一點的表,大部分時間與性能無關
  • 精心設計的字段,包括可翻譯成所有語言的標簽

您也可以重用場及其配置和覆蓋它overrideChildTca 請參閱文檔中的https://docs.typo3.org/typo3cms/TCAReference/ColumnsConfig/Properties/InlineOverrideChildTCa.html?highlight=overridechildtca

我建議你看看typo3 擴展掩碼 您可以創建自定義內容並將現有 tt_content 字段映射到新元素。 重用標題、正文、媒體、圖像字段是有意義的,因為后端預覽將自動采用。

我最近使用它,它的效果非常好! 這里有一些資源可以加入(只有德語)

如果您不需要在新字段上建立索引,那么用新字段炸毀 tt_content 並不是什么大問題。 它不會對性能產生太大影響。

如果您需要從您的內容到某些子記錄(手風琴、團隊列表等)擁有新的 1:N 關系,只需將它們添加為內聯元素(IRRE) 並將該字段添加到您的types-string

如果你需要一種新的數據,它應該是可過濾的、可排序的等等,你應該創建一種具有自己表結構的新記錄類型,並使用 extbase 插件來顯示該數據。

只要您只需要自定義內容,就可以擴展/重新映射 tt_content。

您可以為此使用鈎子。

在你的 ext_localconf.php 中:

$GLOBALS ['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass'][] = \Namespace\Hooks\Classname::class;

在類/鈎子/類名中:

<?php

namespace Namespace\Hooks;

use TYPO3\CMS\Core\SingletonInterface;
use TYPO3\CMS\Core\DataHandling\DataHandler;

class Classname implements SingletonInterface {

    public function processDatamap_beforeStart(&$dataHandler) {
        $datamap = &$dataHandler->datamap;
    }
}

在這里,您必須根據需要修改 $datamap。 文檔在這里: https : //docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ApiOverview/Typo3CoreEngine/Database/Index.html

親切的問候

這里解釋了https://learn-typo3.com/blog/news-detail/how-to-create-custom-content-elements-on-typo3 ,但是我更喜歡擴展和重用 tt_content 字段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM