Aem 如何在组件对话框中过滤标记。Adobe CQ

Aem 如何在组件对话框中过滤标记。Adobe CQ,aem,xtype,Aem,Xtype,我正在尝试过滤组件对话框中的标记。我知道我可以按名称空间对其进行过滤,但这只适用于根级别。我可以更深层次地过滤标记选择吗 例如: 等 标签 名称空间 物品类型 博客 新闻 资产类型 形象 录像带 我想过滤组件对话框中的标签,这样用户只能选择“文章类型”下的标签 谢谢,是和否。您可以根据widget API进行更深入的研究,但是widget JavaScript文件中存在一个“bug”,它无法工作。我有同样的问题,我只是覆盖这个JavaScript文件 小部件定义: <

我正在尝试过滤组件对话框中的标记。我知道我可以按名称空间对其进行过滤,但这只适用于根级别。我可以更深层次地过滤标记选择吗

例如:

    • 标签
      • 名称空间
        • 物品类型
          • 博客
          • 新闻
        • 资产类型
          • 形象
          • 录像带
我想过滤组件对话框中的标签,这样用户只能选择“文章类型”下的标签


谢谢,

是和否。您可以根据widget API进行更深入的研究,但是widget JavaScript文件中存在一个“bug”,它无法工作。我有同样的问题,我只是覆盖这个JavaScript文件

小部件定义:

<article jcr:primaryType="cq:Widget"
    fieldLabel="Article Type"
    name="./cq:tags"
    tagsBasePath="/etc/tags/namespace"
    xtype="tags">
    <namespaces jcr:primaryType="cq:WidgetCollection">
        <ns1 jcr:primaryType="nt:unstructured" maximum="1" name="article-type" />  
    </namespaces>  
</article>
<asset jcr:primaryType="cq:Widget"
    fieldLabel="Asset Type"
    name="./cq:tags"
    namespaces="[asset-type]"
    tagsBasePath="/etc/tags/offering"
    xtype="tags"/>

谢谢你,托马斯!您是否修改了libs文件夹中的CQ.tagging.js文件?还是你为它创建了一个覆盖?@mayurM我实际上覆盖了原始文件本身。不确定覆盖在这种情况下是否有效,因为这是通过clientlibrarymanager加载的JavaScript。但是你可以尝试一下,如果一个覆盖也可以工作,不确定我是否可以问这个问题,我也在处理CQ5中相同的标签对话框。有谁能建议我如何更改该对话框的宽度和高度属性吗。我尝试了tags.jsp和tagfield选项卡,但没有用。
// private - splits tagID into namespace and local (also works for title paths)
CQ.tagging.parseTag = function(tag, isPath) {
    var tagInfo = {
        namespace: null,
        local: tag,
        getTagID: function() {
            return this.namespace + ":" + this.local;
        }
    };

    var tagParts = tag.split(':');
    if (tagParts[0] == 'article-type' || tagParts[0] == 'asset-type') {
        var realTag = tagParts[1];
        var pos = realTag.indexOf('/');
        tagInfo.namespace = realTag.substring(0, pos).trim();
        tagInfo.local = realTag.substring(pos + 1).trim();
    }
    else {
        // parse tag pattern: namespace:local
        var colonPos = tag.indexOf(isPath ? '/' : ':');
        if (colonPos > 0) {
            // the first colon ":" delimits a namespace
            // don't forget to trim the strings (in case of title paths)
            tagInfo.namespace = tag.substring(0, colonPos).trim();
            tagInfo.local = tag.substring(colonPos + 1).trim();
        }
    }
    return tagInfo;
};