Intégrer TinyMCE à un projet Symfony
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
Problème avec textarea_tag
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
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
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
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
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
et en ajax?
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...