Een aangepaste Cloud Service maken creating-a-custom-cloud-service
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.
-
Maak in CRXDE Lite een nieuw knooppunt onder
/apps
:- Naam:
acs
- Type:
nt:folder
- Naam:
-
Een nieuw knooppunt maken onder
/apps/acs
:- Naam:
analytics
- Type:
sling:Folder
- Naam:
-
Twee nieuwe knooppunten maken onder
/apps/acs/analytics
:- Naam: componenten
- Type:
sling:Folder
en
- Naam: sjablonen
- Type:
sling:Folder
-
Rechtsklik ingeschakeld
/apps/acs/analytics/components
. Selecteren Maken… gevolgd door Component maken… In het dialoogvenster dat wordt geopend, kunt u het volgende opgeven:- Label:
googleanalyticspage
- Titel:
Google Analytics Page
- Supertype:
cq/cloudserviceconfigs/components/configpage
- Groep:
.hidden
- Label:
-
Klikken Volgende tweemaal en vermeld:
- Toegestane bovenliggende elementen:
acs/analytics/templates/googleanalytics
Klikken Volgende twee keer en klik OK.
- Toegestane bovenliggende elementen:
-
Een eigenschap toevoegen aan
googleanalyticspage
:- Naam:
cq:defaultView
- Waarde:
html
- Naam:
-
Een nieuw bestand maken met de naam
content.jsp
krachtens/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 nieuw 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 nieuw knooppunt maken onder
/apps/acs/analytics/components/googleanalyticspage/dialog
:-
Naam:
items
-
Type:
cq:Widget
-
Eigenschappen:
- Naam:
xtype
- Type:
String
- Waarde:
tabpanel
- Naam:
-
-
Een nieuw knooppunt maken onder
/apps/acs/analytics/components/googleanalyticspage/dialog/items
:- Naam:
items
- Type:
cq:WidgetCollection
- Naam:
-
Een nieuw 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 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
-
-
-
Kopiëren
/libs/cq/cloudserviceconfigs/components/configpage/body.jsp
tot/apps/acs/analytics/components/googleanalyticspage/body.jsp
en wijzigenlibs
totapps
op regel 34 en maak van de scriptverwijzing op regel 79 een volledig gekwalificeerd pad. -
Een nieuwe sjabloon maken onder
/apps/acs/analytics/templates/
:- with Type bron =
acs/analytics/components/googleanalyticspage
- with Label =
googleanalytics
- with Titel=
Google Analytics Configuration
- with allowedPath =
/etc/cloudservices/googleanalytics(/.*)?
- with allowedChildren =
/apps/acs/analytics/templates/googleanalytics
- with sling:resourceSuperType =
cq/cloudserviceconfigs/templates/configpage
(op sjabloonknooppunt, niet het knooppunt jcr:content) - with cq:designPath =
/etc/designs/cloudservices/googleanalytics
(op jcr:content)
- with Type bron =
-
Nieuwe component maken:
/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.
-
Navigeren naar
http://localhost:4502/miscadmin#/etc/cloudservices
en maak een nieuwe pagina:- Titel:
Google Analytics
- Naam:
googleanalytics
Ga terug in CRXDE Lite en onder
/etc/cloudservices/googleanalytics
, voegt u 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 op de knop + om een nieuwe config tot stand te brengen:- Bovenliggende configuratie:
/etc/cloudservices/googleanalytics
- Titel:
My First GA Config
Kies Configuratie Google Analytics en klik op Maken.
- Bovenliggende configuratie:
-
Voer een Account-id bijvoorbeeld
AA-11111111-1
. Klikken OK. -
Navigeer naar een pagina en voeg de nieuw gemaakte configuratie toe in de pagina-eigenschappen, onder de Cloud Services tab.
-
Aan de pagina wordt de aangepaste markering toegevoegd.