Een aangepaste Cloud Service maken creating-a-custom-cloud-service
De standaardset Clouden Services kan worden uitgebreid met aangepaste Cloud Servicen. Hiermee kunt u aangepaste opmaakcodes op gestructureerde wijze in de pagina injecteren. Dit is vooral handig voor externe analyseproviders, zoals Googles Analytics, Chartmaatbedrijven, enzovoort. Cloud Servicen worden overgeërfd van bovenliggende pagina's naar onderliggende pagina's, waarbij de overerving op elk niveau kan worden verbroken.
-
Maak in CRXDE Lite een knooppunt onder
/apps
:- Naam:
acs
- Type:
nt:folder
- Naam:
-
Een knooppunt maken onder
/apps/acs
:- Naam:
analytics
- Type:
sling:Folder
- Naam:
-
Maak twee knooppunten onder
/apps/acs/analytics
:- Naam: componenten
- Type:
sling:Folder
en
- Naam: malplaatjes
- Type:
sling:Folder
-
Klik met de rechtermuisknop
/apps/acs/analytics/components
. Selecteer creeer… door wordt gevolgd creeer Component… de dialoog die opent laat u specificeren:- Etiket:
googleanalyticspage
- Titel:
Google Analytics Page
- Super Type:
cq/cloudserviceconfigs/components/configpage
- Groep:
.hidden
- Etiket:
-
Klik daarna tweemaal en specificeer:
- Toegestane Ouders:
acs/analytics/templates/googleanalytics
Klik daarna tweemaal en klik O.K..
- Toegestane Ouders:
-
Een eigenschap toevoegen aan
googleanalyticspage
:- Naam:
cq:defaultView
- Waarde:
html
- Naam:
-
Maak een bestand met de naam
content.jsp
onder/apps/acs/analytics/components/googleanalyticspage
, met de volgende inhoud:code language-xml <%@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 knooppunt maken onder
/apps/acs/analytics/components/googleanalyticspage/
:-
Naam:
dialog
-
Type:
cq:Dialog
-
Eigenschappen:
- Naam:
title
- Type:
String
- Waarde:
Google Analytics Config
- Naam:
xtype
- Type:
String
- Waarde:
dialog
- Naam:
-
-
Een knooppunt maken onder
/apps/acs/analytics/components/googleanalyticspage/dialog
:-
Naam:
items
-
Type:
cq:Widget
-
Eigenschappen:
- Naam:
xtype
- Type:
String
- Waarde:
tabpanel
- Naam:
-
-
Een knooppunt maken onder
/apps/acs/analytics/components/googleanalyticspage/dialog/items
:- Naam:
items
- Type:
cq:WidgetCollection
- Naam:
-
Een knooppunt maken onder
/apps/acs/analytics/components/googleanalyticspage/dialog/items/items
:-
Naam: tab1
-
Type:
cq:Panel
-
Eigenschappen:
- Naam:
title
- Type:
String
- Waarde:
Config
- Naam:
-
-
Een knooppunt maken onder
/apps/acs/analytics/components/googleanalyticspage/dialog/items/items/tab1
:-
Naam: punten
-
Type:
nt:unstructured
-
Eigenschappen:
-
Naam:
fieldLabel
-
Type: Koord
-
Waarde: identiteitskaart van de Rekening
-
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 wijziglibs
naarapps
op regel 34 en maak van de scriptverwijzing op regel 79 een volledig gekwalificeerd pad. -
Een sjabloon maken onder
/apps/acs/analytics/templates/
:- met Type van Middel =
acs/analytics/components/googleanalyticspage
- met Etiket =
googleanalytics
- met Titel=
Google Analytics Configuration
- met allowedPath =
/etc/cloudservices/googleanalytics(/.*)?
- met allowedChildren =
/apps/acs/analytics/templates/googleanalytics
- met sling:resourceSuperType =
cq/cloudserviceconfigs/templates/configpage
(op malplaatjeknoop, niet jcr:inhoudsknoop) - met cq:designPath =
/etc/designs/cloudservices/googleanalytics
(op jcr:content)
- met Type van Middel =
-
Maak een component:
/apps/acs/analytics/components/googleanalytics
.Voeg de volgende inhoud toe aan
googleanalytics.jsp
:code language-xml <%@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 pagina:- Titel:
Google Analytics
- Naam:
googleanalytics
Ga terug in CRXDE Lite en voeg onder
/etc/cloudservices/googleanalytics
de volgende eigenschap toe aanjcr:content
:- Naam:
componentReference
- Type:
String
- Waarde:
acs/analytics/components/googleanalytics
- Titel:
-
Navigeer aan de pas gecreëerde pagina van de Dienst (
http://localhost:4502/etc/cloudservices/googleanalytics.html
) en klik + om tot een config te leiden:- de Configuratie van de Ouder:
/etc/cloudservices/googleanalytics
- Titel:
My First GA Config
Kies Configuratie van Googles Analytics en klik creeer.
- de Configuratie van de Ouder:
-
Ga een identiteitskaart van de Rekening in, bijvoorbeeld,
AA-11111111-1
. Klik OK. -
Navigeer aan een pagina en voeg de onlangs gecreeerde configuratie in de paginaeigenschappen, onder de Cloud Servicen tabel toe.
-
Aan de pagina wordt de aangepaste markering toegevoegd.