【问题标题】:Magnolia compare and change Property's value logic? (in Java)Magnolia 比较和更改 Property 的值逻辑? (在 Java 中)
【发布时间】:2014-10-17 10:22:27
【问题描述】:

我正在尝试比较和更改 Magnolia 5.3.2 CE(社区版)中的 content 属性的值,在日期小于今天的日期之后。

我只是想在这里验证一下我的逻辑,下面会解释一些流程。

流程:

目前我设法将 .xls 文件集成到 magnolia 内容应用程序中。从 .xls 文件中提取的 content 属性的名称之一,我只是将其命名为“过期日期”及其 ,例如“2014 年 10 月 17 日”。

之后,有一个名为“Status”的内容属性,其为“A”。 内容属性“过期日期”和“状态”在同一个节点下。如果“过期日期”小于今天日期,则将“状态”值从“A”更改为“X”

我提出了两个概念:

1.) 每次创建每个内容应用程序时,我都会查找并搜索其内容属性的名称“过期日期”。然后获取它的值并与 todayDate() 进行比较。如果“过期日期”todayDate(),则将同一节点下的“状态”改为“X”。

2.) 我为 Scheduler Module 编写了一个函数来循环并检查 Node 中的所有 content 属性的 Name“过期日期” >,然后如果“过期日期”todayDate(),将同一节点下的“状态”改为“X”。

如果有更好的想法,请告诉我...谢谢。 **如果有什么不清楚的地方,我会在后面补充。

【问题讨论】:

    标签: java content-management-system magnolia


    【解决方案1】:

    你用这个属性做什么?只是在工作台中显示状态吗?为什么不编写列格式化程序来动态计算状态而不是在 repo 中更新属性?

    【讨论】:

    • 我需要其中一个属性值进行比较,然后在同一个子节点下更新另一个属性值,如果我使用列格式化程序动态计算状态,会不会影响性能?
    • 值总是只为当前显示的行计算 - 最多大约 20-30 行。我认为您不会看到任何性能影响。但是,如果您在其他地方需要此值,那么只需工作台然后继续存储它,这似乎是很多工作却没有什么好处。即使您需要过滤所有到期任务,您也可以运行 JCR 查询,该查询将返回 today() 之后的所有记录,等等。
    • 哇,我从来没想过……这真的很有帮助,我会先重建我的理论,然后再开始编码……
    猜你喜欢
    • 1970-01-01
    • 2020-03-24
    • 1970-01-01
    • 1970-01-01
    • 2020-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多