这个 TYPO3 扩展使前端开发人员能够在纯 Fluid 中创建封装组件。通过定义清晰的集成接口(API),前端开发人员可以独立于后端开发人员实现组件。目标是创建高度可重用的演示组件,该组件没有副作用并且不负责数据采集。
长话;博士?立即开始
流体模板通常由三种成分组成:
此外, ViewHelpers提供基本的控制结构并封装高级渲染和数据操作,否则这些是不可能的。它们被定义为 PHP 类。
该扩展为 Fluid 添加了另一种成分: Components 。
fluid components与 ViewHelpers 类似。主要区别在于它们只能在 Fluid 中定义。在某种程度上,它们与 Fluid 的偏音非常相似,但它们有一些优点:
以下组件实现了一个简单的预告片元素:
组件/TeaserCard/TeaserCard.html
< fc : component >
< fc : param name = " title " type = " string " />
< fc : param name = " link " type = " Typolink " />
< fc : param name = " icon " type = " string " optional = " 1 " />
< fc : param name = " theme " type = " string " optional = " 1 " default = " light " />
< fc : renderer >
< a href = " {link} " class = " {component.class} {component.class}-{theme} " >
< h3 class = " {component.prefix}title " >{title}</ h3 >
< f : if condition = " {content} " >
< p class = " {component.prefix}description " >< fc : slot /></ p >
</ f : if >
< f : if condition = " {icon} " >
< i class = " icon icon-{icon} {component.prefix}icon " ></ i >
</ f : if >
</ a >
</ fc : renderer >
</ fc : component >
在模板中使用以下代码来呈现有关 TYPO3 的预告卡:
{namespace my=VENDORMyExtensionComponents}
< my : teaserCard
title = " TYPO3 "
link = " https://typo3.org "
icon = " typo3 "
>
The professional, flexible Content Management System
</ my : teaserCard >
结果是以下 HTML:
< a href = " https://typo3.org " class = " smsExampleTeaserCard smsExampleTeaserCard-light " >
< h3 class = " smsExampleTeaserCard_title " >TYPO3</ h3 >
< p class = " smsExampleTeaserCard_description " >The professional, flexible Content Management System</ p >
< i class = " icon icon-typo3 smsExampleTeaserCard_icon " ></ i >
</ a >
(改进了缩进以获得更好的可读性)
从 TER 或通过 Composer 安装扩展:
composer require sitegeist/fluid-components
在ext_localconf.php中定义组件名称空间:
$ GLOBALS [ ' TYPO3_CONF_VARS ' ][ ' EXTCONF ' ][ ' fluid_components ' ][ ' namespaces ' ][ ' VENDOR \ MyExtension \ Components ' ] =
TYPO3 CMS Core Utility ExtensionManagementUtility:: extPath ( ' my_extension ' , ' Resources/Private/Components ' );
使用您自己的供应商名称作为VENDOR
,使用扩展名称作为MyExtension
,使用扩展密钥作为my_extension
。
通过创建包含文件MyComponent.html的目录MyComponent,在EXT:my_extension/Resources/Private/Components/中创建第一个组件
根据组件的外观如何?定义并应用您的组件。扩展文档也很有帮助。
查看流体样式指南( fluid components的实时样式指南)和fluid components Linter,以提高组件的质量和可重用性。
如果您有任何疑问、需要支持或想要讨论 TYPO3 中的组件,请随时加入#ext-fluid_components。
功能参考
操作方法
该软件包的开发和公开发布由我的雇主 https://sitegeist.de 慷慨赞助。