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',
 ));
Vus : 1034
Publié par Vince : 7