Magnolia defaultAction vs从动作栏中单击实际动作获取JCR项目的区别

时间:2016-05-09 04:00:40

标签: magnolia

在Magnolia中,获取相关项的JCR节点(relatedItem.getJcrItem())对于以下两种情况是否有区别:

  1. 有一个defaultAction,它是为操作栏定义的“编辑项目”。双击工作台列表中的项目,将打开一个对话框以允许我进行编辑。然后我点击“取消”。然后我单击操作栏中的“添加项目”。

  2. 我单击该项目,然后单击“编辑项目”,将打开一个对话框以允许我进行编辑。然后我点击“取消”。然后我单击操作栏中的“添加项目”。

  3. 我注意到当前在场景1中,JCR节点将是我之前选择的项目的节点,但不应该是这种情况。应该是一个新节点,因此这种情况下的relatedItem.getJcrItem()应该是将添加新项的父节点项。

    方案2在调用relatedItem.getJcrItem()时显示正确的节点。

    由于此行为,方案1会将新项目保存为先前所选项目的子节点。

    我希望我能清楚地解释清楚。有人对这个问题有任何想法吗?

    谢谢!

1 个答案:

答案 0 :(得分:0)

正如您在上面的评论中所提到的,由于文件夹结构基本上,Magnolia通过为添加操作添加可用性规则来防止这些错误。它会保留您的选择,因此如果未选择文件夹,则无法使用添加操作。如果你想实现这一目标,那么你应该创建自己的动作,取消后你应该选择给定项目的父节点。

干杯,