É possível estender Adobe Experience Manager Assets recursos de pesquisa. Pronto para uso, Experience Manager Assets pesquisa ativos por strings.
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 à Assets painel administrador.
Em Experience Manager 6.4, a interface do usuário clássica está obsoleta. Para o anúncio, consulte recursos obsoletos e removidos. O Adobe recomenda usar a interface habilitada para toque. Para personalização, consulte aspectos de pesquisa.
Para sobrepor os predicados pré-configurados, copie o facets
nó a partir de /libs/dam/content/search/searchpanel
para /apps/dam/content/search/searchpanel/
ou especifique outro facetURL
na searchpanel
configuração (o padrão é /libs/dam/content/search/searchpanel/facets.overlay.infinity.json
).
Por padrão, a estrutura de diretório em /apps
não existe, portanto, crie-a. Certifique-se de que os tipos de nó correspondam aos tipos de nó /libs
.
É possível adicionar outras guias de pesquisa, configurando-as no Assets interface de administração. Para criar guias adicionais:
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.
Crie e configure a segunda guia, conforme desejado.
Ao criar um segundo siteadminsearchpanel
certifique-se de definir uma id
para evitar conflitos de formulário.
Assets O vem 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 criar e configurar 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/predicados.
Para criar um predicado de propriedade:
Crie uma pasta de componentes no diretório de projetos, por exemplo /apps/weretail/components/titlepredicate.
Adicionar 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"/>
Adicionar 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>
Para disponibilizar o componente, é necessário editá-lo. Para tornar um componente editável, no CRXDE, adicione um nó cq:editConfig do 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.
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).
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.
Ao pesquisar, digite o termo exatamente, incluindo as letras maiúsculas e minúsculas corretas.
Para criar um predicado de grupo:
Crie uma pasta de componentes no diretório de projetos, por exemplo /apps/weretail/components/picspredicate.
Adicionar 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"/>
Adicionar 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();
}
}
});
}
});
Para disponibilizar o componente, é necessário editá-lo. Para tornar um componente editável, no CRXDE, adicione um nó cq:editConfig do 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.
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).
Em Editar , o novo componente agora está disponível no sidekick (encontrado no Pesquisar grupo). Insira o componente no Predicados coluna.
Os predicados a seguir estão disponíveis como widgets ExtJS pré-configurados.
Propriedade | Tipo | Descrição |
---|---|---|
predicateName | Sequência de caracteres | 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 |
Propriedade | Tipo | Descrição |
---|---|---|
predicateName | Sequência de caracteres | Nome do predicado. O padrão é property |
propertyName | Sequência de caracteres | Nome da propriedade JCR. O padrão é jcr:title |
defaultValue | Sequência de caracteres | Valor padrão pré-preenchido. |
Propriedade | Tipo | Descrição |
---|---|---|
predicateName | Sequência de caracteres | Nome do predicado. O padrão é path |
rootPath | Sequência de caracteres | Caminho raiz do predicado. O padrão é /content/dam |
pathFieldPredicateName | Sequência de caracteres | O padrão é folder |
showFlatOption | Booleano | Sinalizador para mostrar caixa de seleção search in subfolders . O padrão é true. |
Propriedade | Tipo | Descrição |
---|---|---|
predicateName | Sequência de caracteres | Nome do predicado. O padrão é daterange |
propertyname | Sequência de caracteres | Nome da propriedade JCR. O padrão é jcr:content/jcr:lastModified |
defaultValue | Sequência de caracteres | Valor padrão pré-preenchido |
Propriedade | Tipo | Descrição |
---|---|---|
título | Sequência de caracteres | Adiciona um título superior adicional |
predicateName | Sequência de caracteres | Nome do predicado. O padrão é daterange |
propertyname | Sequência de caracteres | Nome da propriedade JCR. O padrão é jcr:content/metadata/cq:tags |
colapso | Sequência de caracteres | 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 |
A apresentação dos resultados da pesquisa em uma página Compartilhamento de ativos é regida pela lente selecionada. Experience Manager Assets O vem 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.