Extensão da pesquisa de ativos extending-assets-search

CAUTION
AEM 6.4 chegou ao fim do suporte estendido e esta documentação não é mais atualizada. Para obter mais detalhes, consulte nossa períodos de assistência técnica. Encontre as versões compatíveis here.

Você pode estender os recursos de pesquisa do Adobe Experience Manager Assets. Pronto para uso, Experience Manager Os ativos pesquisam ativos por cadeias de caracteres.

A pesquisa é feita por meio da interface do QueryBuilder para que a pesquisa possa ser personalizada com vários predicados. Você pode sobrepor o conjunto padrão de predicados no seguinte diretório: /apps/dam/content/search/searchpanel/facets.

Também é possível adicionar outras guias à Experience Manager Painel administrativo do Assets.

CAUTION
Em Experience Manager 6.4, a interface do usuário clássica está obsoleta. Para o anúncio, consulte Recursos obsoletos e removidos. É recomendável usar a interface habilitada para toque. Para obter as personalizações, consulte Aspectos de pesquisa.

Sobreposição overlaying

Para sobrepor os predicados pré-configurados, copie a variável facets nó a partir de /libs/dam/content/search/searchpanel para /apps/dam/content/search/searchpanel/ ou especifique outro facetURL na configuração do painel de pesquisa (o padrão é /libs/dam/content/search/searchpanel/facets.overlay.infinity.json).

screen_shot_2012-06-05at113619am

NOTE
Por padrão, a estrutura do diretório em / apps não existe e precisa ser criado. Certifique-se de que os tipos de nó correspondam aos valores de / libs.

Adição de guias adding-tabs

É possível adicionar outras guias de Pesquisa, configurando-as no Experience Manager Administrador de ativos Para criar guias adicionais:

  1. Criar a estrutura de pastas /apps/wcm/core/content/damadmin/tabs,se ainda não existir, e copie a variável tabs nó a partir de /libs/wcm/core/content/damadmin e cole-o.

  2. Crie e configure a segunda guia, conforme desejado.

    note note
    NOTE
    Ao criar um segundo siteadminsearchpanel, certifique-se de definir um id para evitar conflitos de formulário.

Criação de predicados personalizados creating-custom-predicates

Experience Manager Os ativos vêm com um conjunto de predicados predefinidos que podem ser usados para personalizar uma página de Compartilhamento de ativos. A personalização de um Compartilhamento de ativos dessa forma é abordada em Criação e configuração de uma página de compartilhamento de ativos.

Além de usar predicados pré-existentes, Experience Manager os desenvolvedores também podem criar seus próprios predicados usando o API do Query Builder.

Criar predicados personalizados requer conhecimento básico sobre o Estrutura de widgets.

A prática recomendada é copiar um predicado existente e ajustá-lo. Os predicados de amostra estão localizados em /libs/cq/search/components/predicates.

Exemplo: Criar um predicado de propriedade simples example-build-a-simple-property-predicate

