Création du composant HTML

Vous pouvez créer un composant local dans le catalogue de composants Oracle Content Management, puis créer le composant HTML en ajoutant et en modifiant les fichiers dans son dossier de ressources.

Pour créer un composant HTML, procédez comme suit :
  1. Créez un composant et nommez-le HTML Component.
  2. Ajoutez le fichier mustache.min.js au dossier assets du composant HTML.
  3. Créez un fichier dans le dossier assets nommé render.html, contenant le code HTML du corps de votre composant. Par exemple, créez le fichier render.html avec le contenu suivant :
    <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. Créez un fichier dans le dossier assets nommé design.css, qui constituera le fichier CSS de votre composant. Par exemple, ajoutez les lignes suivantes en tant que contenu du fichier 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. Ouvrez le fichier render.js du dossier assets et modifiez-en le contenu pour qu'il corresponde au contenu ci-dessous. Peu importe le code HTML et le code CSS que vous avez utilisés dans les étapes précédentes, le fichier render.js les affichera sur la page :
    /* 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;
    });

Pour vérifier que le composant HTML a été créé (point de reprise 1), procédez comme suit :

  1. Vérifiez que le dossier assets de votre composant contient les cinq fichiers suivants.

    • design.css
    • mustache.min.js
    • render.html
    • render.js
    • settings.html
  2. Ajoutez le nouveau composant HTML à une page de votre site de test. Dans un éditeur en mode Modification et en mode Aperçu, le composant doit apparaître comme suit sur la page.

    Mode Modification


    La description de GUID-17434B91-A25C-46EA-98D6-1A82CDA2D260-default.png est la suivante
    Description de l'illustration GUID-17434B91-A25C-46EA-98D6-1A82CDA2D260-default.png

    Mode Aperçu


    La description de GUID-DF2B9038-2774-49AC-A92F-A893F59D5D63-default.png est la suivante
    Description de l'illustration GUID-DF2B9038-2774-49AC-A92F-A893F59D5D63-default.png