Utöka resurssökning

Du kan utöka sökfunktionerna i Adobe Experience Manager Assets. Experience Manager Resurser söker efter resurser efter strängar.

Sökningen görs via gränssnittet i QueryBuilder så att sökningen kan anpassas med flera predikat. Du kan täcka över standarduppsättningen med predikat i följande katalog: /apps/dam/content/search/searchpanel/facets.

Du kan också lägga till fler flikar i resurshanteringspanelen för Experience Manager.

FÖRSIKTIGHET

Från och med Experience Manager 6.4 är det klassiska användargränssnittet föråldrat. Information finns i Borttagna och borttagna funktioner. Du rekommenderas att använda användargränssnittet med pekskärmsfunktioner. Anpassningar finns i Sök efter ansikten.

Överläggning

Om du vill täcka över de förkonfigurerade predikaten kopierar du facets-noden från /libs/dam/content/search/searchpanel till /apps/dam/content/search/searchpanel/ eller anger en annan facetURL-egenskap i sökpanelens konfiguration (standardvärdet är /libs/dam/content/search/searchpanel/facets.overlay.infinity.json).

screen_shot_2012-06-05at113619am

OBSERVERA

Som standard finns inte katalogstrukturen under / apps och måste skapas. Kontrollera att nodtyperna matchar dem under / libs.

Lägga till tabbar

Du kan lägga till fler sökflikar genom att konfigurera dem i Experience Manager Resurser Admin. Så här skapar du ytterligare flikar:

  1. Skapa mappstrukturen /apps/wcm/core/content/damadmin/tabs,om den inte redan finns, och kopiera noden tabs från /libs/wcm/core/content/damadmin och klistra in den.

  2. Skapa och konfigurera den andra fliken efter behov.

    OBSERVERA

    När du skapar en andra platadminsearchpanel måste du ange en id-egenskap för att förhindra formulärkonflikter.

Skapa anpassade predikat

Experience Manager Resurser innehåller en uppsättning fördefinierade predikat som kan användas för att anpassa en resursdelssida. Att anpassa en resurs på det här sättet beskrivs i Skapa och konfigurera en resursdelssida.

Förutom att använda befintliga predikat kan Experience Manager-utvecklare även skapa egna predikat med API:t för frågebyggaren.

Det krävs grundläggande kunskaper om widgetramverket för att kunna skapa anpassade predikat.

Det bästa sättet är att kopiera ett befintligt predikat och justera det. Exempelpredikaten finns i /libs/cq/search/components/predicates.

Exempel: Skapa ett enkelt egenskapspredikat

Så här skapar du ett egenskapspredikat:

  1. Skapa en komponentmapp i projektkatalogen, till exempel /apps/geometrixx/components/titlepredicate.

  2. Lägg till content.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. Lägg till titlepredicate.jsp.

    <%--
      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. Om du vill göra komponenten tillgänglig måste du kunna redigera den. Om du vill göra en komponent redigerbar lägger du i CRXDE till en nod cq:editConfig av den primära typen cq:EditConfig. Du kan ta bort stycken genom att lägga till en egenskap med flera värden cq:actions med ett enda värde på DELETE.

  5. Navigera till webbläsaren och på exempelsidan (till exempel press.html) växla till designläge och aktivera den nya komponenten för prediate paragraph system (till exempel left).

  6. I redigeringsläget är den nya komponenten nu tillgänglig i sidesparläget (finns i gruppen Sök). Infoga komponenten i kolumnen Predicates och skriv ett sökord, till exempel Diamant, och klicka på förstoringsglaset för att starta sökningen.

    OBSERVERA

    När du söker måste du skriva in ordet exakt, inklusive rätt skiftläge.

Exempel: Skapa ett enkelt grupppredikat

Så här skapar du ett grupppredikat:

  1. Skapa en komponentmapp i projektkatalogen, till exempel /apps/geometrixx/components/picspredicate.

  2. Lägg till content.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. Lägg till titlepredicate.jsp:

    <%--
    
      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. Om du vill göra komponenten tillgänglig måste du kunna redigera den. Om du vill göra en komponent redigerbar lägger du i CRXDE till en nod cq:editConfig av den primära typen cq:EditConfig. Du kan ta bort stycken genom att lägga till en egenskap med flera värden cq:actions med ett enda värde på DELETE.

  5. Navigera till webbläsaren och på exempelsidan (till exempel press.html) växla till designläge och aktivera den nya komponenten för prediate paragraph system (till exempel left).

  6. I redigeringsläget är den nya komponenten nu tillgänglig i sidesparläget (finns i gruppen Sök). Infoga komponenten i kolumnen Predicates.

Installerade prediktiva widgetar

Följande predikat är tillgängliga som förkonfigurerade ExtJS-widgetar.

FulltextPredicate

Egenskap Typ Beskrivning
predikateName Sträng Predikatets namn. Standardvärdet är fulltext
searchCallback -funktion Återanrop för att utlösa sökning vid händelse keyup. Standardvärdet är CQ.wcm.SiteAdmin.doSearch

PropertyPredicate

Egenskap Typ Beskrivning
predikateName Sträng Predikatets namn. Standardvärdet är property
propertyName Sträng Namn på JCR-egenskapen. Standardvärdet är jcr:title
defaultValue Sträng Förfyllt standardvärde.

PathPredicate

Egenskap Typ Beskrivning
predikateName Sträng Predikatets namn. Standardvärdet är path
rootPath Sträng Predikatets rotsökväg. Standardvärdet är /content/dam
pathFieldPredicateName Sträng Standardvärdet är folder
showFlatOption Boolesk Flagga som visar kryssrutan search in subfolders. Standardvärdet är true.

DatePredicate

Egenskap Typ Beskrivning
predikateName Sträng Predikatets namn. Standardvärdet är daterange
egenskapsnamn Sträng Namn på JCR-egenskapen. Standardvärdet är jcr:content/jcr:lastModified
defaultValue Sträng Förfyllt standardvärde

OptionsPredicate

Egenskap Typ Beskrivning
title Sträng Lägger till ytterligare en rubrik
predikateName Sträng Predikatets namn. Standardvärdet är daterange
egenskapsnamn Sträng Namn på JCR-egenskapen. Standardvärdet är jcr:content/metadata/cq:tags
komprimera Sträng Komprimera nivå. Standardvärdet är level1
triggerSearch Boolesk Flagga för att utlösa sökning vid kontroll. Standardvärdet är false
searchCallback -funktion Återanrop för att utlösa sökning. Standardvärdet är CQ.wcm.SiteAdmin.doSearch
searchTimeoutTime Siffra Timeout innan searchCallback aktiveras. Standardvärdet är 800 ms

Anpassa sökresultat

Presentationen av sökresultaten på en resursdelningssida styrs av det valda objektivet. Experience Manager Resurser innehåller en uppsättning fördefinierade objektiv som kan användas för att anpassa en resursdelssida. Att anpassa en resurs på det här sättet beskrivs i Skapa och konfigurera en resursdelssida.

Förutom att använda befintliga linser kan Experience Manager-utvecklare även skapa egna linser.

På denna sida