Salut, j'intègre un plugin sympa que j'ai trouvé pour cake.
Il s'apelle Froala, c'est un éditeur inline. (https://www.froala.com/wysiwyg-editor).
Je le mets dans le dossier app/Plugin/Froala (plugin dispo ici sur github https://github.com/froala/wysiwyg-cake)
Je l'active dans le fichier app/config/bootstrap.php :
CakePlugin::load('Froala')
Je charge mon helper comme indiqué dans le controller de mon choix :
public $helpers = array('Html','Date','Form'=> array('className' => 'Bootstrap'), 'Froala.Froala' );
Et j'utilise le helper comme indiqué sur la doc. directement dans une vue comme ceci:
$this->Froala->editor('.selector', array('inlineMode' => false));
Tout semble fonctionner, je n'ai pas d'erreur liée au chargement du helper ou du plugin, à ceci près que les fichiers CSS et JS liés au plugin ne peuvent pas se charger car ils indiquent un mauvais chemin.
Lorsque je sors l'inspecteur, au chargement de la page j'ai le chemin suivant (et il est erronné car le fichier n'est pas ici) :
http://sandbox.com/monsite/Froala/js/froala_editor.min.js
Le chemin réel du fichier dans cake :
monsite/app/Plugin/Froala/webroot/js/froala_editor.min.js
QUESTION : est-ce que je fais une erreur dans le chargement du plugin, ou ai-je oublié quelque chose pour que Cake détecte correctement les liens des fichiers CSS et JS liés au plugin ?
Merci par avance de vos lumières
Bonsoir.
Pour charger les fichiers, est-ce que tu fais comme ça ?
$this->Html->css('Froala.froala_editor.min', ['inline' => false]);
$this->Html->script('Froala.froala_editor.min', ['inline' => false]);
Salut Lartak,
en fait non, je n'ai même pas besoin de les charger manuellement, simplement en validant le plugin dans config/bootstrap.php, les fichiers se chargent.
Voici ce que j'ai dans le app/Plugin/Froala/View/Helper/FroalaHelper.php
public function beforeRender($viewFile) {
$appOptions = Configure::read('Froala.editorOptions');
if ($appOptions !== false && is_array($appOptions)) {
$this->_defaults = $appOptions;
}
$this->Html->script(array(
'/Froala/js/froala_editor.min.js',
'/Froala/js/plugins/block_styles.min.js',
'/Froala/js/plugins/colors.min.js',
'/Froala/js/plugins/file_upload.min.js',
'/Froala/js/plugins/font_family.min.js',
'/Froala/js/plugins/media_manager.min.js',
'/Froala/js/plugins/font_size.min.js',
'/Froala/js/plugins/lists.min.js',
'/Froala/js/plugins/tables.min.js',
'/Froala/js/plugins/char_counter.min.js',
'/Froala/js/plugins/inline_styles.min.js',
'/Froala/js/plugins/urls.min.js',
'/Froala/js/plugins/fullscreen.min.js',
'/Froala/js/plugins/video.min.js'), array('inline' => false));
$this->Html->css('/Froala/css/froala_editor.min.css');
}
Ca vient probablement de là.
Le fichier complet à voir sur Github => https://github.com/froala/wysiwyg-cake/blob/master/View/Helper/FroalaHelper.php
Essaies tout simplement de remplacer par ceci :
$this->Html->script([
'Froala.froala_editor.min',
'Froala.plugins/block_styles.min',
'Froala.plugins/colors.min',
'Froala.plugins/file_upload.min',
'Froala.plugins/font_family.min',
'Froala.plugins/media_manager.min',
'Froala.plugins/font_size.min',
'Froala.plugins/lists.min',
'Froala.plugins/tables.min',
'Froala.plugins/char_counter.min',
'Froala.plugins/inline_styles.min',
'Froala.plugins/urls.min',
'Froala.plugins/fullscreen.min',
'Froala.plugins/video.min'], ['inline' => false]);
$this->Html->css('Froala.froala_editor.min', ['inline' => false]);