- 1
[Opened] PLugin TINYMCE
Posted by djanke on 01/09/2008 17:35
Aprés avoir suivi le tutorial tinymce à l'affichage le code javascript n'est pas appelé.
Dans /myapp/plugins/tpl/html/function.tinymce.php
<?php /** * function plugin : ajoute et initialise TinyMce * * @param jTpl $tpl template engine */ function jtpl_function_html_tinymce($tpl) { $rep = $GLOBALS['gJCoord']->response; $rep->addJSLink('js/tinymce/tiny_mce.js'); $rep->addJSCode('tinyMCE.init({'); $rep->addJSCode(' mode : "textareas",'); $rep->addJSCode(' theme : "simple"'); $rep->addJSCode('});'); } ?>
defaultconfig.ini.php
pluginsPath = lib:jelix-plugins/,app:plugins/; modulesPath = lib:jelix-modules/,app:modules/ tplpluginsPath = "app:plugins/tpl/";
Dans le template
<h1>Intégration de TinyMCE</h1> {tinymce} <form action="{formurl 'essai~default:index'}" method="POST"> {formurlparam 'essai~default:index'} <div> <textarea name="mon_texte" id="mon_texte" cols="50" rows="15">{$monTexte|eschtml}</textarea><br/> <input type = "submit" value="Valider" /> </div> </form>
Dans default.classic.php
$rep->bodyTpl = 'demo_tinymce'; $rep->body->assign('monTexte', "BONJOUR, mon nom est : Dominique");
La page affiche bien le textarea mais tinymce n'est pas appelé le code javascript n'est pas inséré dans le source
[Opened] Re: PLugin TINYMCE
Posted by laurentj on 01/09/2008 21:08
C'est certainement que le lien js/tinymce/tiny_mce.js n'est pas bon. Essaye de mettre un lien absolu.
[Opened] Re: PLugin TINYMCE
Posted by djanke on 01/10/2008 09:47
Je remplace
$rep->addJSLink('js/tinymce/tiny_mce.js');
par
$rep->addJSLink('/tutoriel.tinymce/wwww/js/tinymce/tiny_mce.js');
Même résultat, si le lien n'est pas bon le code javascript ne devrait il pas apparaitre dans le source de la page ???
[Opened] Re: PLugin TINYMCE
Posted by laurentj on 01/10/2008 10:04
Pourquoi ? il n'y a pas de balise <link> correspondante dans le source de la page ?
[Opened] Re: PLugin TINYMCE
Posted by djanke on 01/10/2008 10:33
Non extrait du source :
... <head> <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"/> <title></title> </head><body > ...
Je pense que le problème vient de du default.config.ini
Pourtant j'ai rajouté la ligne
tplpluginsPath = app:plugins/tpl/
[Opened] Re: PLugin TINYMCE
Posted by djanke on 01/10/2008 10:58
Jai essayé
pluginsPath = lib:jelix-plugins/,app:plugins/ modulesPath = lib:jelix-modules/,app:modules/ tplpluginsPath = app:plugins/
ou
pluginsPath = lib:jelix-plugins/,app:plugins/ modulesPath = lib:jelix-modules/,app:modules/ tplpluginsPath = app:plugins/tpl/
comme indiqué dans le wiki
Pas de link ajouté dans le head
Le cooordinateur trouve bien la fonction si dans le template je remplace {tinymce} par {tinymce2} j'ai la réponse La fonction tinymce2 est inconnue
[Opened] Re: PLugin TINYMCE
Posted by djanke on 01/10/2008 11:56
J'arrive au réultat voulu en utilisant la méthode response
Création d'un fichier myHtmlresponse dans le repertoire response contenant les instructions
.. $this->addJSLink('js/tinymce/tiny_mce.js'); $this->addJSCode('tinyMCE.init ..
Et déclaratation dans le config.ini de l'index mais cela n'est pas la bonne méthode.
[Opened] Re: PLugin TINYMCE
Posted by laurentj on 01/10/2008 12:45
tplpluginsPath est un truc obsolète depuis longtemps et non pris en compte.
Sinon pour ton problème, ça me revient. Il faut faire un plugin non pas de type function, mais cfunction. C'est à dire que ce plugin ne va pas être appelé lors de la génération du contenu, mais avant, lors de la compilation du template. Il devra donc générer du code php qui sera alors executé lors de la génération du contenu.
Enfin bref, j'ai corrigé et mis à jour le tutoriel. N'oublie pas de supprimer ton vieux plugin.
[Opened] Resolu: PLugin TINYMCE
Posted by djanke on 01/10/2008 14:20
Merci ça marche pour moi sauf au premier chargement de la page :
Warning: Unexpected character in input: ''' (ASCII=39) state=1 in D:\www_dpi\e107\tutoriel.tinymce\plugins\tpl\html\cfunction.tinymce.php on line 18
Qui disparait en enlevant le quote devant la variable $codesource
$compiler->addMetaContent('$codesource); $compiler->addMetaContent($codesource);
- 1