Criação de um Cloud Service personalizado creating-a-custom-cloud-service

O conjunto padrão de Cloud Services pode ser estendido com tipos de Cloud Service personalizados. Isso permite inserir marcação personalizada na página de forma estruturada. Isso é usado principalmente para provedores de análises de terceiros, por exemplo, Google Analytics, Chartbeat e assim por diante. Os Cloud Service são herdados das páginas principais para as páginas secundárias com a capacidade de interromper a herança em qualquer nível.

NOTE
Este guia passo a passo para criar um Cloud Service é um exemplo usando Google Analytics. Tudo pode não se aplicar ao seu caso de uso.
  1. No CRXDE Lite, crie um nó em /apps:

    • Nome: acs
    • Tipo: nt:folder
  2. Criar um nó em /apps/acs:

    • Nome: analytics
    • Tipo: sling:Folder
  3. Criar dois nós em /apps/acs/analytics:

    • Nome: componentes
    • Tipo: sling:Folder

    e

    • Nome: templates
    • Tipo: sling:Folder
  4. Clique com o botão direito do mouse /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 em Próxima duas vezes e especificar:

    • Pais permitidos: acs/analytics/templates/googleanalytics

    Clique em Próxima duas vezes e clique OK.

  6. Adicionar uma propriedade ao googleanalyticspage:

    • Nome: cq:defaultView
    • Valor: html
  7. Crie um arquivo chamado content.jsp em /apps/acs/analytics/components/googleanalyticspage, com o seguinte conteúdo:

    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. Criar um 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. Criar um nó em /apps/acs/analytics/components/googleanalyticspage/dialog:

    • Nome: items

    • Tipo: cq:Widget

    • Propriedades:

      • Nome: xtype
      • Tipo: String
      • Valor: tabpanel
  10. Criar um nó em /apps/acs/analytics/components/googleanalyticspage/dialog/items:

    • Nome: items
    • Tipo: cq:WidgetCollection
  11. Criar um nó em /apps/acs/analytics/components/googleanalyticspage/dialog/items/items:

    • Nome: tab1

    • Tipo: cq:Panel

    • Propriedades:

      • Nome: title
      • Tipo: String
      • Valor: Config
  12. Criar um nó em /apps/acs/analytics/components/googleanalyticspage/dialog/items/items/tab1:

    • Nome: itens

    • 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. Copiar /libs/cq/cloudserviceconfigs/components/configpage/body.jsp para /apps/acs/analytics/components/googleanalyticspage/body.jsp e alterar libs para apps na linha 34 e faça da referência do script na linha 79 um caminho totalmente qualificado.

  14. Criar um modelo em /apps/acs/analytics/templates/:

    • com Tipo de recurso = acs/analytics/components/googleanalyticspage
    • com Rótulo = googleanalytics
    • com Título= Google Analytics Configuration
    • com allowedPath = /etc/cloudservices/googleanalytics(/.*)?
    • com allowedChildren = /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 um componente: /apps/acs/analytics/components/googleanalytics.

    Adicionar o seguinte conteúdo a 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><%
        }
    }
    %>
    

    Isso deve gerar a marcação personalizada com base nas propriedades de configuração.

  16. Navegue até http://localhost:4502/miscadmin#/etc/cloudservices e crie uma página:

    • Título: Google Analytics
    • Nome: googleanalytics

    Voltar ao CRXDE Lite e abaixo de /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 link + para criar uma configuração:

    • Configuração principal: /etc/cloudservices/googleanalytics
    • Título: My First GA Config

    Escolher Configuração do Google Analytics e clique em Criar.

  18. Insira um ID da 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 seção Cloud Service guia.

  20. A página terá a marcação personalizada adicionada a ela.

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