fin du TinyMCE initialisé plusieurs fois | Titre du sujet : fin du TinyMCE initialisé plusieurs fois par FFClix sur 12/11/2010 16:34:06
Pour eviter d'initialiser plusieurs fois TinyMce dans AMS par exemple, il suffit de modifier le fichier /class/xoopseditor/tinymce/tinymce.php Citation : class TinyMCE { var $rootpath; var $config = array(); var $setting = array(); static $LastOfElementsTinymce=""; static $ListOfElementsTinymce=array(); // PHP 5
Constructor function __construct($config){ $this->setConfig($config); $this->rootpath = $this->config["rootpath"] . "/tinymce/jscripts/tiny_mce"; $this->xoopsPlugins = $this->get_xoopsPlugins(); self::$LastOfElementsTinymce=$this->config["elements"]; self::$ListOfElementsTinymce[]= self::$LastOfElementsTinymce; } ... ... ... function render() { static $isTinyMceJsLoaded = false; $this->init(); if (self::$LastOfElementsTinymce!=$this->setting["elements"]){ $ret = "\n<!-- 'tiny_mce.js' SCRIPT NOT YET ".$this->setting["elements"]." -->\n"; return $ret; } else { $this->setting["elements"]=implode(",",self::$ListOfElementsTinymce); }
En gros on empile les noms des elements dans un tableau static dans la classe TinyMCE (ListOfElementsTinymce), en conservant le dernier element crée $LastOfElementsTinymce.
Lorsqu'il s'agira de produire le code HTML dans la fonction render, on botte en touche tant que c'est pas le dernier, quand c'est le dernier, on charge "elements" avec la liste des elements stocké. --------------- Limitation ou bug possible!
ca ne marche pas si on change les options de tinymce entre les différentes instances (je ne suis pas sûr que ca marche) si on fait plusieurs render avant d'envoyer la page finale (encore que ... pas sûr non plus)
|
|