Il set di Cloud Services predefinito può essere esteso con tipi di Cloud Service personalizzati. Questo consente di inserire tag personalizzati nella pagina in modo strutturato. Questo sarà utilizzato principalmente per fornitori di analisi di terze parti, ad esempio Google Analytics, heartbeat, ecc. Gli Cloud Services vengono ereditati dalle pagine padre alle pagine figlie, con la possibilità di interrompere l'ereditarietà a qualsiasi livello.
Questa guida dettagliata per la creazione di un nuovo Cloud Service è un esempio che utilizza le Google Analytics. Tutto potrebbe non essere applicabile al caso di utilizzo.
In CRXDE Lite, create un nuovo nodo sotto /apps
:
acs
nt:folder
Crea un nuovo nodo in /apps/acs
:
analytics
sling:Folder
Create 2 nuovi nodi in /apps/acs/analytics
:
sling:Folder
e
sling:Folder
Fare clic con il pulsante destro del mouse su /apps/acs/analytics/components
. Selezionare Crea… seguito da Crea componente… La finestra di dialogo visualizzata consente di specificare:
googleanalyticspage
Google Analytics Page
cq/cloudserviceconfigs/components/configpage
.hidden
Fare clic due volte su Next e specificare:
acs/analytics/templates/googleanalytics
Fare clic due volte su Next e fare clic su OK.
Aggiungi una proprietà a googleanalyticspage
:
cq:defaultView
html
Create un nuovo file denominato content.jsp
in /apps/acs/analytics/components/googleanalyticspage
, con il seguente contenuto:
<%@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>
Crea un nuovo nodo in /apps/acs/analytics/components/googleanalyticspage/
:
Nome: dialog
Tipo: cq:Dialog
Proprietà:
title
String
Google Analytics Config
xtype
String
dialog
Crea un nuovo nodo in /apps/acs/analytics/components/googleanalyticspage/dialog
:
Nome: items
Tipo: cq:Widget
Proprietà:
xtype
String
tabpanel
Crea un nuovo nodo in /apps/acs/analytics/components/googleanalyticspage/dialog/items
:
items
cq:WidgetCollection
Crea un nuovo nodo in /apps/acs/analytics/components/googleanalyticspage/dialog/items/items
:
Nome: tab1
Tipo: cq:Panel
Proprietà:
title
String
Config
Crea un nuovo nodo in /apps/acs/analytics/components/googleanalyticspage/dialog/items/items/tab1
:
Nome: items
Tipo: nt:unstructured
Proprietà:
Nome: fieldLabel
Tipo: Stringa
Valore: ID account
Nome: fieldDescription
Tipo: String
Valore: The account ID assigned by Google. Usually in the form UA-NNNNNN-N
Nome: name
Tipo: String
Valore: ./accountID
Nome: validateOnBlur
Tipo: String
Valore: true
Nome: xtype
Tipo: String
Valore: textfield
Copiare /libs/cq/cloudserviceconfigs/components/configpage/body.jsp
in /apps/acs/analytics/components/googleanalyticspage/body.jsp
e cambiare libs
in apps
alla riga 34 e rendere il riferimento script alla riga 79 un percorso completo.
Create un nuovo modello in /apps/acs/analytics/templates/
:
acs/analytics/components/googleanalyticspage
googleanalytics
Google Analytics Configuration
/etc/cloudservices/googleanalytics(/.*)?
/apps/acs/analytics/templates/googleanalytics
cq/cloudserviceconfigs/templates/configpage
(nel nodo del modello, non nel nodo jcr:content)/etc/designs/cloudservices/googleanalytics
(su jcr:content)Crea nuovo componente: /apps/acs/analytics/components/googleanalytics
.
Aggiungete il contenuto seguente 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><%
}
}
%>
Questo deve restituire la marcatura personalizzata in base alle proprietà di configurazione.
Andate a http://localhost:4502/miscadmin#/etc/cloudservices
e create una nuova pagina:
Google Analytics
googleanalytics
Tornare indietro nel CRXDE Lite e, in /etc/cloudservices/googleanalytics
, aggiungere la seguente proprietà a jcr:content
:
componentReference
String
acs/analytics/components/googleanalytics
Passate alla pagina del servizio appena creata ( http://localhost:4502/etc/cloudservices/googleanalytics.html
) e fate clic su + per creare una nuova configurazione:
/etc/cloudservices/googleanalytics
My First GA Config
Scegliere Configurazione Google Analytics e fare clic su Crea.
Immettere un ID account, ad esempio AA-11111111-1
. Fai clic su OK.
Passare a una pagina e aggiungere la configurazione appena creata nelle proprietà della pagina, nella scheda Cloud Services.
Alla pagina verrà aggiunta la marcatura personalizzata.