Creación del componente HTML

Puede crear un nuevo componente local en el catálogo de componentes de Oracle Content Management y crear a continuación el componente HTML agregando y cambiando archivos en su carpeta de activos.

Para crear un componente HTML:
  1. Cree un componente y denomínelo HTML Component.
  2. Agregue el archivo mustache.min.js a la carpeta assets en HTML Component.
  3. Cree un nuevo archivo en la carpeta assets denominado render.html, que contenga HTML para el cuerpo del componente. Para este ejemplo, cree el archivo render.html con los siguientes contenidos:
    <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. Cree un nuevo archivo en la carpeta assets denominado design.css, que es el CSS del componente. Para este ejemplo, agregue las siguientes líneas como contenido del archivo 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. Abra el archivo render.js de la carpeta assets y cambie el contenido al que se muestra a continuación. Independientemente del archivo HTML y CSS que haya utilizado en los pasos anteriores, el siguiente archivo render.js representará el HTML y el CSS en la página:
    /* 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;
    });

Para verificar que se ha creado HTML Component (punto de control 1):

  1. Compruebe que la carpeta assets de su componente tiene los siguientes cinco archivos.

    • design.css
    • mustache.min.js
    • render.html
    • render.js
    • settings.html
  2. Agregue el nuevo HTML Component a una página del sitio de prueba. En un editor, debe visualizarse el componente en la página como se muestra a continuación en los modos de edición y vista previa.

    Modo de edición


    A continuación se muestra la descripción de GUID-17434B91-A25C-46EA-98D6-1A82CDA2D260-default.png
    Descripción de la ilustración GUID-17434B91-A25C-46EA-98D6-1A82CDA2D260-default.png

    Modo de vista previa


    A continuación se muestra la descripción de GUID-DF2B9038-2774-49AC-A92F-A893F59D5D63-default.png
    Descripción de la ilustración GUID-DF2B9038-2774-49AC-A92F-A893F59D5D63-default.png