Show Menu
화제×

사용자 정의 클라우드 서비스 만들기

Cloud Services의 기본 세트는 사용자 정의 클라우드 서비스 유형으로 확장할 수 있습니다. 이렇게 하면 구조화된 방식으로 페이지에 사용자 지정 마크업을 삽입할 수 있습니다. 이는 주로 Google Analytics, Chartbeat 등과 같은 타사 분석 제공업체에 사용됩니다. 클라우드 서비스는 상위 페이지에서 하위 페이지로 상속되며 모든 수준에서 상속을 분리할 수 있습니다.
새 클라우드 서비스를 만들기 위한 이 단계별 가이드는 Google Analytics를 사용하는 예입니다. 사용 사례에는 모든 것이 적용되지 않을 수 있습니다.
  1. CRXDE Lite에서 /apps :
    • 이름 : acs
    • 유형 : nt:folder
  2. Create a new node under /apps/acs :
    • 이름 : analytics
    • 유형 : sling:Folder
  3. Create 2 new nodes unds under /apps/acs/analytics :
    • 이름 :components
    • 유형 : sling:Folder
    • 이름 :템플릿
    • 유형 : sling:Folder
  4. 마우스 오른쪽 버튼을 /apps/acs/analytics/components 클릭합니다. 만들기... 를 선택합니다.구성 ​요소 만들기...대화 상자가 열리면 다음을 지정할 수 있습니다.
    • 레이블 : googleanalyticspage
    • 제목 : Google Analytics Page
    • Super Type : cq/cloudserviceconfigs/components/configpage
    • 그룹 : .hidden
  5. 다음을 두 번 클릭하고 다음을 지정합니다.
    • 허용된 상위: acs/analytics/templates/googleanalytics #을 두 번 클릭하고 #클릭합니다 .
  6. 다음 위치에 속성을 추가합니다. googleanalyticspage :
    • 이름: cq:defaultView
    • 값: html
  7. 다음 콘텐트를 사용하여 content.jsp 아래에 /apps/acs/analytics/components/googleanalyticspage 명명된 새 파일을 만듭니다.
    <%@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. Create a new node under /apps/acs/analytics/components/googleanalyticspage/ :
    • 이름 : dialog
    • 유형 : cq:Dialog
    • 속성 :
      • 이름 : title
      • 유형 : String
      • : Google Analytics Config
      • 이름 : xtype
      • 유형 : String
      • : dialog
  9. Create a new node under /apps/acs/analytics/components/googleanalyticspage/dialog :
    • 이름 : items
    • 유형 : cq:Widget
    • 속성 :
      • 이름 : xtype
      • 유형 : String
      • : tabpanel
  10. Create a new node under /apps/acs/analytics/components/googleanalyticspage/dialog/items :
    • 이름 : items
    • 유형 : cq:WidgetCollection
  11. Create a new node under /apps/acs/analytics/components/googleanalyticspage/dialog/items/items :
    • 이름 :tab1
    • 유형 : cq:Panel
    • 속성 :
      • 이름 : title
      • 유형 : String
      • : Config
  12. Create a new node under /apps/acs/analytics/components/googleanalyticspage/dialog/items/items/tab1 :
    • 이름 :항목
    • 유형 : nt:unstructured
    • 속성 :
      • 이름 : fieldLabel
      • 유형 :문자열
      • :계정 ID
      • 이름 : fieldDescription
      • 유형 : String
      • : The account ID assigned by Google. Usually in the form UA-NNNNNN-N
      • 이름 : name
      • 유형 : String
      • : ./accountID
      • 이름 : validateOnBlur
      • 유형 : String
      • : true
      • 이름 : xtype
      • 유형 : String
      • : textfield
  13. 34 /libs/cq/cloudserviceconfigs/components/configpage/body.jsp 행에서 복사 /apps/acs/analytics/components/googleanalyticspage/body.jsp libs apps 및 변경 작업을 수행하고 79행에서 스크립트 참조를 전체 경로로 만듭니다.
  14. 다음 아래에서 새 템플릿을 만듭니다. /apps/acs/analytics/templates/
    • with Resource Type = acs/analytics/components/googleanalyticspage
    • with Label = googleanalytics
    • with Title = Google Analytics Configuration
    • with allowedPath = /etc/cloudservices/googleanalytics(/.*)?
    • with allowedChildren = /apps/acs/analytics/templates/googleanalytics
    • sling: resourceSuperType = cq/cloudserviceconfigs/templates/configpage (템플릿 노드의 경우 jcr:content 노드가 아님)
    • with cq:designPath = /etc/designs/cloudservices/googleanalytics (jcr:content)
  15. 새 구성 요소 만들기: /apps/acs/analytics/components/googleanalytics Adobe
    다음 컨텐츠를 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><%
        }
    }
    %>
    
    
    구성 속성을 기반으로 사용자 지정 마크업을 출력해야 합니다.
  16. 새 페이지로 http://localhost:4502/miscadmin#/etc/cloudservices 이동하여 만듭니다.
    • 제목 : Google Analytics
    • 이름 : googleanalytics CRXDE Lite로 돌아가서 아래에서 다음 속성을 /etc/cloudservices/googleanalytics 추가합니다 jcr:content .
    • 이름 : componentReference
    • 유형 : String
    • : acs/analytics/components/googleanalytics
  17. 새로 만든 서비스 페이지( http://localhost:4502/etc/cloudservices/googleanalytics.html )로 이동하고 + 를 클릭하여 새 구성을 만듭니다.
    • 상위 구성 : /etc/cloudservices/googleanalytics
    • 제목: My First GA Config Google Analytics 구성을 선택하고 만들기를 클릭합니다 .
  18. 예를 들어 계정 ID를 입력합니다 AA-11111111-1 . 확인 ​을 클릭합니다.
  19. 페이지로 이동하여 페이지 속성의 클라우드 서비스 탭 아래에 새로 만든 구성을 추가합니다 .
  20. 페이지에 사용자 지정 마크업이 추가됩니다.