Outils personnels
Vous êtes ici : Accueil Symfony Intégrer TinyMCE à un projet Symfony
Actions sur le document
  • Send this page to somebody
  • Print this page
  • Add Bookmarklet

Intégrer TinyMCE à un projet Symfony

Par Pierre-Yves Landuré - Dernière modification 13/03/2010 15:03

TinyMCE est un éditeur HTML Wysiwyg en ligne qui s'intègre parfaitement avec Symfony. Cependant, il est nécessaire de télécharger des paquets tierces pour pouvoir l'utiliser. Ce guide décrit cette procédure.

Remarque : Ce guide nécessite de disposer de la commande unzip. Pour Debian et Ubuntu, vous pouvez l'installer avec apt-get :

/usr/bin/sudo /usr/bin/apt-get install unzip

Installation de TinyMCE

En premier lieu, renseignez l'emplacement de votre projet Symfony :

PROJECT_HOME=/home/sfprojects/monProjet

Ainsi que l'application de votre projet que vous souhaitez configurer pour utiliser TinyMCE :

PROJECT_APP=frontend

Et la version de TinyMCE que vous souhaitez installer :

TINYMCE_VERSION=3.2.1.1

Nous retirons les '.' du numéro de version de TinyMCE :

TINYMCE_CLEANED_VERSION=$(echo ${TINYMCE_VERSION} | sed -e 's/\./_/g')

Téléchargez les sources de TinyMCE :

/usr/bin/wget http://ovh.dl.sourceforge.net/sourceforge/tinymce/tinymce_${TINYMCE_CLEANED_VERSION}.zip \
--output-document=/tmp/tinymce_${TINYMCE_VERSION}.zip

Nous décompressons les sources ainsi obtenues :

/usr/bin/unzip -o /tmp/tinymce_${TINYMCE_VERSION}.zip -d /tmp

Si vous le souhaitez, vous pouvez aussi télécharger les fichiers de traduction de TinyMCE :

/usr/bin/wget http://services.moxiecode.com/i18n/download.aspx?format=zip\&product=tinymce \
--output-document=/tmp/tinymce_language_pack.zip

Décompressez le fichier téléchargé à l'emplacement adéquat :

/usr/bin/unzip -o /tmp/tinymce_language_pack.zip -d /tmp/tinymce/jscripts/tiny_mce

Et nous déplaçons les dossiers nécessaire à l'intégration dans Symfony à l'emplacement adéquat :

/bin/cp -r /tmp/tinymce/jscripts/tiny_mce/ "${PROJECT_HOME}/web/js/"

Et configurez votre projet Symfony pour utiliser TinyMCE :

/bin/sed -i -e '/^  .settings:/a\
rich_text_js_dir: js/tiny_mce' "${PROJECT_HOME}/apps/$PROJECT_APP/config/settings.yml"

Attention: vérifiez votre fichier settings.yml pour avoir la certitude que tout s'est bien passé :

/usr/bin/vim "$PROJECT_HOME/apps/$PROJECT_APP/config/settings.yml"

Vous pouvez maintenant nettoyer les fichiers téléchargés :

/bin/rm -r /tmp/tinymce
/bin/rm /tmp/tinymce_language_pack.zip
/bin/rm /tmp/tinymce_$TINYMCE_VERSION.zip

Vous pouvez maintenant utiliser TinyMCE en utilisant des codes tels que :

<?php echo textarea_tag('name', 'default content', 'rich=true size=10x20') ?>
<?php echo textarea_tag('name', 'default content', array(
'rich' => true,
'size' => '10x20',
'tinymce_options' => 'language:"fr",theme_advanced_buttons2:"separator"',
)) ?>

Remerciements

  • Merci aux développeurs de TinyMCE.
  • Merci aux développeurs de Symfony.

et en ajax?

Posté par morganistic le 08/01/2009 16:51
Bonjour,
j' aimerai savoir comment faire fonctionner tinymce
si je souhaite l'integrer dans une page appelée en ajax.
j' ai essayé beaucoup de choses dont un
javascript_tag('tinyMCE.Init();') dans la page appelée,
mais rien n' y fait mon text area n' est pas trop trop riche...

ajax OK

Posté par chamaster le 13/01/2009 20:54
la dernière version de tiny_mce supporte ajax

Problème avec textarea_tag

Posté par Malonix le 02/04/2009 08:14
Bonjour,

J'aimerai avoir un petit coup de main sur cet petit aide, car voila j'aimerai savoir comment fait-on pour que ca fonctionne mais avec un formulaires déjà crée par défaut avec doctrine quand on génère le module...

Et une autre question, textarea_tag ne fonctionne pas chez moi, est ce que cet fonction est spécifique à Propel, ou on peut le faire avec les deux? Si oui comment?

symfony 1.2

Posté par lwolf le 02/04/2009 08:24
Bonjour,

n'ayant pas abordé symfony 1.2 et doctrine, je ne peut vous aider. Pour ce que j'en sais, il faut modifier manuellement les formulaires créé automatiquement pour y ajouter le richtext. Quand au textarea_tag il faut faire appel au helper adéquat (de mémoire il s'agit de Form, mais je peut me tromper). Je vous conseille de vous reporter au livre symfony disponible sur http://www.symfony-project.org/

Bonne continuation.

Suite

Posté par Malonix le 02/04/2009 14:48
Donc voila je suis toujours bloqué j'ai reussi à afficher le richtext en inserant le plugin sfFormExtraPlugin... Mais voila un soucis résolu mais un autre derrière apparait, quand par exemple je veux faire mon propre affichage du formulaire, en utilisant la fonction render(), il ne veux plus enregistrer dans la base de donnée et me retourne sur le formulaire sans erreurs... Alors que quand j'utilise juste dans ma vue <?php $this->form ?> cela fonctionne nickel et me l'enregistre...

Donc voila j'ai passé la journée à chercher et toujours rien donc voila je ne sais pas quoi faire pour que ca fonctionne...

Token

Posté par Thierry le 25/08/2009 07:23
Peut-être une réponse :
Si tu as oublié de générer le Token, alors il est normal que l'enregistrement ne fonctionne plus.
un <?php echo $form['_csrf_token']->render() ?> à la fin du formulaire et c'est réglé.

Conseil de passer avec CKEditor

Posté par leny le 02/12/2010 04:34
Bonjour,
J'utilisais TinyMce sur mes projets Symfony mais depuis que j'ai testé CKEditor, je ne jure plus que par lui, je ne peux donc que vous le conseiller. J'ai réalisé un petit tutoriel si ca vous interesse.

http://leny-bernard.com/en/show/tutorial/installer-ckeditor-un-editeur-wysiwyg-rapidement

enjoy


Réalisé avec Plone

Ce site respecte les normes suivantes :

Wikio