Para criar um predicado de propriedade:

  1. Crie uma pasta de componentes no diretório de projetos, por exemplo /apps/geometrixx/components/titlepredicate.

  2. Adicionar content.xml:

    code language-xml
    <?xml version="1.0" encoding="UTF-8"?>
    <jcr:root xmlns:sling="https://sling.apache.org/jcr/sling/1.0"
     xmlns:cq="https://www.day.com/jcr/cq/1.0"
     xmlns:jcr="https://www.jcp.org/jcr/1.0"
        jcr:primaryType="cq:Component"
        jcr:title="Title Predicate"
        sling:resourceSuperType="foundation/components/parbase"
        allowedParents="[*/parsys]"
        componentGroup="Search"/>
    
  3. Adicionar titlepredicate.jsp.

    code language-xml
    <%--
      Sample title predicate component
    
    --%><%@ page import="java.util.Calendar" %><%
    %><%@include file="/libs/foundation/global.jsp"%><%
    
        // A unique id is necessary in case this predicate is inserted multiple times on the same page
        String elemId = "cq-predicate-" +  Long.toString(Calendar.getInstance().getTimeInMillis());
    
    %><div class="predicatebox">
    
        <div class="title">Title</div>
    
        <%-- The wrapper for the form elements. All items will be append to this wrapper. --%>
        <div id="<%= elemId %>" class="content"></div>
    
    </div><script type="text/javascript">
    
        CQ.Ext.onLoad(function() {
    
            var predicateName = "property";
            var propertyName = "jcr:content/metadata/dc:title";
            var elemId = "<%= elemId %>";
    
            // Get the page wide available QueryBuilder.
            var qb = CQ.search.Util.getQueryBuilder();
    
            // createId adds a counter to the predicate name - useful in case this predicate
            // is inserted multiple times on the same page.
            var id = qb.createId(predicateName);
    
            // Hidden field that defines the property to search for; in our case this
            // is the "dc:title" metadata. The name "property" (or "1_property", "2_property" etc.)
            // indicates the server to use the property predicate
            // (com.day.cq.search.eval.JcrPropertyPredicateEvaluator).
            qb.addField({
                "xtype": "hidden",
                "renderTo": elemId,
                "name": id,
                "value": propertyName
            });
    
            // The visible text field. The name has to be like the one of the hidden field above
            // plus the ".value" suffix.
            qb.addField({
                "xtype": "textfield",
                "renderTo": elemId,
                "name": id + ".value"
            });
    
            // Depending on the predicate additional parameters allow to configure the
            // predicate. Here we add an operation parameter to create a "like" query.
            // Again note the name set to the id and a suffix.
            qb.addField({
                "xtype": "hidden",
                "renderTo": elemId,
                "name": id + ".operation",
                "value": "like"
            });
    
        });
    
    </script>
    
  4. Para disponibilizar o componente, é necessário editá-lo. Para tornar um componente editável, no CRXDE, adicione um nó cq:editConfig de tipo primário cq:EditConfig. Para que possa remover parágrafos, adicione uma propriedade de vários valores cq:actions com um único valor DELETE.

  5. Navegue até o navegador e, na página de exemplo (por exemplo, press.html) alternar para o modo de design e ativar seu novo componente para o sistema de parágrafo do predicado (por exemplo, left).

  6. Em Editar , o novo componente agora está disponível no sidekick (encontrado no Pesquisar grupo). Insira o componente no Predicados e digite uma palavra de pesquisa, por exemplo, Diamante e clique na lupa para iniciar a pesquisa.

    note note
    NOTE
    Ao pesquisar, digite o termo exatamente, incluindo as letras maiúsculas e minúsculas corretas.

Exemplo: Criar um predicado de grupo simples example-build-a-simple-group-predicate

Para criar um predicado de grupo:

  1. Crie uma pasta de componentes no diretório de projetos, por exemplo /apps/geometrixx/components/picspredicate.

  2. Adicionar content.xml:

    code language-xml
    <?xml version="1.0" encoding="UTF-8"?>
    <jcr:root xmlns:sling="https://sling.apache.org/jcr/sling/1.0"
     xmlns:cq="https://www.day.com/jcr/cq/1.0"
     xmlns:jcr="https://www.jcp.org/jcr/1.0"
        jcr:primaryType="cq:Component"
        jcr:title="Image Formats"
        sling:resourceSuperType="foundation/components/parbase"
        allowedParents="[*/parsys]"
        componentGroup="Search"/>
    
  3. Adicionar titlepredicate.jsp:

    code language-java
    <%--
    
      Sample group predicate component
    
    --%><%@ page import="java.util.Calendar" %><%
    %><%@include file="/libs/foundation/global.jsp"%><%
    
        // A unique id is necessary in case this predicate is inserted multiple times on the same page.
        String elemId = "cq-predicate-" +  Long.toString(Calendar.getInstance().getTimeInMillis());
    
    %><div class="predicatebox">
    
        <div class="title">Image Formats</div>
    
        <%-- The wrapper for the form elements. All items will be append to this wrapper. --%>
        <div id="<%= elemId %>" class="content"></div>
    
    </div><script type="text/javascript">
    
        CQ.Ext.onLoad(function() {
    
            var predicateName = "property";
            var propertyName = "jcr:content/metadata/dc:format";
            var elemId = "<%= elemId %>";
    
            // Get the page wide available QueryBuilder.
            var qb = CQ.search.Util.getQueryBuilder();
    
            // Create a unique group ID; will return e.g. "1_group".
            var groupId = qb.createGroupId();
    
            // Hidden field that defines the property to search for  - in our case "dc:format" -
            // and declares the group of predicates. "property" in the name ("1_group.property")
            // indicates to the server to use the "property predicate"
            // (com.day.cq.search.eval.JcrPropertyPredicateEvaluator).
            qb.addField({
                "xtype": "hidden",
                "renderTo": "<%= elemId %>",
                "name": groupId + "." + predicateName, // 1_group.property
                "value": propertyName
            });
    
            // Declare to combine the multiple values using OR.
            qb.add(new CQ.Ext.form.Hidden({
                "name": groupId + ".p.or",  // 1_group.p.or
                "value": "true"
            }));
    
            // The options
            var options = [
                { "label":"JPEG", "value":"image/jpeg"},
                { "label":"PNG",  "value":"image/png" },
                { "label":"GIF",  "value":"image/gif" }
            ];
    
            // Build a checkbox for each option.
            for (var i = 0; i < options.length; i++) {
                qb.addField({
                    "xtype": "checkbox",
                    "renderTo": "<%= elemId %>",
                    // 1_group.property.0_value, 1_group.property.1_value etc.
                    "name": groupId + "." +  predicateName + "." + i + "_value",
                    "inputValue": options[i].value,
                    "boxLabel": options[i].label,
                    "listeners": {
                        "check": function() {
                            // Submit the search form when checking/unchecking a checkbox.
                            qb.submit();
                        }
                    }
                });
            }
    
        });
    
  4. Para disponibilizar o componente, é necessário editá-lo. Para tornar um componente editável, no CRXDE, adicione um nó cq:editConfig de tipo primário cq:EditConfig. Para que possa remover parágrafos, adicione uma propriedade de vários valores cq:actions com um único valor DELETE.

  5. Navegue até o navegador e, na página de exemplo (por exemplo, press.html) alternar para o modo de design e ativar seu novo componente para o sistema de parágrafo do predicado (por exemplo, left).

  6. Em Editar , o novo componente agora está disponível no sidekick (encontrado no Pesquisar grupo). Insira o componente no Predicados coluna.

