El conjunto predeterminado de Cloud Services se puede ampliar con tipos de Cloud Service personalizados. Esto le permite insertar marcas personalizadas en la página de forma estructurada. Esto será útil principalmente para proveedores de análisis de terceros, como Google Analytics, Chartbeat, etc. Los Cloud Services se heredan de las páginas principales a las páginas secundarias con la capacidad de romper la herencia en cualquier nivel.
Esta guía paso a paso para crear un nuevo Cloud Service es un ejemplo de uso de Google Analytics. Todo podría no aplicarse a su caso de uso.
En CRXDE Lite, cree un nuevo nodo en /apps
:
acs
nt:folder
Cree un nuevo nodo en /apps/acs
:
analytics
sling:Folder
Cree 2 nuevos nodos en /apps/acs/analytics
:
sling:Folder
y
sling:Folder
Haga clic con el botón derecho en /apps/acs/analytics/components
. Seleccione Crear… seguido de Crear componente… El cuadro de diálogo que se abre le permite especificar:
googleanalyticspage
Google Analytics Page
cq/cloudserviceconfigs/components/configpage
.hidden
Haga clic Siguiente dos veces y especifique:
acs/analytics/templates/googleanalytics
Haga clic en Siguiente dos veces y haga clic en Aceptar.
Añada una propiedad a googleanalyticspage
:
cq:defaultView
html
Cree un nuevo archivo denominado content.jsp
en /apps/acs/analytics/components/googleanalyticspage
, con el siguiente contenido:
<%@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>
Cree un nuevo nodo en /apps/acs/analytics/components/googleanalyticspage/
:
Nombre: dialog
Tipo: cq:Dialog
Propiedades:
title
String
Google Analytics Config
xtype
String
dialog
Cree un nuevo nodo en /apps/acs/analytics/components/googleanalyticspage/dialog
:
Nombre: items
Tipo: cq:Widget
Propiedades:
xtype
String
tabpanel
Cree un nuevo nodo en /apps/acs/analytics/components/googleanalyticspage/dialog/items
:
items
cq:WidgetCollection
Cree un nuevo nodo en /apps/acs/analytics/components/googleanalyticspage/dialog/items/items
:
Nombre: tab1
Tipo: cq:Panel
Propiedades:
title
String
Config
Cree un nuevo nodo en /apps/acs/analytics/components/googleanalyticspage/dialog/items/items/tab1
:
Nombre: elementos
Tipo: nt:unstructured
Propiedades:
Nombre: fieldLabel
Tipo: Cadena
Valor: ID de cuenta
Nombre: fieldDescription
Tipo: String
Valor: The account ID assigned by Google. Usually in the form UA-NNNNNN-N
Nombre: name
Tipo: String
Valor: ./accountID
Nombre: validateOnBlur
Tipo: String
Valor: true
Nombre: xtype
Tipo: String
Valor: textfield
Copie /libs/cq/cloudserviceconfigs/components/configpage/body.jsp
en /apps/acs/analytics/components/googleanalyticspage/body.jsp
y cambie libs
a apps
en la línea 34 y convierta la referencia de secuencia de comandos en la línea 79 en una ruta completa.
Cree una nueva plantilla en /apps/acs/analytics/templates/
:
acs/analytics/components/googleanalyticspage
googleanalytics
Google Analytics Configuration
/etc/cloudservices/googleanalytics(/.*)?
/apps/acs/analytics/templates/googleanalytics
cq/cloudserviceconfigs/templates/configpage
(en el nodo de plantilla, no en el nodo jcr:content)/etc/designs/cloudservices/googleanalytics
(en jcr:content)Crear nuevo componente: /apps/acs/analytics/components/googleanalytics
.
Añada el siguiente contenido 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><%
}
}
%>
Esto debería generar el marcado personalizado basado en las propiedades de configuración.
Vaya a http://localhost:4502/miscadmin#/etc/cloudservices
y cree una nueva página:
Google Analytics
googleanalytics
Vuelva al CRXDE Lite y, en /etc/cloudservices/googleanalytics
, agregue la siguiente propiedad a jcr:content
:
componentReference
String
acs/analytics/components/googleanalytics
Vaya a la página Servicio recientemente creada ( http://localhost:4502/etc/cloudservices/googleanalytics.html
) y haga clic en + para crear una nueva configuración:
/etc/cloudservices/googleanalytics
My First GA Config
Elija Configuración de Google Analytics y haga clic en Crear.
Escriba un ID de cuenta, por ejemplo AA-11111111-1
. Haga clic en Aceptar.
Vaya a una página y agregue la configuración recién creada en las propiedades de la página, en la ficha Cloud Services.
Se agregará el marcado personalizado a la página.