使用rference paragraph component
我可以通过浏览到其路径来显示其他段落系统中的内容。如何为content/paths
隐藏某些reference paragraph
?在附图中,如何隐藏Products
?
答案 0 :(得分:2)
我希望我的回答是相关的。 所以要做到这一点,你需要:
所以你的谓词看起来像这样:
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");
}
}
行return node.isNodeType("nt:hierarchyNode")
取自CQ提供的另一个谓词,称为IsHierarchyNodePredicate
。我们添加了另一个声明 - 按路径过滤。
然后我们需要创建自己的小部件,我们将使用我们的谓词。为此,请复制" /libs/cq/ui/widgets/source/widgets/form/ParagraphReference.js"进入你的项目,然后以下一个方式编辑它:
在此文件中,您将找到下一行:
var loader = new CQ.Ext.tree.TreeLoader({
"url": CQ.HTTP.externalize("/content.ext.json"),
"requestMethod": "GET",
"baseParams": { "predicate": "hierarchy", "depth": 0 },
"baseAttrs": { "iconCls": "page" }
});
将"predicate": "hierarchy"
更改为"predicate": "myPredicate"
下一步将是我们的组件。复制" / libs / foundation / components / reference"组件到您的项目并编辑它对话框 - 将参考节点的xtype更改为" myparagraphreference"。
因此,从这一刻起,您可以在伙伴中找到您的组件,并且不会有节点"产品"。
P.S。:您也可以只使用您的默认组件覆盖默认组件并覆盖默认小组件,而不是创建新组件。
如果您有任何疑问 - 请不要犹豫,问我。 祝你好运。
<强>已更新强>