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.

NOTE
Den här steg-för-steg-guiden för att skapa en Cloud Service är ett exempel på hur du använder Google Analytics. Allt kanske inte gäller ditt användningsfall.
  1. Skapa en nod under CRXDE Lite /apps:

    • Namn: acs
    • Typ: nt:folder
  2. Skapa en nod under /apps/acs:

    • Namn: analytics
    • Typ: sling:Folder
  3. Skapa två noder under /apps/acs/analytics:

    • Namn: komponenter
    • Typ: sling:Folder

    och

    • Namn: mallar
    • Typ: sling:Folder
  4. Högerklicka /apps/acs/analytics/components. Välj Skapa… följt av Skapa komponent… I den dialogruta som öppnas kan du ange:

    • Etikett: googleanalyticspage
    • Titel: Google Analytics Page
    • Supertyp: cq/cloudserviceconfigs/components/configpage
    • Grupp: .hidden
  5. Klicka Nästa två gånger och ange:

    • Tillåtna överordnade: acs/analytics/templates/googleanalytics

    Klicka Nästa två gånger och klicka OK.

  6. Lägg till en egenskap i googleanalyticspage:

    • Namn: cq:defaultView
    • Värde: html
  7. 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>
    
  8. 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
  9. Skapa en nod under /apps/acs/analytics/components/googleanalyticspage/dialog:

    • Namn: items

    • Typ: cq:Widget

    • Egenskaper:

      • Namn: xtype
      • Typ: String
      • Värde: tabpanel
  10. Skapa en nod under /apps/acs/analytics/components/googleanalyticspage/dialog/items:

    • Namn: items
    • Typ: cq:WidgetCollection
  11. 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
  12. Skapa en nod under /apps/acs/analytics/components/googleanalyticspage/dialog/items/items/tab1:

    • Namn: objekt

    • Typ: nt:unstructured

    • Egenskaper:

      • Namn: fieldLabel

      • Typ: String

      • 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

  13. Kopiera /libs/cq/cloudserviceconfigs/components/configpage/body.jsp till /apps/acs/analytics/components/googleanalyticspage/body.jsp och ändra libs till apps på rad 34 och göra skriptreferensen på rad 79 till en fullständigt kvalificerad sökväg.

  14. Skapa en 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)
  15. 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.

  16. 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/googleanalyticslägger du till följande egenskap i jcr:content:

    • Namn: componentReference
    • Typ: String
    • Värde: acs/analytics/components/googleanalytics
  17. 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 Skapa.

  18. Ange en Konto-ID, till exempel AA-11111111-1. Klicka OK.

  19. Navigera till en sida och lägg till den nya konfigurationen i sidegenskaperna, under Cloud Service -fliken.

  20. Den anpassade koden läggs till på sidan.

recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2