我正在尝试将 editiedon 字段添加到 modx 管理器页面,以便我的用户可以使用以下文档作为起点来编辑值:
http://rtfm.modx.com/revolution/2.x/case-studies-and-tutorials/adding-custom-fields-to-manager-forms
哪个有效,但是:
- 我怎样才能使它成为日期/时间字段?
- 如何将其放置在给定资源的设置选项卡中?
我正在尝试将 editiedon 字段添加到 modx 管理器页面,以便我的用户可以使用以下文档作为起点来编辑值:
http://rtfm.modx.com/revolution/2.x/case-studies-and-tutorials/adding-custom-fields-to-manager-forms
哪个有效,但是:
不是input type="date"
第一个问题的答案吗?我不确定你将如何做第二部分,除非你设法获得渲染的内容并以某种方式将其拼接到那里(除非有一些隐藏的指定方法)。
否则,您始终可以通过常规表单自定义来解决它。您需要创建一个日期类型的电视,并通过一个片段为其提供自定义默认数据,该数据仅获取当前资源editedon
值。我猜你只需要更新资源/更新表单集。在集合的模板变量选项卡下,确保您的电视已连接并将其区域值更改为“modx-resource-settings”
有两种不同的方式,各有优缺点。
首先,您可以使用具有 Date 类型的模板变量。它为您提供了正确的 ExtJS 日期组件,您将在 TV 的选项卡中看到日历。如果您选择此方法,则必须创建一个在OnBeforeDocFormSave事件上调用的插件。您可以在那里重新定义电视上的 modResource 编辑属性,它将以正确的方式保存。您也可以调用另一个事件(OnLoadWebDocument)。如果您想查看正确的数据,您可以在电视上设置 modResource 编辑属性。
优点:
缺点:
另一种方法更复杂(你需要 ExtJS 的技能)。创建调用OnDocFormPrerender事件的插件。您可以将 JS 添加到那里的 modResource 页面。您的脚本应该将新的自定义选项卡呈现到文档中,您可以在其中添加带有日历的特殊字段。因此,MODX 中有专门的 ExtJS 组件用于这些目的。当然,您需要来自第一种方法的事件来加载和更新编辑值。您也可以只向现有选项卡呈现特殊字段,而不是创建新选项卡并将自定义字段呈现给它。
优点:
缺点:
PS 你可以查看Xlexicon github repo。在那里您可以找到使用 modResource 属性呈现新选项卡和操作的示例。您也可以检查modAvatar extra以获得 MODX。有一个使用现有选项卡进行操作的示例。