Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typo3 类型3:插件和自定义内容元素之间的区别?_Typo3_Typoscript_Fluid_Extbase - Fatal编程技术网

Typo3 类型3:插件和自定义内容元素之间的区别?

Typo3 类型3:插件和自定义内容元素之间的区别?,typo3,typoscript,fluid,extbase,Typo3,Typoscript,Fluid,Extbase,我必须实现媒体下载功能。后端用户应该能够上传媒体文件,设置标题,描述,发布日期等。。。结果应该是可见的,文件可以在前端下载 我不确定实现这一点的最佳方法是什么:插件还是自定义内容元素? 这两者之间的主要区别是什么?对于我的任务来说,什么是最好的解决方案 插件用于更复杂地呈现具有不同视图的记录(例如存储文件夹中某处存储的记录的列表和详细视图)。如果所有相关数据都存储在记录中,则应首选自定义内容元素(CE) 对于您的情况,内容元素似乎是正确的解决方案。这种自定义内容元素也可以通过“mask”等有用的

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

我不确定实现这一点的最佳方法是什么:插件还是自定义内容元素?
这两者之间的主要区别是什么?对于我的任务来说,什么是最好的解决方案

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

对于您的情况,内容元素似乎是正确的解决方案。这种自定义内容元素也可以通过“mask”等有用的扩展轻松创建,创建自定义内容元素可能需要10分钟。
如果我理解你的话。 您可以将插件定义为“列表类型”或“CType”(如果您需要编写特定功能的代码,这很难或无法使用流体内容实现),甚至可以定义为“菜单类型”的另一种菜单类型

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

  • 定义为菜单类型的插件将在“菜单类型”选择器的“特殊菜单”内容类型中选择
  • 定义为“所选插件”选择器中“插入插件”内容中选择的列表类型(所谓)
  • 定义为CType是一种全新的内容类型
但它们的工作方式相同,使用ext_tables插件寄存器调用中的参数可以轻松切换:

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPlugin( ['Label', $_EXTKEY.'_myPluginSuffix'], 'CType');
1) 您可以使用“文件链接”内容元素,并根据需要调整其打字脚本(
tt_content.uploads.20.renderObj


2) 您可以使用扩展并根据需要调整其流体模板

好的,谢谢。我尝试了掩码扩展,但我认为它没有为我的任务提供足够的功能。我必须创建一个“预览”,并在其上生成水印和其他一些东西。我想我必须使用定制的CE和数据处理器?对于带有水印的图像,你可以创建一个打字稿对象,然后用f:cOject在Fluid内部调用它。当然,数据处理器也是可能的。如果变得复杂,您可以使用plugin创建一个扩展;-)我想我会选择插件解决方案,因为它更适合未来,我们永远不知道:)@Paul Beck:我会修改你的答案,从“…(CE)应该优先用于查看一些文本或图像,而不需要复杂的逻辑”到“…(CE)应该优先用于所有相关数据都存储在记录中。”其他记录可以参考,但它是静态的,而不是动态的,比如“执行查询并显示全部”或“显示URL中给定uid的记录”。渲染可能包括复杂的逻辑。您甚至可以提供新的ViewHelper,因为CE应该在扩展中提供,这样它可以更容易地转移到另一个安装。谢谢Bernd Wilke,您是对的。自从处理器被添加到FLUIDTEMPLATE之后,您当然可以在定制CEs中执行复杂的逻辑。