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 egna märkord på sidan på ett strukturerat sätt. Detta är främst till för analytiker från tredje part, till exempel Google Analytics, Chartbeat osv. Cloud Service ärvs från överordnade sidor till underordnade sidor med möjlighet att bryta arvet på alla nivåer.
-
Skapa en nod under
/apps
i CRXDE Lite:- Namn:
acs
- Typ:
nt:folder
- Namn:
-
Skapa en nod under
/apps/acs
:- Namn:
analytics
- Typ:
sling:Folder
- Namn:
-
Skapa två 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 på Nästa två gånger och klicka på OK.
- Tillåtna överordnade:
-
Lägg till en egenskap i
googleanalyticspage
:- Namn:
cq:defaultView
- Värde:
html
- Namn:
-
Skapa en 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 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 nod under
/apps/acs/analytics/components/googleanalyticspage/dialog
:-
Namn:
items
-
Typ:
cq:Widget
-
Egenskaper:
- Namn:
xtype
- Typ:
String
- Värde:
tabpanel
- Namn:
-
-
Skapa en nod under
/apps/acs/analytics/components/googleanalyticspage/dialog/items
:- Namn:
items
- Typ:
cq:WidgetCollection
- Namn:
-
Skapa en 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 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ör skriptreferensen på rad 79 till en fullständig kvalificerad sökväg. -
Skapa en mall under
/apps/acs/analytics/templates/
:- med Resurstyp =
acs/analytics/components/googleanalyticspage
- med Etikett =
googleanalytics
- med Title=
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
(på jcr:content)
- med Resurstyp =
-
Skapa en 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 sida:- Titel:
Google Analytics
- Namn:
googleanalytics
Gå tillbaka i CRXDE Lite och under
/etc/cloudservices/googleanalytics
, lägg 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 konfiguration:- Överordnad konfiguration:
/etc/cloudservices/googleanalytics
- Titel:
My First GA Config
Välj Konfiguration av Google Analytics och klicka på Skapa.
- Överordnad konfiguration:
-
Ange ett konto-ID, till exempel
AA-11111111-1
. Klicka på OK. -
Navigera till en sida och lägg till den nya konfigurationen i sidegenskaperna, under fliken Cloud Service.
-
Den anpassade koden läggs till på sidan.