Sie sehen sich Hilfeinhalte der folgenden Version an:
- 6.4
- 6.2
- Ältere Versionen
Sie können die Suchfunktionen von Adobe Experience Manager (AEM) Assets erweitern. Standardmäßig sucht AEM Assets anhand von Zeichenfolgen nach Assets.
Die Suchfunktion wird über die QueryBuilder-Schnittstelle durchgeführt und lässt sich mit mehreren Eigenschaften anpassen. Sie können den Standardsatz der Eigenschaften im folgenden Verzeichnis überlagen: /apps/dam/content/search/searchpanel/facets.
Sie können dem Admin-Bereich von AEM Assets zusätzliche Registerkarten hinzufügen.
Vorsicht:
Seit Einführung von AEM 6.4 wird die klassische Benutzeroberfläche nicht mehr unterstützt. Eine entsprechende Ankündigung finden Sie unter Veraltete und entfernte Funktionen. Es empfiehlt sich, die Touch-optimierte Benutzeroberfläche zu verwenden. Informationen zu Anpassungen finden Sie unter Suchfacetten.
Um die vorkonfigurierten Eigenschaften zu überlagern, kopieren Sie den Knoten Facetten aus /libs/dam/content/search/searchpanel in /apps/dam/content/search/searchpanel/ oder geben Sie eine weitere facetURL-Eigenschaft in die Konfiguration des Suchfensters ein (standardmäßig in /libs/dam/content/search/searchpanel/facets.overlay.infinity.json).

Hinweis:
Standardmäßig ist die Verzeichnisstruktur unter /apps nicht vorhanden und muss erstellt werden. Stellen Sie sicher, dass die Knotentypen den Typen unter /libs entsprechen.
Sie können zusätzliche Suchregisterkarten hinzufügen, indem Sie sie im Admin-Bereich von AEM Assets konfigurieren. So erstellen Sie weitere Registerkarten:
AEM Assets umfasst einen Satz vordefinierter Eigenschaften, mit denen eine Asset-Freigaben-Seite angepasst werden kann. Diese Art der Anpassung einer Asset-Freigabe wird unter Erstellen und Konfigurieren einer Asset-Freigaben-Seite beschrieben.
AEM-Entwickler können neben den bereits vorhandenen Eigenschaften auch eigene Prädikate erstellen. Hierfür können sie die QueryBuilder-API verwenden.
Um benutzerdefinierte Eigenschaften erstellen zu können, benötigen Sie Grundlagenkenntnisse über das Widget-Framework.
Als Best Practice hat es sich erwiesen, eine vorhandene Eigenschaft zu kopieren und anzupassen. Beispiel-Eigenschaften befinden sich unter /libs/cq/search/components/predicates.
-
<?xml version="1.0" encoding="UTF-8"?> <jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" jcr:primaryType="cq:Component" jcr:title="Title Predicate" sling:resourceSuperType="foundation/components/parbase" allowedParents="[*/parsys]" componentGroup="Search"/>
-
<%-- 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>
-
Sie müssen die Komponente bearbeiten, um sie verfügbar zu machen. Um eine Komponente bearbeitbar zu machen, fügen Sie in CRXDE einen Knoten cq:editConfig des primären Typs cq:EditConfig hinzu. Um Absätze entfernen zu können, fügen Sie eine cq:actions-Mehrwerteigenschaft mit DELETE als einzigem Wert hinzu.
-
Im Modus Bearbeiten ist die neue Komponente jetzt im Sidekick verfügbar (in der Suchgruppe). Fügen Sie die Komponente in die Spalte Eigenschaften ein, geben Sie einen Suchbegriff – z. B. Raute – ein und klicken Sie auf das Lupensymbol, um die Suche zu starten.
Hinweis:
Stellen Sie beim Suchen sicher, dass der Begriff korrekt eingegeben wird und auch die Groß-/Kleinschreibung stimmt.
-
<?xml version="1.0" encoding="UTF-8"?> <jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" jcr:primaryType="cq:Component" jcr:title="Image Formats" sling:resourceSuperType="foundation/components/parbase" allowedParents="[*/parsys]" componentGroup="Search"/>
-
<%-- 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(); } } }); } });
-
Sie müssen die Komponente bearbeiten, um sie verfügbar zu machen. Um eine Komponente bearbeitbar zu machen, fügen Sie in CRXDE einen Knoten cq:editConfig des primären Typs cq:EditConfig hinzu. Um Absätze entfernen zu können, fügen Sie eine cq:actions-Mehrwerteigenschaft mit DELETE als einzigem Wert hinzu.
Eigenschaft | Typ | Beschreibung |
predicateName | Zeichenfolge | Name der Eigenschaft. Standardwert ist „fulltext“ |
searchCallback | Funktion | Callback zum Auslösen von Suchen im Ereignis „keyup“. Standardwert ist „CQ.wcm.SiteAdmin.doSearch“ |
Eigenschaft | Typ | Beschreibung |
predicateName | Zeichenfolge | Name der Eigenschaft. Standardwert ist „property“ |
propertyName | Zeichenfolge | Name der JCR-Eigenschaft. Standardwert ist „jcr:title“ |
defaultValue | Zeichenfolge | Vorab ausgefüllter Standardwert. |
Eigenschaft | Typ | Beschreibung |
predicateName | Zeichenfolge | Name der Eigenschaft. Standardwert ist „path“ |
rootPath | Zeichenfolge | Stammverzeichnis der Eigenschaft. Standardwert ist „/content/dam“ |
pathFieldPredicateName | Zeichenfolge | Standardwert ist „folder“ |
showFlatOption | Boolesch | Flag zur Anzeige des Kontrollkästchens „In Unterordnern suchen“. Der Standardwert ist „true“. |
Eigenschaft | Typ | Beschreibung |
predicateName | Zeichenfolge | Name der Eigenschaft. Standardwert ist „daterange“ |
propertyname | Zeichenfolge | Name der JCR-Eigenschaft. Standardwert ist „jcr:content/jcr:lastModified“ |
defaultValue | Zeichenfolge | Vorab ausgefüllter Standardwert |
Eigenschaft | Typ | Beschreibung |
title | Zeichenfolge | Fügt einen zusätzlichen oberen Titel hinzu |
predicateName | Zeichenfolge | Name der Eigenschaft. Standardwert ist „daterange“ |
propertyname | Zeichenfolge | Name der JCR-Eigenschaft. Standardwert ist „jcr:content/metadata/cq:tags“ |
collapse | Zeichenfolge | Ebene der Reduzierung. Standardwert ist „level1“ |
triggerSearch | Boolesch | Flag zum Auslösen der Suche nach Aktivierung. Standardwert ist „false“ |
searchCallback | Funktion | Callback zum Auslösen der Suche. Standardwert ist „CQ.wcm.SiteAdmin.doSearch“ |
searchTimeoutTime | Zahl | Zeitlimit, nach dem searchCallback ausgelöst wird. Standardwert ist 800 ms |
Die Darstellung von Suchergebnissen in einer Asset-Freigaben-Seite wird durch die ausgewählte Linse geregelt. AEM Assets umfasst einen Satz vordefinierter Linsen, mit denen Sie eine Asset-Freigaben-Seite anpassen können. Das Anpassen einer Asset-Freigabe wird unter Erstellen und Konfigurieren einer Asset-Freigaben-Seite behandelt.
Zusätzlich zu den bereits vorhandenen Linsen können AEM-Entwickler auch eigene Linsen erstellen.