如何在 TYPO3 的数据库中创建记录和添加图像

How to create a record and add an image in database in TYPO3

我使用 TYPO3 版本 10.4.21 并为传单创建了自己的扩展。

在前端我看不到图片。

我现在在 js 文件中的代码:

var map = L.map('map', {crs: L.CRS.Simple});
var bounds = [[0,0], [750,1200]];
L.imageOverlay("../Parks/Park.png", bounds).addTo(map);
map.fitBounds(bounds);

图片的路径是对的,但是无法显示图片“Park.png”。
然后我以为我的数据库里没有数据

在ext.tables.sql中:

CREATE TABLE tx_interaktivekarte_domain_model_park (
    image int(11) DEFAULT NULL,
    bgcolor varchar(255) DEFAULT NULL,
    markers int(11) DEFAULT NULL,
    icon varchar(255) DEFAULT NULL,
    iccolor int(11) DEFAULT NULL,
    pin int(11) DEFAULT NULL,
    title varchar(255) DEFAULT NULL,
    marker int(11) unsigned NOT NULL DEFAULT '0'
);

CREATE TABLE tx_interaktivekarte_domain_model_marker (
    park int(11) unsigned DEFAULT '0' NOT NULL,
    title varchar(255) DEFAULT NULL,
    lat varchar(255) DEFAULT NULL,
    lon varchar(255) DEFAULT NULL,
    contenthtml text DEFAULT NULL,
    icon varchar(255) DEFAULT NULL,
    text text DEFAULT NULL
);

如何在数据库中添加图像?

我推荐了一个扩展:https://docs.typo3.org/p/onm/int-park/1.0/en-us/Installation/Index.html 并且写着“在任何文件夹下,创建一个数据库记录'Park',在其中添加图像。”。也许我必须在我的扩展中做同样的事情,但我不知道文本是什么意思。

要在传单上展示我的照片,我需要做什么?是数据库的原因吗?

我有权使用 phpMyAdmin 访问数据库。

感谢您的帮助。

在 TYPO3 中,您应该将图像存储为参考。 TYPO3 提供了一个文件抽象层,您和您的扩展程序应该使用它。

从 TCA 中的集成开始,请参阅:https://docs.typo3.org/m/typo3/reference-tca/10.4/en-us/ColumnsConfig/Type/Inline.html#file-abstraction-layer

前端输出可以参考这部分文档:https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Fal/UsingFal/Frontend.html

所以,两个短点:

  1. 通过 TCA 和参考在后端正确集成
  2. 通过 Image ViewHelper 和通过 Extbase 或通过 DataProcessing 获取 FileReference 对象在前端更正集成。

在 TYPO3 中,文件通常由 FAL(文件抽象层)处理。这意味着:你得到一个包含文件相关信息的记录。在引用文件的任何记录中,您都有符号数据库字段(其中只有一个计数器),并且您有 MM 记录,它将文件的 sys_file 记录连接到您的记录。

您的示例可能包含可以引用文件的特殊记录。

如果您开发扩展程序,您可以使用此 manual 获取有关文件和记录结构的更多信息。

您还可以查看其他记录的声明,例如您给出的扩展名。
目前最好的例子永远是核心的声明。
例如,如何在记录中包含文件,我建议使用 table tt_content 和字段 media.
重要的部分是 TCA 声明,因为它配置 'magic' 数据库 table 中的整数字段如何连接到文件。