Bonjour xXmouse, voila en résumé comment je procède.
Voici un lien su le script que j'insère dans mes modules.
editor_functions.zipPour l'utiliser soit je met dans xoops_version un truc du style:
//-------------------------------------------------------
//_HER_JJD_PATH -> est une constante qui défini le repertoire ou se trouve le script
include_once (_HER_JJD_PATH.'include/editor_functions.php');
//puis dans les parametres un peu plus bas:
$i++;
$modversion['config'][$i]['name'] = 'editor';
$modversion['config'][$i]['title'] = '_MI_HER_EDITOR';
$modversion['config'][$i]['description'] = '_MI_HER_EDITOR_DSC';
$modversion['config'][$i]['formtype'] = 'select';
$modversion['config'][$i]['valuetype'] = 'int';
$modversion['config'][$i]['default'] = 1; //_EDITOR_DHTMLTEXTAREA
$modversion['config'][$i]['options'] = getEditorList(); //affiche liste des editeurs installés
//-------------------------------------------------------
ensuite dans le code des module je fais appel a la fonction "getXME"
dans l'exemple $p['texte'] est le texte récupéré dans une table pour le remettre en édition
et "txtTexte" est le nom de l'objet par lequel je pourrais récupérer le texte
//-------------------------------------------------------
$desc1 = getXME($myts->makeTareaData4Save($p['texte']), 'txtTexte', '','100%');
echo "<TR>"._br;
echo "<TD align='center' ><B>"._AD_HER_TEXTE."</B</TD>"._br;
echo "<TD align='left' >";
echo $desc1->render();
echo "</TD>"._br;
echo "</TR>"._br;
//-------------------------------------------------------
Soit je défini dans le code l'éditeur que je veux utiliser pour des cas particulier en utilisant la fonction "":
//---------------------------------------------------------
$ed = _EDITOR_KOIVI
$desc1 = getEditor($ed , $value, $name = 'txtListe', $caption = 'Liste',
$width='80%', $height='400px',
$rows = 24 , $cols = 69 );
//$value est le teste a editer
//$name le nom de l'objet
//---------------------------------------------------------
a cela j'ajoute un embryon de script java script pour les cas ou j'ai besoin de manipuler le texte directement dans la page HTML, notamment pour insérer du texte:
//---------------------------------------------
//java script
//---------------------------------------------
function insertText2Wysiwyg (sText2Insert, destination, intEditor){
//define ('_EDITOR_TEXTAREA', 0);
//define ('_EDITOR_DHTMLTEXTAREA', 1);
//define ('_EDITOR_KOIVI', 2);
//define ('_EDITOR_TINY', 3);
//define ('_EDITOR_INBETWEEN', 4);
//define ('_EDITOR_DHTMLA', 5);
//alert( delimitor);
//---------------------------------------------------
textareaDoms = document.getElementsByName(destination);
textareaDom = textareaDoms[0];
//---------------------------------
switch (intEditor){
case 2: //_EDITOR_KOIVI
XK_insertHTML(sText2Insert,destination);
break;
case 3: //_EDITOR_TINY
case 4: //_EDITOR_TINY
tinyMCE.execInstanceCommand(destination, "mceInsertContent",false, sText2Insert);
default: //_EDITOR_TEXTAREA - _EDITOR_DHTMLTEXTAREA - _EDITOR_DHTMLA
xoopsInsertText(textareaDom, sText2Insert);
}
//textareaDom.focus();
return;
}
//----------------------------------------------------------------------
Pour ne pas avoir à modifier le core de xoops, j'ai mis ces bibliothèque dans un module qui ne fait rien que mutualiser ces script pour leur utilisation dans d'autre module.
Pour en savoir plus vous pouvez jeter un oeil par ici
http://xoopx.kiolo.com, je l'utilise notamment dans mon module de newsLetters.
Il y a certainement des trucs a améliorer, je ne suis pas un pro de PHP ni de javaScript, mais ça réponds à mes besoins de simplification et de modularité.
J'espère que je suis assez clair !!!