Utiliser CKeditor dans le frontend Symfony
Voici la petite recette sans avoir à utiliser le plugin Symfony :
1. Télécharger ckeditor http://ckeditor.com/
2. Décompresser dans web/js/, le répertoire ckeditor
3. Personnaliser le fichier web/js/ckeditor/config.js :
exemple :
CKEDITOR.editorConfig = function( config ) { // Define changes to default configuration here. For example: config.language = 'fr'; config.uiColor = '#1980AF'; config.resize_enabled = false; config.width = 650; config.height = 400; config.toolbarCanCollapse = false; config.enterMode = CKEDITOR.ENTER_BR; config.shiftEnterMode = CKEDITOR.ENTER_P; config.toolbar_CustomText2 = [ ['Styles','Format','Font','FontSize'], '/', ['Bold', 'Italic', 'Underline', 'Strike', '-', 'NumberedList', 'BulletedList'], ['Underline', 'Strike', '-', 'Outdent','Indent','Blockquote'], ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'], '/', ['TextColor','BGColor','-', 'Preview'] ]; };
4. En général, ckeditor est utilisé dans un formulaire, donc dans le partial du template correspondant ajouter :
<?php use_javascript('ckeditor/ckeditor.js') ?>
Puis dans le <FORM> (exemple avec une table commentaire et un champ info)
<tr> <th><?php echo $form['info']->renderLabel()?></th> <td style="width: 750px; padding:0;" colspan="2"> <?php echo $form['info']->renderError()?> <?php echo $form['info'] ?> <?php echo $form['info']->renderHelp()?> <script type="text/javascript"> CKEDITOR.replace( 'commentaire[info]', { toolbar : 'CustomText2' }); </script> </td> </tr>
5. Modifier lib/form/doctrine/CommentaireForm.class.php
$this->widgetSchema['info'] = new sfWidgetFormTextarea(array(), array('rows' => 10, 'cols' => 117 )); $this->widgetSchema->setLabels(array( 'info' => 'Laisser une info', ));