SPIP - Contrib

[ar] [en] [es] [fr] [it]



Accueil du site > Rédaction > Assistants de rédaction > Archives Assistants de rédaction > Editeurs WYSIWYG avant Spip 1.9

VarianteContribUtiliser-l-editeur-WYSIWYG

dimanche 12 novembre 2006. Dernier ajout mardi 9 octobre 2007



Utilisation de l’éditeur Xinha pour le champ texte de l’article

[Erreur...3]Il s’agit de la procédure générale et tout n’est pas traité ici :
- problème du texte scindé (personnellement j’ai juste augmenté la taille limite)
- problème de déplacement des zones de saisie lorque l’on utilise l’éditeur avec Mozilla uniquement (si quelqu’un à une idée pour résoudre cela*)
- je désactive aussi les raccourcis spip pour le texte (dans le squelette et dans la partie privée)

[Erreur...5]Ce rajout fixe la largeur de façon contraignante et évite le déplacement de la zone de saisie, car sinon le cadre principal (< div class="cadre-formulaire" > dans la page générée) voit sa largeur augmenter à chaque clic.

  .cadre-formulaire {
/*  border: 1px solid <?php echo $couleur_foncee; ?>;
   background-color: #dddddd;*/
   color: #444444;
   font-family: verdana, arial, helvetica, sans;
   font-size: 11px;
   width: 640px
}

[Erreur...8]Copier le code qui suit dans le fichier my_config.js dans le repertoire xinha :

xinha_editors = null;
xinha_init    = null;
xinha_config  = null;
xinha_plugins = null;

[Erreur...11]      xinha_plugins = xinha_plugins ? xinha_plugins :
     [
              '[->CharacterMap]',
              '[->ContextMenu]',
              '[->[->SuperClean]]'
       ];
            // THIS BIT OF JAVASCRIPT LOADS THE PLUGINS, NO TOUCHING  :)
            if(!HTMLArea.loadPlugins(xinha_plugins, xinha_init)) return;

     /** STEP 2 ***************************************************************
      * Now, what are the names of the textareas you will be turning into
      * editors?
      ************************************************************************/

     xinha_editors = xinha_editors ? xinha_editors :
     [
       'text_area'
   
     ];

     /** STEP 3 ***************************************************************
      * We create a default configuration to be used by all the editors.
      * If you wish to configure some of the editors differently this will be
      * done in step 5.
      *
      * If you want to modify the default config you might do something like this.
      *
      *   xinha_config = new HTMLArea.Config();
      *   xinha_config.width  = '640px';
      *   xinha_config.height = '420px';
      *
      *************************************************************************/
       

      xinha_config = xinha_config ? xinha_config() : new HTMLArea.Config();

xinha_config.width  = '640px';
xinha_config.height = '420px';


[Erreur...18][Erreur...19]    xinha_editors   = HTMLArea.makeEditors(xinha_editors, xinha_config, xinha_plugins);

     /** STEP 5 ***************************************************************
      * If you want to change the configuration variables of any of the
      * editors,  this is the place to do that, for example you might want to
      * change the width and height of one of the editors, like this...
      *
      *   xinha_editors.myTextArea.config.width  = '640px';
      *   xinha_editors.myTextArea.config.height = '480px';
      *
      ************************************************************************/



     /** STEP 6 ***************************************************************
      * Finally we "start" the editors, this turns the textareas into
      * Xinha editors.
      ************************************************************************/

     HTMLArea.startEditors(xinha_editors);
   }

   window.onload = xinha_init;

[Erreur...25][Erreur...26]

// Modifications pour utilisation xinharea

        //echo "<br>"._T('texte_enrichir_mise_a_jour');
        //echo aide("raccourcis");
        //echo $textes_supplement;
        //echo "<BR>";
        //echo afficher_barre('document.formulaire.texte');
        //echo "<TEXTAREA id='text_area' NAME='texte' ".$GLOBALS['browser_caret']." CLASS='formo' ROWS='$rows' COLS='40' wrap=soft>";
        //echo $texte;
        //echo "</TEXTAREA>n";

[Erreur...30][Erreur...31]// Fin des modifications

echo "<TEXTAREA id='text_area' NAME='texte' ".$GLOBALS['browser_caret']." CLASS='formo' ROWS='$rows' COLS='40' wrap=soft>";
echo $texte;
echo "</TEXTAREA>n";

