Aem 如何在引用段落组件中隐藏路径

Aem 如何在引用段落组件中隐藏路径,aem,Aem,使用r参考段落组件我可以通过浏览其他段落系统的路径来显示它们的内容。如何隐藏参考段落的某些内容/路径?在所附图片中,作为示例,如何隐藏产品?我希望我的答案与此相关。 为此,您需要: 创建谓词,用于筛选要在对话中显示的页面 创建自己的小部件以选择页面(基于默认页面) 创建自己的引用组件(基于默认组件) 因此,谓词可以如下所示: import com.day.cq.commons.predicate.AbstractNodePredicate; import org.apache.commons.c

使用
r参考段落组件
我可以通过浏览其他段落系统的路径来显示它们的内容。如何隐藏
参考段落的某些
内容/路径
?在所附图片中,作为示例,如何隐藏
产品

我希望我的答案与此相关。 为此,您需要:

  • 创建谓词,用于筛选要在对话中显示的页面
  • 创建自己的小部件以选择页面(基于默认页面)
  • 创建自己的引用组件(基于默认组件)
  • 因此,谓词可以如下所示:

    import com.day.cq.commons.predicate.AbstractNodePredicate;
    import org.apache.commons.collections.Predicate;
    import org.apache.felix.scr.annotations.Component;
    import org.apache.felix.scr.annotations.Property;
    import org.apache.felix.scr.annotations.Service;
    import javax.jcr.Node;
    import javax.jcr.RepositoryException;
    
    @Component
    @Service
    @Property(name = "predicate.name", value = "myPredicate")
    public class MyPredicate extends AbstractNodePredicate implements Predicate {
    
        @Override
        public boolean evaluate(final Node node) throws RepositoryException {
            return node.isNodeType("nt:hierarchyNode") 
                && !node.getPath().startsWith("/content/geometrixx/en/products");
        }
    }
    
    返回节点。isNodeType(“nt:hierarchyNode”)
    取自CQ提供的另一个谓词,称为
    IsherArchNodePredicate
    。我们还添加了另一条语句——按路径过滤

    然后我们需要创建自己的小部件,在其中使用谓词。为此,请将“/libs/cq/ui/widgets/source/widgets/form/ParagraphReference.js”复制到您的项目中,并以下一种方式结束编辑:

  • 将小部件从ParagraphReference(CQ.form.ParagraphReference)重命名为MyParagraphReference(CQ.form.MyParagraphReference),并将其注册为新的xtype-MyParagraphReference
  • 将它添加到cq.widgets类别中,这样它将在作者模式下可用
  • 在此文件中,您将找到下一行:

    var loader = new CQ.Ext.tree.TreeLoader({
        "url":           CQ.HTTP.externalize("/content.ext.json"),
        "requestMethod": "GET",
        "baseParams":    { "predicate": "hierarchy", "depth": 0 },
        "baseAttrs":     { "iconCls": "page" }
    });
    
  • “谓词”:“层次结构”
    更改为
    “谓词”:“myPredicate”

  • 下一步将是我们的组件。将“/libs/foundation/components/reference”组件复制到您的项目中,并对其进行编辑对话框-将引用节点的xtype更改为“myparagraphreference”

    所以从这一刻起,您可以在sidekick中找到您的组件,而不会有节点“产品”

    另外,你可以用你的组件覆盖默认组件,覆盖默认小部件,而不是创建新的

    如果你有任何问题,请尽管问我。 祝你好运

    已更新