O conjunto padrão de Cloud Services pode ser estendido com tipos de Cloud Service personalizados. Isso permite inserir marcação personalizada na página de forma estruturada. Isso será usado principalmente para provedores de análises de terceiros, por exemplo Google Analytics, Chartbeat etc. Os Cloud Services são herdados das páginas principais para as páginas secundárias com a capacidade de interromper a herança em qualquer nível.
Este guia passo a passo para criar um novo Cloud Service é um exemplo usando Google Analytics. Tudo pode não se aplicar ao seu caso de uso.
No CRXDE Lite, crie um novo nó em /apps
:
acs
nt:folder
Criar um novo nó em /apps/acs
:
analytics
sling:Folder
Criar 2 novos nós em /apps/acs/analytics
:
sling:Folder
e
sling:Folder
Clique com o botão direito do mouse em /apps/acs/analytics/components
. Selecionar Criar… seguido por Criar componente… A caixa de diálogo que é aberta permite especificar:
googleanalyticspage
Google Analytics Page
cq/cloudserviceconfigs/components/configpage
.hidden
Clique em Próxima duas vezes e especificar:
acs/analytics/templates/googleanalytics
Clique em Próxima duas vezes e clique OK.
Adicionar uma propriedade ao googleanalyticspage
:
cq:defaultView
html
Crie um novo arquivo chamado content.jsp
em /apps/acs/analytics/components/googleanalyticspage
, com o seguinte conteúdo:
<%@page contentType="text/html"
pageEncoding="utf-8"%><%
%><%@include file="/libs/foundation/global.jsp"%><div>
<div>
<h3>Google Analytics Settings</h3>
<ul>
<li><div class="li-bullet"><strong>accountID: </strong><br><%= xssAPI.encodeForHTML(properties.get("accountID", "")) %></div></li>
</ul>
</div>
Criar um novo nó em /apps/acs/analytics/components/googleanalyticspage/
:
Nome: dialog
Tipo: cq:Dialog
Propriedades:
title
String
Google Analytics Config
xtype
String
dialog
Criar um novo nó em /apps/acs/analytics/components/googleanalyticspage/dialog
:
Nome: items
Tipo: cq:Widget
Propriedades:
xtype
String
tabpanel
Criar um novo nó em /apps/acs/analytics/components/googleanalyticspage/dialog/items
:
items
cq:WidgetCollection
Criar um novo nó em /apps/acs/analytics/components/googleanalyticspage/dialog/items/items
:
Nome: tab1
Tipo: cq:Panel
Propriedades:
title
String
Config
Criar um novo nó em /apps/acs/analytics/components/googleanalyticspage/dialog/items/items/tab1
:
Nome: itens
Tipo: nt:unstructured
Propriedades:
Nome: fieldLabel
Tipo: String
Valor: ID da conta
Nome: fieldDescription
Tipo: String
Valor: The account ID assigned by Google. Usually in the form UA-NNNNNN-N
Nome: name
Tipo: String
Valor: ./accountID
Nome: validateOnBlur
Tipo: String
Valor: true
Nome: xtype
Tipo: String
Valor: textfield
Copiar /libs/cq/cloudserviceconfigs/components/configpage/body.jsp
para /apps/acs/analytics/components/googleanalyticspage/body.jsp
e alterar libs
para apps
na linha 34 e faça da referência do script na linha 79 um caminho totalmente qualificado.
Crie um novo modelo em /apps/acs/analytics/templates/
:
acs/analytics/components/googleanalyticspage
googleanalytics
Google Analytics Configuration
/etc/cloudservices/googleanalytics(/.*)?
/apps/acs/analytics/templates/googleanalytics
cq/cloudserviceconfigs/templates/configpage
(no nó do modelo, não no nó jcr:content)/etc/designs/cloudservices/googleanalytics
(em jcr:content)Criar novo componente: /apps/acs/analytics/components/googleanalytics
.
Adicionar o seguinte conteúdo a googleanalytics.jsp
:
<%@page import="org.apache.sling.api.resource.Resource,
org.apache.sling.api.resource.ValueMap,
org.apache.sling.api.resource.ResourceUtil,
com.day.cq.wcm.webservicesupport.Configuration,
com.day.cq.wcm.webservicesupport.ConfigurationManager" %>
<%@include file="/libs/foundation/global.jsp" %><%
String[] services = pageProperties.getInherited("cq:cloudserviceconfigs", new String[]{});
ConfigurationManager cfgMgr = resource.getResourceResolver().adaptTo(ConfigurationManager.class);
if(cfgMgr != null) {
String accountID = null;
Configuration cfg = cfgMgr.getConfiguration("googleanalytics", services);
if(cfg != null) {
accountID = cfg.get("accountID", null);
}
if(accountID != null) {
%>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', '<%= accountID %>']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'https://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script><%
}
}
%>
Isso deve gerar a marcação personalizada com base nas propriedades de configuração.
Navegue até http://localhost:4502/miscadmin#/etc/cloudservices
e criar uma nova página:
Google Analytics
googleanalytics
Voltar ao CRXDE Lite e abaixo de /etc/cloudservices/googleanalytics
, adicione a seguinte propriedade a jcr:content
:
componentReference
String
acs/analytics/components/googleanalytics
Navegue até a página Serviço recém-criada ( http://localhost:4502/etc/cloudservices/googleanalytics.html
) e clique no link + para criar uma nova configuração:
/etc/cloudservices/googleanalytics
My First GA Config
Escolher Configuração do Google Analytics e clique em Criar.
Insira um ID da conta, por exemplo AA-11111111-1
. Clique em OK.
Navegue até uma página e adicione a configuração recém-criada nas propriedades da página, na seção Cloud Services guia.
A página terá a marcação personalizada adicionada a ela.