如何将表单字段添加到modx 2.2.14管理器页面

时间:2014-05-26 17:21:35

标签: php extjs modx-revolution modx-resources

我试图将editiedon字段添加到modx管理器页面,以便我的用户可以使用这些文档作为起点来编辑值:

http://rtfm.modx.com/revolution/2.x/case-studies-and-tutorials/adding-custom-fields-to-manager-forms

哪种方法有效,但是:

  • 我该如何制作日期/时间字段?
  • 如何将其放在给定资源的设置标签中?

2 个答案:

答案 0 :(得分:0)

第一个问题的答案不是input type="date"吗?我不确定你会怎么做第二部分,除非你设法得到渲染的内容并以某种方式将其拼接在那里(除非是som隐藏了指定的方法)。

否则,您始终可以使用常规表单自定义来解决此问题。您需要创建Date类型的电视,并通过片段为其提供自定义默认数据,该片段仅获取当前资源editedon值。我想你只需要更新资源/更新表单集。在该集的模板变量选项卡下,确保您的电视已连接并将其区域值更改为“modx-resource-settings”

答案 1 :(得分:0)

有两种不同的方式有自己的专业和优点;缺点

首先,您可以将模板变量与日期类型一起使用。它为日期提供了正确的ExtJS组件,您将在电视选项卡中看到日历。 如果您选择此方法,则必须创建一个在 OnBeforeDocFormSave 事件上调用的插件。在那里,您可以从电视中重新定义已编辑的modResource属性,并以适当的方式保存。您也可以调用另一个事件( OnLoadWebDocument )。如果你想看到正确的数据,你可以在电视上设置modResource editedon属性。

优点:

  • 快速日历集成到modResource选项卡
  • 之一
  • 出于安全原因,您可以使用表单自定义。从包装盒开始,它非常简单。

缺点:

  • 使modResource更新过程复杂化的附加电视

另一种方法更复杂(你需要ExtJS的技能)。 创建在 OnDocFormPrerender 事件上调用的插件。您可以在那里将JS添加到modResource页面。您的脚本应该在文档中呈现新的自定义选项卡,您可以在其中添加包含日历的特殊字段。因此,MODX中有特殊的ExtJS组件用于这些目的。当然,您需要第一种方法的事件来加载和更新editedon值。 此外,您只需将特殊字段渲染到现有选项卡,而不是创建新选项卡并将自定义字段呈现给它。

优点:

  • 你不再需要电视了
  • 很灵活

缺点:

  • 它更复杂,需要时间

P.S。您可以查看Xlexicon github repo。在那里,您可以找到使用modResource属性渲染新选项卡和操作的示例。 您也可以查看modAvatar extra了解MODX。有一个使用现有选项卡进行操作的示例。