用途:面向 Joomla 5/6 开发者,讲解如何在不扩展核心的前提下,为文章、用户、联系人和分类等元素添加自定义属性,涵盖创建、管理与渲染。
主要能力:支持 16 种字段类型,包括 Text、Textarea、Editor、List、Checkboxes、Radio、User、User Groups、Media、List of images、Color、Calendar、Integer、URL、SQL、Repeatable。可通过 FieldsHelper 以编程方式获取与渲染字段,涉及 getFields() 与 render()。字段定义存于 #__fields,取值存于 #__fields_values。
使用方式:后台进入 Content -> Fields(或 Users/Contacts -> Fields)新建字段,设置 Title、Name、Type、Field Group、Category、类型参数、验证与访问级别并发布。代码中先注册并加载 helper:JLoader::register('FieldsHelper', JPATH_ADMINISTRATOR . '/components/com_fields/helpers/fields.php');,再调用 FieldsHelper::getFields('com_content.article', $article, true)。模板中可用 $this->item->jcfields 渲染,或按 name 建立索引直接取值;可创建布局覆盖 templates/yourtemplate/html/layouts/com_content/fields/render.php。模块内可在 helper 中加载文章字段后再渲染。自定义组件可通过插件实现 onContentPrepareForm 注入字段。
验证与事件:使用 validate 参数(如 required、integer、email、url、color)与 Filter(NOHTML、RAW、SAFEHTML、STRING、WORD、ALNUM)。系统事件包括 onContentPrepareForm、onContentPrepareData、onContentValidateForm、onContentAfterSave。
适用场景:文章扩展属性、用户资料补充、联系人信息、分类附加数据等。
限制:字段需已发布、分类匹配且用户具备访问权限才会出现在前台表单;技术名称建议 snake_case;反复调用 getFields() 建议缓存以优化性能;具体版本兼容性、完整模块与组件示例见 references/ 目录,资料未提供其他细节。