Aller au contenu
Sebfie.

Ajouter l'éditeur Wysiwyg sur un textarea en admin sous magento

Article d'archive. Publié il y a plus de six ans, il peut décrire des versions ou des pratiques qui ont depuis évolué. Nous le laissons en ligne pour sa valeur documentaire.

Bonjour,
J’ai récemment rencontré un problème pour ajouter un éditeur wysiwyg sous magento, voici la solution. Dans notre exemple, c’est pour l’édition de notre modèle “actualite” dans le backoffice.
Dans le controller (app/code/local/Monprojet/Actualite/controllers/Adminhtml/ActualiteController.php ), ajouter la ligne suivante dans l’action edit

 public function editAction() {
    ....
    if (Mage::getSingleton('cms/wysiwyg_config')->isEnabled()) {
	$this->getLayout()->getBlock('head')->setCanLoadTinyMce(true);
    }
    .....

Dans le Form.php (/app/code/local/Monprojet/Actualite/Block/Adminhtml/Actualite/Edit/Tab/Form.php)ajoutez le champ de la façon suivante :

$fieldset->addField('actualite_texte', 'editor', array(
          'name'      => 'actualite_texte',
          'label'     => Mage::helper('actualite')->__('Texte'),
          'title'     => Mage::helper('actualite')->__('Texte'),
          'style'     => 'width:500px; height:300px;',
          'wysiwyg'   => true,
          'config'    => Mage::getSingleton('cms/wysiwyg_config')->getConfig(),
          'required'  => false,
      ));

Voila pour l’astuce.
et ajoutez aussi cette fonction dans le Form.php :

/**
* Load Wysiwyg on demand and Prepare layout
*/
protected function _prepareLayout()
{
    parent::_prepareLayout();
    if (Mage::getSingleton('cms/wysiwyg_config')->isEnabled()) {
        $this->getLayout()->getBlock('head')->setCanLoadTinyMce(true);
    }
}