De standaardset Cloud Services kan worden uitgebreid met aangepaste Cloud Servicen. Hierdoor kunt u aangepaste opmaakcodes op gestructureerde wijze in de pagina injecteren. Dit is in de eerste plaats handig voor andere leveranciers van analysemogelijkheden, zoals Google Analytics, Chartbone, enz. Cloud Services worden overgeërfd van bovenliggende pagina's naar onderliggende pagina's, waarbij de overerving op elk niveau kan worden verbroken.
Deze stapsgewijze handleiding voor het maken van een nieuwe Cloud Service is een voorbeeld van het gebruik van Google Analytics. Alles is mogelijk niet van toepassing op het gebruik.
Maak in CRXDE Lite een nieuw knooppunt onder /apps
:
acs
nt:folder
Een nieuw knooppunt maken onder /apps/acs
:
analytics
sling:Folder
Maak twee nieuwe knooppunten onder /apps/acs/analytics
:
sling:Folder
and
sling:Folder
Klik met de rechtermuisknop op /apps/acs/analytics/components
. Selecteer Maken… gevolgd door Component maken… In het dialoogvenster dat wordt geopend, kunt u het volgende opgeven:
googleanalyticspage
Google Analytics Page
cq/cloudserviceconfigs/components/configpage
.hidden
Klik Volgende tweemaal en specificeer:
acs/analytics/templates/googleanalytics
Klik Volgende tweemaal en klik OK.
Een eigenschap toevoegen aan googleanalyticspage
:
cq:defaultView
html
Maak een nieuw bestand met de naam content.jsp
onder /apps/acs/analytics/components/googleanalyticspage
, met de volgende inhoud:
<%@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>
Een nieuw knooppunt maken onder /apps/acs/analytics/components/googleanalyticspage/
:
Naam: dialog
Type: cq:Dialog
Eigenschappen:
title
String
Google Analytics Config
xtype
String
dialog
Een nieuw knooppunt maken onder /apps/acs/analytics/components/googleanalyticspage/dialog
:
Naam: items
Type: cq:Widget
Eigenschappen:
xtype
String
tabpanel
Een nieuw knooppunt maken onder /apps/acs/analytics/components/googleanalyticspage/dialog/items
:
items
cq:WidgetCollection
Een nieuw knooppunt maken onder /apps/acs/analytics/components/googleanalyticspage/dialog/items/items
:
Naam: tab1
Type: cq:Panel
Eigenschappen:
title
String
Config
Een nieuw knooppunt maken onder /apps/acs/analytics/components/googleanalyticspage/dialog/items/items/tab1
:
Naam: items
Type: nt:unstructured
Eigenschappen:
Naam: fieldLabel
Type: String
Waarde: Account-id
Naam: fieldDescription
Type: String
Waarde: The account ID assigned by Google. Usually in the form UA-NNNNNN-N
Naam: name
Type: String
Waarde: ./accountID
Naam: validateOnBlur
Type: String
Waarde: true
Naam: xtype
Type: String
Waarde: textfield
Kopieer /libs/cq/cloudserviceconfigs/components/configpage/body.jsp
naar /apps/acs/analytics/components/googleanalyticspage/body.jsp
en wijzig libs
in apps
op regel 34 en maak van de scriptverwijzing op regel 79 een volledig gekwalificeerd pad.
Een nieuwe sjabloon maken onder /apps/acs/analytics/templates/
:
acs/analytics/components/googleanalyticspage
googleanalytics
Google Analytics Configuration
/etc/cloudservices/googleanalytics(/.*)?
/apps/acs/analytics/templates/googleanalytics
cq/cloudserviceconfigs/templates/configpage
(op sjabloonknooppunt, niet de jcr:content-node)/etc/designs/cloudservices/googleanalytics
(op jcr:content)Nieuwe component maken: /apps/acs/analytics/components/googleanalytics
.
Voeg de volgende inhoud toe aan 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><%
}
}
%>
Dit zou de douanemarkering moeten uitvoeren die op de configuratieeigenschappen wordt gebaseerd.
Navigeer naar http://localhost:4502/miscadmin#/etc/cloudservices
en maak een nieuwe pagina:
Google Analytics
googleanalytics
Ga terug in CRXDE Lite, en onder /etc/cloudservices/googleanalytics
, voeg het volgende bezit aan jcr:content
toe:
componentReference
String
acs/analytics/components/googleanalytics
Navigeer naar de nieuwe servicepagina ( http://localhost:4502/etc/cloudservices/googleanalytics.html
) en klik op + om een nieuwe configuratie te maken:
/etc/cloudservices/googleanalytics
My First GA Config
Kies Configuratie van Google Analytics en klik Maken.
Voer een Account-id in, bijvoorbeeld AA-11111111-1
. Klik OK.
Navigeer naar een pagina en voeg de zojuist gemaakte configuratie toe in de pagina-eigenschappen onder het tabblad Cloud Services.
Aan de pagina wordt de aangepaste markering toegevoegd.