Widgets de predicado instalados installed-predicate-widgets

Os predicados a seguir estão disponíveis como widgets ExtJS pré-configurados.

Predicado de texto completo fulltextpredicate

Propriedade
Tipo
Descrição
predicateName
String
Nome do predicado. O padrão é fulltext
searchCallback
Função
Retorno de chamada para acionar a pesquisa no evento keyup. O padrão é CQ.wcm.SiteAdmin.doSearch

PropertyPredicate propertypredicate

Propriedade
Tipo
Descrição
predicateName
String
Nome do predicado. O padrão é property
propertyName
String
Nome da propriedade JCR. O padrão é jcr:title
defaultValue
String
Valor padrão pré-preenchido.

PathPredicate pathpredicate

Propriedade
Tipo
Descrição
predicateName
String
Nome do predicado. O padrão é path
rootPath
String
Caminho raiz do predicado. O padrão é /content/dam
pathFieldPredicateName
String
O padrão é folder
showFlatOption
Booleano
Sinalizador para mostrar caixa de seleção search in subfolders. O padrão é true.

DatePredicate datepredicate

Propriedade
Tipo
Descrição
predicateName
String
Nome do predicado. O padrão é daterange
propertyname
String
Nome da propriedade JCR. O padrão é jcr:content/jcr:lastModified
defaultValue
String
Valor padrão pré-preenchido

OptionsPredicate optionspredicate

Propriedade
Tipo
Descrição
título
String
Adiciona um título superior adicional
predicateName
String
Nome do predicado. O padrão é daterange
propertyname
String
Nome da propriedade JCR. O padrão é jcr:content/metadata/cq:tags
colapso
String
Recolher nível. O padrão é level1
triggerSearch
Booleano
Sinalizador para acionar a pesquisa ao verificar. O padrão é false
searchCallback
Função
Retorno de chamada para acionar a pesquisa. O padrão é CQ.wcm.SiteAdmin.doSearch
searchTimeoutTime
Número
Tempo limite antes do acionamento de searchCallback. O padrão é 800 ms

Personalização dos resultados da pesquisa customizing-search-results

A apresentação dos resultados da pesquisa em uma página Compartilhamento de ativos é regida pela lente selecionada. Experience Manager Os ativos vêm com um conjunto de lentes predefinidas que podem ser usadas para personalizar uma página de Compartilhamento de ativos. A personalização de um Compartilhamento de ativos dessa forma é abordada em Criação e configuração de uma página de compartilhamento de ativos.

Além de usar lentes pré-existentes, Experience Manager os desenvolvedores também podem criar suas próprias lentes.

recommendation-more-help
4452738f-2bdf-4cd4-9b45-905a69d607ad