Creare il componente HTML

È possibile creare un nuovo componente locale nel catalogo componenti di Oracle Content Management, quindi creare il componente HTML aggiungendo e modificando i file nella relativa cartella degli asset.

Per creare e generare un componente HTML, effettuare le operazioni riportate di seguito.
  1. Creare un componente denominato HTML Component.
  2. Aggiungere il file mustache.min.js alla cartella assets nel componente HTML.
  3. Creare nella cartella assets un nuovo file denominato render.html, che contiene il codice HTML per il corpo del componente. Per questo esempio, creare il file render.html con il contenuto seguente:
    <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. Creare nella cartella assets un nuovo file denominato design.css, che contiene i fogli di stile CSS per il componente. Per questo esempio, aggiungere le righe di contenuto seguenti al file 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. Aprire il file render.js nella cartella assets e sostituirne il contenuto con il codice riportato di seguito. Indipendentemente dal codice HTML e dai fogli di stile CSS utilizzati nei passi precedenti, il file render.js seguente visualizzerà automaticamente il codice HTML e i fogli di stile CSS nella pagina:
    /* 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;
    });

Per verificare che HTML Component sia stato effettivamente generato (checkpoint 1), effettuare le operazioni riportate di seguito.

  1. Verificare che la cartella assets del componente contenga i cinque file seguenti.

    • design.css
    • mustache.min.js
    • render.html
    • render.js
    • settings.html
  2. Aggiungere il nuovo componente HTML a una pagina nel sito di test. In un editor, il componente dovrebbe essere visualizzato nella pagina come indicato di seguito, nelle modalità Modifica e Anteprima.

    Modalità Modifica


    Segue la descrizione di GUID-17434B91-A25C-46EA-98D6-1A82CDA2D260-default.png
    Descrizione dell'illustrazione GUID-17434B91-A25C-46EA-98D6-1A82CDA2D260-default.png

    Modalità Anteprima


    Segue la descrizione di GUID-DF2B9038-2774-49AC-A92F-A893F59D5D63-default.png
    Descrizione dell'illustrazione GUID-DF2B9038-2774-49AC-A92F-A893F59D5D63-default.png