【问题标题】:How to create a new search form in AEM?如何在 AEM 中创建新的搜索表单?
【发布时间】:2017-02-22 18:35:11
【问题描述】:

我需要在搜索表单下显示自定义“资产管理员搜索栏”。我为“/libs/dam/gui/content/facets”创建了一个覆盖,并且能够编辑显示在资产搜索方面的字段。

现在当作者在我的项目文件夹 (/content/dam/myapps) 中搜索时,与从其他文件夹 (/content/dam) 搜索相比,构面项目需要是不同的列表

如何创建与现有类似的新“资产管理员搜索栏”,并在从相应的 dam 文件夹打开时强制 AEM 加载正确的表单?

【问题讨论】:

  • AEM 的哪个版本?
  • 嗨@VAr,我正在使用AEM 6.1
  • 看起来您需要自定义整个搜索表单组件 (/libs/granite/ui/components/foundation/contsys) 功能,因为当前行为与要加载的大坝路径选择过滤器(构面项)无关剩下的过滤器(分面项),所有的过滤器(分面项)都是单独触发资产显示。

标签: aem


【解决方案1】:

我可以自己解决这个问题,方法是创建一个 clientlib,使用 jquery 查找元素并手动删除它们。这是客户端库:

(function(document, $) {
    $(document).ready(function(){
        var $path = $("[data-type='path']");
        var $filetype =$("[data-type='options']");
        var $filesize = $("[data-type='filesize']");
        if($path.length == 0){
            return;
        }

        //defined in /libs/dam/gui/content/assets/jcr:content/body/content/aside/items/search
        var ASSET_RAIL_SEARCH = "#aem-assets-rail-search";

        var doSearch = function(){
            //$path.remove();
            if (window.location.href.indexOf("content/dam/geometrixx/portraits") > -1) { 
                $filesize.remove();
                $filetype.remove();

            } else {
                // remove custm properties. 
            }
        };

        if($.cookie("endor.innerrail.current") == ASSET_RAIL_SEARCH){
            doSearch();
        }

        $(document).on('click', '.js-endor-innerrail-toggle', function(e) {
            doSearch();
        });
    });
})(document, Granite.$);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-18
    相关资源
    最近更新 更多