TYPO3:插件和自定义内容元素之间的区别?

TYPO3: Difference between Plugin and Custom Content Element?

我必须实现媒体下载功能。后端用户应该能够上传媒体文件,设置标题、描述、发布日期等等...结果应该是可见的,并且文件可以在前端下载。

我不确定实现此目的的最佳方法是什么:插件或自定义内容元素? 两者之间的主要区别是什么?什么是我任务的最佳解决方案?

插件用于更复杂地呈现具有不同视图的记录(例如存储在存储文件夹中某处的记录的列表和详细视图)。如果所有相关数据都存储在记录中,则应首选自定义内容元素 (CE)。

对于您的情况,内容元素似乎是正确的解决方案。这种自定义内容元素也可以使用 "mask" 等有用的扩展轻松创建,创建自定义 CE 可能需要 10 分钟。 https://typo3.org/extensions/repository/view/mask

如果我理解正确的话。 您可以将插件定义为 "list_type" 的类型,或定义为 "CType" 的类型(如果您需要编写特定功能的代码,这很难或无法使用例如流体内容实现),甚至可以定义为另一种菜单类型定义为"menu_type".

这些所有的类型都可以用同样的方式制作插件,这种类型的分离基本上只是为了让它出现在不同的选择器中。所以:

  • 您定义为 menu_type 的插件将在 "Menu type" 选择器的 "Special Menus" 内容类型中被选中,
  • 定义为list_type(所谓的)是在"Selected plugin"选择器中选择"Insert Plugin"内容,
  • 定义为 CType 是全新的内容类型。

但它们的工作方式相同,使用 ext_tables 插件注册调用中的参数很容易切换:

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPlugin( ['Label', $_EXTKEY.'_myPluginSuffix'], 'CType');

1) 您可以使用 "File Link" 内容元素并根据您的需要调整其 TypoScript (tt_content.uploads.20.renderObj)。

2) 您可以使用 file_list 扩展并根据您的需要调整其 Fluid 模板