Show Menu
TÓPICOS×

Criação de um serviço personalizado da nuvem

O conjunto padrão de Serviços em nuvem pode ser estendido com tipos de Serviço em nuvem personalizados. Isso permite que você insira marcação personalizada na página de forma estruturada. Isso será usado principalmente para provedores de análises de terceiros, como Google Analytics, Chartbeat etc. Os Serviços em nuvem são herdados das páginas pai para as páginas secundárias com a capacidade de quebrar a herança em qualquer nível.
Este guia passo a passo para a criação de um novo serviço em nuvem é um exemplo usando o Google Analytics. Tudo pode não se aplicar ao seu caso de uso.
  1. No CRXDE Lite, crie um novo nó em /apps :
    • Nome : acs
    • Tipo : nt:folder
  2. Crie um novo nó em /apps/acs :
    • Nome : analytics
    • Tipo : sling:Folder
  3. Crie 2 novos nós em /apps/acs/analytics :
    • Nome : componentes
    • Tipo : sling:Folder
    e
    • Nome : modelos
    • Tipo : sling:Folder
  4. Clique com o botão direito do mouse em /apps/acs/analytics/components . ​Selecionar Criar... seguido por Criar componente... A caixa de diálogo que é aberta permite especificar:
    • Rótulo : googleanalyticspage
    • Título : Google Analytics Page
    • Super Type : cq/cloudserviceconfigs/components/configpage
    • Grupo : .hidden
  5. Clique duas vezes em Avançar e especifique:
    • Primários permitidos: acs/analytics/templates/googleanalytics
    Clique em Avançar duas vezes e clique em OK .
  6. Adicione uma propriedade a googleanalyticspage :
    • Nome: cq:defaultView
    • ​Valor: html
  7. Crie um novo arquivo com o nome content.jsp em /apps/acs/analytics/components/googleanalyticspage , com o seguinte conteúdo:
    <%@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. Crie um novo nó em /apps/acs/analytics/components/googleanalyticspage/ :
    • Nome : dialog
    • Tipo : cq:Dialog
    • Propriedades :
      • Nome : title
      • Tipo : String
      • Valor : Google Analytics Config
      • Nome : xtype
      • Tipo : String
      • Valor : dialog
  9. Crie um novo nó em /apps/acs/analytics/components/googleanalyticspage/dialog :
    • Nome : items
    • Tipo : cq:Widget
    • Propriedades :
      • Nome : xtype
      • Tipo : String
      • Valor : tabpanel
  10. Crie um novo nó em /apps/acs/analytics/components/googleanalyticspage/dialog/items :
    • Nome : items
    • Tipo : cq:WidgetCollection
  11. Crie um novo nó em /apps/acs/analytics/components/googleanalyticspage/dialog/items/items :
    • Nome : tab1
    • Tipo : cq:Panel
    • Propriedades :
      • Nome : title
      • Tipo : String
      • Valor : Config
  12. Crie um novo nó em /apps/acs/analytics/components/googleanalyticspage/dialog/items/items/tab1 :
    • Nome : items
    • Tipo : nt:unstructured
    • Propriedades :
      • Nome : fieldLabel
      • Tipo : String
      • Valor : ID da conta
      • Nome : fieldDescription
      • Tipo : String
      • Valor : The account ID assigned by Google. Usually in the form UA-NNNNNN-N
      • Nome : name
      • Tipo : String
      • Valor : ./accountID
      • Nome : validateOnBlur
      • Tipo : String
      • Valor : true
      • Nome : xtype
      • Tipo : String
      • Valor : textfield
  13. Copie /libs/cq/cloudserviceconfigs/components/configpage/body.jsp para /apps/acs/analytics/components/googleanalyticspage/body.jsp e altere libs para apps na linha 34 e faça da referência de script na linha 79 um caminho totalmente qualificado.
  14. Crie um novo modelo em /apps/acs/analytics/templates/ :
    • with Resource Type = acs/analytics/components/googleanalyticspage
    • com Rótulo = googleanalytics
    • com Título = Google Analytics Configuration
    • com allowPath = /etc/cloudservices/googleanalytics(/.*)?
    • com allowChildren = /apps/acs/analytics/templates/googleanalytics
    • com sling:resourceSuperType = cq/cloudserviceconfigs/templates/configpage (no nó do modelo, não no nó jcr:content)
    • com cq:designPath = /etc/designs/cloudservices/googleanalytics (em jcr:content)
  15. Criar novo componente: /apps/acs/analytics/components/googleanalytics .
    Adicione o seguinte conteúdo a googleanalytics.jsp :
    <%@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><%
        }
    }
    %>
    
    
    Isso deve produzir a marcação personalizada com base nas propriedades de configuração.
  16. Navegue até http://localhost:4502/miscadmin#/etc/cloudservices e crie uma nova página:
    • Título : Google Analytics
    • Nome : googleanalytics
    Volte no CRXDE Lite e, em /etc/cloudservices/googleanalytics , adicione a seguinte propriedade a jcr:content :
    • Nome : componentReference
    • Tipo : String
    • Valor : acs/analytics/components/googleanalytics
  17. Navegue até a página Serviço recém-criada ( http://localhost:4502/etc/cloudservices/googleanalytics.html ) e clique no botão + para criar uma nova configuração:
    • Configuração primária : /etc/cloudservices/googleanalytics
    • Título: My First GA Config
    Escolha Configuração do Google Analytics e clique em Criar .
  18. Insira uma ID ​de conta, por exemplo AA-11111111-1 . Clique em OK .
  19. Navegue até uma página e adicione a configuração recém-criada nas propriedades da página, na guia Serviços em nuvem.
  20. A página terá a marcação personalizada adicionada.