1

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

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

哪个有效,但是:

  • 我怎样才能使它成为日期/时间字段?
  • 如何将其放置在给定资源的设置选项卡中?
4

2 回答 2

0

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

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

于 2014-05-27T07:17:01.967 回答
0

有两种不同的方式,各有优缺点。

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

优点:

  • 快速日历集成到 modResource 的选项卡之一
  • 出于安全原因,您可以使用表单自定义。这很容易,而且开箱即用。

缺点:

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

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

优点:

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

缺点:

  • 它更复杂,需要时间

PS 你可以查看Xlexicon github repo。在那里您可以找到使用 modResource 属性呈现新选项卡和操作的示例。您也可以检查modAvatar extra以获得 MODX。有一个使用现有选项卡进行操作的示例。

于 2014-05-29T08:12:57.973 回答