De HTML-component maken

U kunt een nieuwe lokale component maken in de componentcatalogus van Oracle Content Management en de HTML-component opbouwen door bestanden toe te voegen en te wijzigen in de bijbehorende activummap.

Ga als volgt te werk om een HTML-component te maken en op te bouwen:
  1. Maak een component met de naam HTML Component.
    Zie voor meer informatie: Nieuwe lokale componenten maken.
  2. Voeg het bestand mustache.min.js toe aan de map assets in HTML Component.
  3. Maak een nieuw bestand met de naam render.html in de map assets. Dit bestand bevat de HTML voor de hoofdtekst van uw component. Voor dit voorbeeld maakt u het bestand render.html met de volgende inhoud:
    <ul class="wrapper">
        <li class="box">
         <h1 class="title">One</h1>
       <p class="text"> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
        </li>
        <li class="box"> 
         <h1 class="title">Two</h1>
         <p class="text"> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
        </li>
      <li class="box"> 
         <h1 class="title">Three</h1>
         <p class="text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua./p> 
        </li>
      <li class="box">
         <h1 class="title">Four</h1> 
         <p class="text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
        </li>
    </ul>
  4. Maak een nieuw bestand met de naam design.css in de map assets. Dit is het CSS-bestand voor uw component. Voor dit voorbeeld voegt u de volgende regels toe als de inhoud van het bestand design.css:
    .wrapper {
      text-align: center;
    }
    .box {
      display: inline-block;
      position: relative;
      width: 200px;
      height: 200px;
      padding:0px 10px 10px 10px;
      background: transparent;
      border-width:1px;
      border-style:solid;
      border-radius: 5px;
      border-color:#CCCCCC;
      z-index: 0;
      margin: 2px 2px 2px 2px;
      transition: all .15s ease-in-out;
    }
    .box:hover {
      background: #9CC;
      z-index: 100;
      transform: scale(1.2,1.2);
      box-shadow: 0 5px 10px 0 rgba(0,0,0,.2);
    }
    .title {
       color:red;
    }
    .text {
       color:#555555;
    }
  5. Open het bestand render.js in de map activa en wijzig de inhoud in de volgende inhoud. Ongeacht welke HTML en CSS u hebt gebruikt in de vorige stappen, met het volgende render.js-bestand worden uw HTML en CSS op de pagina weergegeven:
    /* globals define */
    define(['jquery', './mustache.min', 'text!./render.html', 'css!./design.css'], function($, Mustache, template, css) {
      'use strict';
    
      // ----------------------------------------------
      // Create a Mustache-based component implemention
      // ----------------------------------------------
      var SampleComponentImpl = function(args) {
        this.SitesSDK = args.SitesSDK;
    
        // Initialze the custom component
        this.createTemplate(args);
        this.setupCallbacks();
      };
      // create the template based on the initial values
      SampleComponentImpl.prototype.createTemplate = function(args) {
        // create a unique ID for the div to add, this will be passed to the callback
        this.contentId = args.id + '_content_' + args.viewMode;
        // create a hidden custom component template that can be added to the DOM 
        this.template = '<div id="' + this.contentid + '">' +
          template +
          '</div>';
      };
      SampleComponentImpl.prototype.updateSettings = function(settings) {
        if (settings.property === 'customSettingsData') {
            this.update(settings.value);
        }
      };
      SampleComponentImpl.prototype.update = function(data) {
        this.data = data;
        this.container.html(Mustache.to_html(this.template, this.data));
      };
      //
      // SDK Callbacks
      // setup the callbacks expected by the SDK API
      //
      SampleComponentImpl.prototype.setupCallbacks = function() {
        //
        // callback - render: add the component into the page
        //
        this.render = $.proxy(function(container) {
           this.container = $(container);
           this.SitesSDK.getProperty('customSettingsData', $.proxy(this.update, this));
        }, this);
        //
        // callback - SETTINGS_UPDATED: retrive new custom data and re-render the component
        //
        this.SitesSDK.subscribe(this.SitesSDK.MESSAGE_TYPES.SETTINGS_UPDATED, $.proxy(this.updateSettings, this));
        //
        // callback - dispose: cleanup after component when it is removed from the page
        //
        this.dispose = $.proxy(function() {
           // nothing required
        }, this);
      };
      // ----------------------------------------------
      // Create the factory object for your component
      // ----------------------------------------------
      var sampleComponentFactory = {
        createComponent: function(args, callback) {
          // return a new instance of the component
          return callback(new SampleComponentImpl(args));
        }
      };
      return sampleComponentFactory;
    });

Ga als volgt te werk om te controleren of de HTML-component is opgebouwd (controlepunt 1).

  1. Controleer of de map assets in uw component de volgende vijf bestanden bevat.

    • design.css
    • mustache.min.js
    • render.html
    • render.js
    • settings.html
  2. Voeg de nieuwe HTML-component toe aan een pagina in uw testsite. In een editor hoort de component op de pagina er als volgt uit te zien in de bewerk- en voorbeeldmodus.

    Bewerkmodus


    Beschrijving van GUID-17434B91-A25C-46EA-98D6-1A82CDA2D260-default.png volgt hierna
    Beschrijving van de illustratie GUID-17434B91-A25C-46EA-98D6-1A82CDA2D260-default.png

    Voorbeeldmodus


    Beschrijving van GUID-DF2B9038-2774-49AC-A92F-A893F59D5D63-default.png volgt hierna
    Beschrijving van de illustratie GUID-DF2B9038-2774-49AC-A92F-A893F59D5D63-default.png