L’ensemble de services cloud par défaut peut être étendu à l’aide de types de service cloud personnalisés. Cela vous permet d’injecter un balisage personnalisé dans la page de manière structurée. Cela s’avérera particulièrement utile pour les fournisseurs de données analytiques tiers, tels que Google Analytics, Chartbeat, etc. Les pages enfants héritent des Services cloud des pages parents, avec la possibilité d’annuler l’héritage à n’importe quel niveau.
Google Analytics est utilisé comme exemple dans ce guide détaillé de création d’un service cloud. Il se peut que certains éléments ne soient pas applicables à votre scénario d’utilisation.
Dans CRXDE Lite, créez un nœud sous /apps
:
acs
nt:folder
Créez un nœud sous /apps/acs
:
analytics
sling:Folder
Créez 2 nœuds sous /apps/acs/analytics
:
sling:Folder
et
sling:Folder
Clic droit sur /apps/acs/analytics/components
. Sélectionnez Créer…, suivi de Créer un composant…. La boîte de dialogue qui s’ouvre alors vous permet de spécifier ce qui suit :
googleanalyticspage
Google Analytics Page
cq/cloudserviceconfigs/components/configpage
.hidden
Cliquez deux fois sur Suivant et indiquez :
acs/analytics/templates/googleanalytics
Cliquez deux fois sur Suivant, puis cliquez sur OK.
Ajoutez une propriété à googleanalyticspage
:
cq:defaultView
html
Créez un fichier nommé content.jsp
sous /apps/acs/analytics/components/googleanalyticspage
, avec le contenu suivant :
<%@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>
Créez un nœud sous /apps/acs/analytics/components/googleanalyticspage/
:
Nom : dialog
Type : cq:Dialog
Propriétés :
title
String
Google Analytics Config
xtype
String
dialog
Créez un nœud sous /apps/acs/analytics/components/googleanalyticspage/dialog
:
Nom : items
Type : cq:Widget
Propriétés :
xtype
String
tabpanel
Créez un nœud sous /apps/acs/analytics/components/googleanalyticspage/dialog/items
:
items
cq:WidgetCollection
Créez un nœud sous /apps/acs/analytics/components/googleanalyticspage/dialog/items/items
:
Nom : tab1
Type : cq:Panel
Propriétés :
title
String
Config
Créez un nœud sous /apps/acs/analytics/components/googleanalyticspage/dialog/items/items/tab1
:
Nom : items
Type : nt:unstructured
Propriétés :
Nom : fieldLabel
Type : String
Valeur : ID de compte
Nom : fieldDescription
Type : String
Valeur : The account ID assigned by Google. Usually in the form UA-NNNNNN-N
Nom : name
Type : String
Valeur : ./accountID
Nom : validateOnBlur
Type : String
Valeur : true
Nom : xtype
Type : String
Valeur : textfield
Copiez /libs/cq/cloudserviceconfigs/components/configpage/body.jsp
sur /apps/acs/analytics/components/googleanalyticspage/body.jsp
, remplacez libs
par apps
à la ligne 34 et faites de la référence de script à la ligne 79 un chemin d’accès entièrement qualifié.
Créez un modèle sous /apps/acs/analytics/templates/
:
acs/analytics/components/googleanalyticspage
;googleanalytics
;Google Analytics Configuration
;/etc/cloudservices/googleanalytics(/.*)?
;/apps/acs/analytics/templates/googleanalytics
;cq/cloudserviceconfigs/templates/configpage
(sur le nœud template et non sur le nœud jcr:content) ;/etc/designs/cloudservices/googleanalytics
(sur jcr:content).Créez un composant : /apps/acs/analytics/components/googleanalytics
.
Ajoutez le contenu suivant à 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><%
}
}
%>
Cela devrait générer le balisage personnalisé sur la base des propriétés de configuration.
Accédez à http://localhost:4502/miscadmin#/etc/cloudservices
et créez une page :
Google Analytics
googleanalytics
Revenez dans CRXDE Lite et, sous /etc/cloudservices/googleanalytics
, ajoutez la propriété suivante à jcr:content
:
componentReference
String
acs/analytics/components/googleanalytics
Accédez à la page Service qui vient d’être créée (http://localhost:4502/etc/cloudservices/googleanalytics.html
) et cliquez ensuite sur le signe + pour créer une configuration :
/etc/cloudservices/googleanalytics
My First GA Config
Sélectionnez Google Analytics Configuration, puis cliquez sur Créer.
Saisissez un ID de compte ; par exemple, AA-11111111-1
. Cliquez sur OK.
Accédez à une page et ajoutez la nouvelle configuration dans les propriétés de la page, sous l’onglet Services cloud.
Le balisage personnalisé est ajouté à la page.