O conjunto padrão de Cloud Services pode ser estendido com tipos de Cloud Service personalizados. Isso permite inserir uma 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. Cloud Services são herdadas de páginas pai para páginas filho com a capacidade de quebrar a herança em qualquer nível.
Este guia passo a passo para criar um novo Cloud Service é um exemplo de uso do 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
Crie um novo nó em /apps/acs
:
analytics
sling:Folder
Crie 2 novos nós em /apps/acs/analytics
:
sling:Folder
e
sling:Folder
Clique com o botão direito em /apps/acs/analytics/components
. Selecionar Criar… seguida de Criar componente… A caixa de diálogo que é aberta permite especificar:
googleanalyticspage
Google Analytics Page
cq/cloudserviceconfigs/components/configpage
.hidden
Clique em Próximo duas vezes e especifique:
acs/analytics/templates/googleanalytics
Clique em Próximo duas vezes e clique em OK.
Adicionar uma propriedade a googleanalyticspage
:
cq:defaultView
html
Crie um novo arquivo com o nome content.jsp
under /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>
Crie um novo nó em /apps/acs/analytics/components/googleanalyticspage/
:
Nome: dialog
Tipo: cq:Dialog
Propriedades:
title
String
Google Analytics Config
xtype
String
dialog
Crie um novo nó em /apps/acs/analytics/components/googleanalyticspage/dialog
:
Nome: items
Tipo: cq:Widget
Propriedades:
xtype
String
tabpanel
Crie um novo nó em /apps/acs/analytics/components/googleanalyticspage/dialog/items
:
items
cq:WidgetCollection
Crie um novo nó em /apps/acs/analytics/components/googleanalyticspage/dialog/items/items
:
Nome: tab1
Tipo: cq:Panel
Propriedades:
title
String
Config
Crie um novo nó em /apps/acs/analytics/components/googleanalyticspage/dialog/items/items/tab1
:
Nome: items
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 fazer 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
.
Adicione 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 produzir a marcação personalizada com base nas propriedades de configuração.
Navegar para http://localhost:4502/miscadmin#/etc/cloudservices
e criar uma nova página:
Google Analytics
googleanalytics
Volte em CRXDE Lite, e em /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 botão + para criar uma nova configuração:
/etc/cloudservices/googleanalytics
My First GA Config
Choose 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, no Cloud Services guia .
A página terá a marcação personalizada adicionada a ela.