Voici un petit tutoriel pour vous expliquer comment installer CKEditor dans symfony.
Installer le plugin sfCKEditorPlugin
La première étape consiste à installer le plugin sfCKEditorPlugin qui va grandement nous faciliter les choses. L’installation de ce plugin est légèrement différente des plugins classiques car il n’est pas encore stable.
plugin:install -r 0.1.2 sfCKEditorPlugin
Récupérer la dernière version de CKEditor
Vous avez installez le plugin, c’est bien mais maintenant il faudrait récupérer l’ensemble des fichiers qui permettent à CKEditor d’afficher votre formulaire wysiwyg.
Pour cela allez sur le site de CKEditor à la page download et récupérez la dernière version.
Décompressez l’archive obtenue et copiez le dossier ckeditor dans web/js.
Configurer le fichier autoload.yml
Dans le dossier config ajouter le fichier autoload.yml et placez-y le code suivant:
autoload: ckeditor: name: ckeditor path: %SF_WEB_DIR%/js/ckeditor recursive: on
Configurer le fichier app.yml
Dans le fichier apps/mon_app/config/app.yml ajoutez le code suivant:
all: ckeditor: basePath: '/js/ckeditor/'
Appeler le widget sfWidgetFormCKEditor
Il ne vous reste plus qu’à appeler le widget sur votre champ de formulaire comme ceci:
$this->widgetSchema['mon_champ'] = new sfWidgetFormCKEditor();
FAQ
- J’ai l’erreur « CKEditor class not found »:
C’est le chemin spécifié dans autoload.yml qui est faux, vérifiez la variable path. - ckeditor.js n’est pas trouvé, j’ai une erreur 404:
C’est le chemin spécifié dans app.yml qui est faux, vérifiez la variable basePath - Comment personnaliser la barre d’outil de CKeditor ?
Dans un premier temps vous allez modifier l’appel de votre widget pour qu’il prenne en compte le fichier de configuration que vous aurez définie:$this->widgetSchema['mon_champ'] = new sfWidgetFormCKEditor(array( 'jsoptions'=>array( 'config' =>'fckeditor/config.js' ) ));
Ensuite, allez dans www/js/ckeditor/config.js puis appliquez les modifications que vous désirez. (Voir la doc de ckeditor sur le sujet)
Si vous rencontrez des problèmes, n’hésitez pas à utiliser les commentaires, j’essaierai de vous aider et je compléterai au passage la FAQ.