Skapa en anpassad Cloud Service creating-a-custom-cloud-service
Standarduppsättningen med Cloud Services kan utökas med anpassade Cloud Service. På så sätt kan du lägga in egen kod på sidan på ett strukturerat sätt. Detta kommer i första hand att användas av analytiker från tredje part, t.ex. Google Analytics, Chartbeat osv. Cloud Services ärvs från överordnade sidor till underordnade sidor med möjlighet att bryta arvet på alla nivåer.
-
Skapa en ny nod under CRXDE Lite
/apps
:- Namn:
acs
- Typ:
nt:folder
- Namn:
-
Skapa en ny nod under
/apps/acs
:- Namn:
analytics
- Typ:
sling:Folder
- Namn:
-
Skapa 2 nya noder under
/apps/acs/analytics
:- Namn: komponenter
- Typ:
sling:Folder
och
- Namn: mallar
- Typ:
sling:Folder
-
Högerklicka på
/apps/acs/analytics/components
. Välj Skapa… följt av Skapa komponent… I dialogrutan som öppnas kan du ange:- Etikett:
googleanalyticspage
- Titel:
Google Analytics Page
- Supertyp:
cq/cloudserviceconfigs/components/configpage
- Grupp:
.hidden
- Etikett:
-
Klicka Nästa två gånger och ange:
- Tillåtna överordnade:
acs/analytics/templates/googleanalytics
Klicka Nästa två gånger och klicka OK.
- Tillåtna överordnade:
-
Lägg till en egenskap i
googleanalyticspage
:- Namn:
cq:defaultView
- Värde:
html
- Namn:
-
Skapa en ny fil med namnet
content.jsp
under/apps/acs/analytics/components/googleanalyticspage
, med följande innehåll: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>
-
Skapa en ny nod under
/apps/acs/analytics/components/googleanalyticspage/
:-
Namn:
dialog
-
Typ:
cq:Dialog
-
Egenskaper:
- Namn:
title
- Typ:
String
- Värde:
Google Analytics Config
- Namn:
xtype
- Typ:
String
- Värde:
dialog
- Namn:
-
-
Skapa en ny nod under
/apps/acs/analytics/components/googleanalyticspage/dialog
:-
Namn:
items
-
Typ:
cq:Widget
-
Egenskaper:
- Namn:
xtype
- Typ:
String
- Värde:
tabpanel
- Namn:
-
-
Skapa en ny nod under
/apps/acs/analytics/components/googleanalyticspage/dialog/items
:- Namn:
items
- Typ:
cq:WidgetCollection
- Namn:
-
Skapa en ny nod under
/apps/acs/analytics/components/googleanalyticspage/dialog/items/items
:-
Namn: tab1
-
Typ:
cq:Panel
-
Egenskaper:
- Namn:
title
- Typ:
String
- Värde:
Config
- Namn:
-
-
Skapa en ny nod under
/apps/acs/analytics/components/googleanalyticspage/dialog/items/items/tab1
:-
Namn: objekt
-
Typ:
nt:unstructured
-
Egenskaper:
-
Namn:
fieldLabel
-
Typ: Sträng
-
Värde: Konto-ID
-
Namn:
fieldDescription
-
Typ:
String
-
Värde:
The account ID assigned by Google. Usually in the form UA-NNNNNN-N
-
Namn:
name
-
Typ:
String
-
Värde:
./accountID
-
Namn:
validateOnBlur
-
Typ:
String
-
Värde:
true
-
Namn:
xtype
-
Typ:
String
-
Värde:
textfield
-
-
-
Kopiera
/libs/cq/cloudserviceconfigs/components/configpage/body.jsp
till/apps/acs/analytics/components/googleanalyticspage/body.jsp
och ändralibs
tillapps
på rad 34 och göra skriptreferensen på rad 79 till en fullständigt kvalificerad sökväg. -
Skapa en ny mall under
/apps/acs/analytics/templates/
:- med Resurstyp =
acs/analytics/components/googleanalyticspage
- med Etikett =
googleanalytics
- med Titel=
Google Analytics Configuration
- med allowedPath =
/etc/cloudservices/googleanalytics(/.*)?
- med allowedChildren =
/apps/acs/analytics/templates/googleanalytics
- med sling:resourceSuperType =
cq/cloudserviceconfigs/templates/configpage
(på mallnod, inte jcr:content-noden) - med cq:designPath =
/etc/designs/cloudservices/googleanalytics
(on jcr:content)
- med Resurstyp =
-
Skapa ny komponent:
/apps/acs/analytics/components/googleanalytics
.Lägg till följande innehåll i
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><% } } %>
Den anpassade koden ska skapas baserat på konfigurationsegenskaperna.
-
Navigera till
http://localhost:4502/miscadmin#/etc/cloudservices
och skapa en ny sida:- Titel:
Google Analytics
- Namn:
googleanalytics
Gå tillbaka i CRXDE Lite och under
/etc/cloudservices/googleanalytics
lägger du till följande egenskap ijcr:content
:- Namn:
componentReference
- Typ:
String
- Värde:
acs/analytics/components/googleanalytics
- Titel:
-
Navigera till den nyligen skapade tjänstsidan (
http://localhost:4502/etc/cloudservices/googleanalytics.html
) och klicka på + för att skapa en ny konfiguration:- Överordnad konfiguration:
/etc/cloudservices/googleanalytics
- Titel:
My First GA Config
Välj Konfiguration av Google Analytics och klicka Skapa.
- Överordnad konfiguration:
-
Ange Konto-ID, till exempel
AA-11111111-1
. Klicka OK. -
Navigera till en sida och lägg till den nya konfigurationen i sidegenskaperna, under Cloud Services -fliken.
-
Den anpassade koden läggs till på sidan.