Navigation

Related Articles

TinyMCE dans l’admin generator (Symfony 1.2, Doctrine)


Samuel Breton
TinyMCE dans l’admin generator...

Comment mettre en place un « Rich Text Editor » dans un backend Symfony 1.2 doctrine ?
J’ai trouvé la solution dans un post du forum symfony, je vous donne la version originale :

http://forum.symfony-project.org/index.php/m/66906/?srch=tinymce+3+steps#msg_66906

En français et expliqué plus en détails, ça donne :

Intégrer Tiny MCE

Installer le plugin sfFormExtraPlugin:

symfony plugin:install sfFormExtraPlugin

Modifier le widget sfWidgetFormTextareaTinyMCE.class.php

Il faut modifier le plugin !

/plugins/sfFormExtraPlugin/lib/widget/sfWidgetFormTextareaTinyMCE.class.php

Fichier :

<?php
class sfWidgetFormTextareaTinyMCE extends sfWidgetFormTextarea
{
  protected function configure($options = array(), $attributes = array())
  {
    $this->addOption('theme', 'advanced');
    $this->addOption('width');
    $this->addOption('height');
    $this->addOption('config', '');
  }
  public function render($name, $value = null, $attributes = array(), $errors = array())
  {
    $attributes = array_merge($this->attributes, $attributes); 
    ...

Utilisation

Modifier ce fichier :

/lib/form/doctrine/ContenuForm.class.php

<?php
class ContenuForm extends BaseContenuForm
{
  public function configure()
  {
      $this->widgetSchema['texte'] =  new sfWidgetFormTextareaTinyMCE(
      array(
        'width'=>550,
        'height'=>350,
        'config'=>'theme_advanced_disable: "anchor,image,cleanup,help"',
        'theme'   =>  sfConfig::get('app_tinymce_theme','advanced'),
      ),
      array(
        'class'   =>  'tiny_mce'
      )
    );
    $js_path = sfConfig::get('sf_rich_text_js_dir') ? '/'.sfConfig::get('sf_rich_text_js_dir').'/tiny_mce.js' : '/sf/tinymce/js/tiny_mce.js';
    sfContext::getInstance()->getResponse()->addJavascript($js_path);
  }
}


Sources:

Show Comments (13)

Comments

  • miky

    Bonjour,
    J’ai une question qui peut semble bête mais je suis débutant.
    J’ai essayé d’intégrer tinymce comme vous dites et tout fonctionne nikel par contre tout ce que j’ajoute s’affiche avec les balise html ( ouy é pour é) alors que tout ce qui est passé via les textarea s’affiche correctement.
    Pouvez vous me dire comment régler ce truc s’il vous plait?
    Merci

    • Article Author
  • thomas

    Bonjour miky!
    lorsque tu affiches le texte tu dois faire quelque chose dans le style:
    echo $objet->getTexte();
    quand il y a du code html dans le champs il faut faire:
    echo $objet->getTexte(ESC_RAW);
    c’est une protection symfony pour ne pas interpréter le code html directement…
    par exemple si un utilisateur rentre du javascript dans un commentaire, il ne faut pas qu’il soit interprété.
    Est-ce que ceci réponds à ton problème?

    • Article Author
  • miky

    Bonjour Thomas,
    Merci de la réponse rapide.
    La tout de suite je ne peux pas te donner de réponse car mon formulaire est généré par l’admin générator et m’affiche directement les enregistrements sans que j’ai eu à intervenir au niveau du code.
    Je ne sais pas trop dans quel fichier regarder (même si je pense qu’il s’agit d’un fichier qui se trouve dans le répertoire lib/form).
    Je cherche et je te tiens au courant
    Merci

    • Article Author
  • Mike

    Merci.
    C’est bon j’ai trouvé

    • Article Author
  • Yannick

    Bonjour,

    En suivant ce post, j’ai réussi à installer l’éditeur mais je ne vois pas comment faire pour rajouter des boutons supplémentaires tels que (ajouter une image, couleur de la police, insertion d’un media…).
    Savez vous comment faire, s’il vous plait?
    Merci

    • Article Author
  • admin

    Il faut que tu regarde la doc de l’éditeur ce n’est plus du symfony la 🙂

    • Article Author
  • Oncle Tom

    Tu peux faire plus simple avec le JS en utilisant la méthode getJavascript() des widgets, en créant ton propre widget.

    Ça t’évite de modifier des fichiers et tu continues à jouer avec les conventions.

    • Article Author
  • temet

    Bonjour,

    Problème:
    J\’ai appliqué cette méthode à la lettre et tout ce que ça a changé c\’est la taille de ma textearea qui passe à sa taille par défaut.

    Cause:
    J\’utilise jQuery dans mon frontend et j\’envisage d\’utiliser tinyMCE dans le frontend aussi. J\’ai donc téléchargé \"TinyMCE pour jQuery\".

    Solution:
    Penser à inclure jQuery dans le backend !

    Par exemple à l\’étape \"/lib/form/doctrine/ContenuForm.class.php\" juste avant \"$js_path = sfConfig::get(\’sf_rich_text_js_dir\’) ? \’/\’.sfConfig::get(\’sf_rich_text_js_dir\’).\’/tiny_mce.js\’ : \’/sf/tinymce/js/tiny_mce.js\’;\"
    mettez \"sfContext::getInstance()->getResponse()->addJavascript(\’/js/jquery-1.3.2.min.js\’);\"

    A adapter bien sur suivant la version de jQuery.
    Si vous n\’utilisez pas jQuery dans le backend prenez la vers \"standalone\" de TnyMCE.

    En espérant faire avancer le schmilblik,

    Cordialement,

    Tem

    • Article Author
  • milk

    Bonjour,

    Merci pour le tuto ca marche nikel mais j’ai 2 petites questions :

    1/ J’ai du modifier mon setting.yml : rich_text_js_dir: js/tinyMCE
    dans « lib/symfony/config/config » sinon le chemin du tinyMCE était incorrect. Est ce normal ?

    2/ Lorsque je veux ajouter une image je n’ai pas de bouton parcourir je dois mettre le chemin de l’image en dur. A partir de quel répertoire tinyMCE prend l’image ? Est il possible d’ajouter une image inexistante ?

    Encore merci pour cet article

    milk

    • Article Author
  • jean

    bjr.
    j’ai une question.
    lorsque j’ouvre l’editeur, la description monte et se cache sou la barre des bbcodes, impossible de retrouver la description.
    donc il faut que je referme, et que j’ouvre à nouveau pour voir apparaître la description.
    pouvez vous mettez.?
    merci. paul

    • Article Author
  • Seth

    bjr,

    j\\\’ai un problème concernant le PEAR car il semble que sans le PEAR on ne pourra pas installer le plugin dans symfony, Que dois-je faire

    • Article Author
  • Seth

    Bjr,

    Je n’arrive pas à installer le PEAR dans windows et j’ai installer mon plugin manuellement mais je sais pas si il marche vraiment car je n’ai aucune reponse. Que dois je faire

    • Article Author
  • Seth

    Bjr,

    Comment parametrer le ibrowser de tinyMCE pour pouvoir uploader des images.

    Merci

    • Article Author

Recevez nos articles