Complément : un répertoire image pour chaque rédacteur

[Erreur...35]Ces modifications impliquent de rajouter une variable de session dans "ecrire/article_edit.php3" et dans "/xinha/plugins/[->[->[->[->[->[->...]]]]]]/config.inc.php" et de rajouter un peu de code... :

  • dans le repertoire principal du spip :
    • Créer un répertoire "[->[->UserFiles]]" (ou tout autre nom) pour le répertoire images des utilisateurs
    • Autoriser ce répertoire en écriture (sous Linux : chmod 0777)
  • dans "ecrire/article_edit.php3" :
    • ajouter à la ligne 2 (après " <?php") : <span class="base64" title='PGNvZGUgY2xhc3M9J3NwaXBfY29kZScgZGlyPSdsdHInPnNlc3Npb25fc3RhcnQoKTs8L2NvZGU+' ></span>
      -** ajouter avant les modifications précédemment citées {(ligne 500 environ)} : <div class="
      base64" title='PGRpdiBzdHlsZT0ndGV4dC1hbGlnbjogbGVmdDsnIGNsYXNzPSdzcGlwX2NvZGUnIGRpcj0nbHRyJz48Y29kZT4kX1NFU1NJT05bJ2lkX2F1dGV1ciddID0gJGNvbm5lY3RfaWRfYXV0ZXVyOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA8YnIgLz4NCiRfU0VTU0lPTlsnc3RhdHV0X2F1dGV1ciddID0gJGNvbm5lY3Rfc3RhdHV0OzwvY29kZT48L2Rpdj4=' ></div>



      [Erreur...39][Erreur...40]$pos_xinha_dir = strpos($_SERVER['SCRIPT_FILENAME'],'xinha');
      $xinha_dir = substr($_SERVER['SCRIPT_FILENAME'],0, $pos_xinha_dir).'[->[->[->UserFiles]]]/';

      if ($statut_auteur == "
      0minirezo")    $IMConfig['images_dir'] = $xinha_dir ;
      else $IMConfig['images_dir'] = $xinha_dir."
      /".$id_auteur ;

      if (!is_dir($IMConfig['images_dir'])) mkdir($IMConfig['images_dir'], 0777 ) ;

      [Erreur...44][Erreur...45]$pos_xinha_url = strpos($_SERVER['REQUEST_URI'],'xinha');
      $xinha_url = substr($_SERVER['REQUEST_URI'],0, $pos_xinha_url).'[->[->[->UserFiles]]]/';

      if ($statut_auteur == "
      0minirezo") $IMConfig['images_url'] = $xinha_url ;
      else $IMConfig['images_url'] = $xinha_url."
      /".$id_auteur ;

      // -------------------------------------------------------------------------
      </code>

      ----

      {patch pour autoriser la création de répertoire avec [->[->[->[->[->[->[->ImageManager]]]]]]] :}
      -* {{dans "
      /xinha/plugins/[->[->[->[->[->[->[->ImageManager]]]]]]]/newFolder.html"}} (la création de répertoire est actuellement impossible suite à une modification de la strucuture de [->[->[->[->[->[->[->ImageManager]]]]]]] - les boutons du popup sont inactifs - et le patch n'est pas dans la distribution de xinha) :
      -** ajouter ligne 18 : <span class="
      base64" title='PGNvZGUgY2xhc3M9J3NwaXBfY29kZScgZGlyPSdsdHInPiZsdDtzY3JpcHQgdHlwZT0mcXVvdDt0ZXh0L2phdmFzY3JpcHQmcXVvdDsgc3JjPSZxdW90Oy4uLy4uL3BvcHVwcy9wb3B1cC5qcyZxdW90OyZndDsmbHQ7L3NjcmlwdCZndDs8L2NvZGU+' ></span>

      {GD et IM :}
      -* par défaut, [->[->[->[->[->[->[->ImageManager]]]]]]] est paramètré avec la librairie GD, qui fonctionne toujours, mais n'est pas très performante. Il vaut mieux lui préférer [->ImageMagick] qui autorise bien plus de transformations et de manipulations d'images (retailler, pivoter...). Il faut cependant penser à bien indiquer le chemin ou Apache pourra y accéder...

Répondre à cet article



Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | Charte et vie SPIP-Contrib | SPIP | L'autre.net