Si vous installez un module personnalisé dans Magento, il se peut qu'il ne dispose pas du navigateur multimédia TinyMce. Vous obtenez alors le message suivant :
erreur : erreur dans [objet inconnu].fireEvent() :
nom de l'événement : open_browser_callback
message d'erreur : MediabrowserUtility n'est pas défini
Comment résoudre ce problème ?
Solution rapide
Dans /app/design/adminhtml/default/default/layout/YOURMODULE.xml ajoutez :
1 js_css prototype/windows/themes/default.css js_css prototype/windows/themes/magento.css lib/prototype/windows/themes/magento.css
Ou changer
Solution longue (peut ne pas fonctionner)
Dans votre /YOURMODULE/etc/config.xml vous avez :
core/variable_observer prépareWysiwygPluginConfig
Dans Block/Adminhtml/YOURMODULE/Edit.php
fonction protégée _prepareLayout() { parent::_prepareLayout(); si (Mage::getSingleton('cms/wysiwyg_config')->isEnabled()) { $this->getLayout()->getBlock('head')->setCanLoadTinyMce(true); $this->getLayout()->getBlock('head')->setCanLoadExtJs(true); } }
Ensuite en haut de Block/Adminhtml/YOURMODULE/Edit/Tab/Form.php
fonction protégée _prepareForm() { $form = new Varien_Data_Form(); $this->setForm($form); $wysiwygConfig = Mage::getSingleton('cms/wysiwyg_config')->getConfig(array('add_variables' => false, 'add_widgets' => false, 'add_images' => true, 'files_browser_window_url' => Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/cms_wysiwyg_images/index'), 'files_browser_window_width' => (int) Mage::getConfig()->getNode('adminhtml/cms/browser/window_width'), 'files_browser_window_height'=> (int) Mage::getConfig()->getNode('adminhtml/cms/browser/window_height') ));
Plus bas :
$fieldset->addField('not-called-content', 'editor', array( 'name' => 'not-called-content', 'label' => Mage::helper('WHATEVER')->__('Contenu'), 'title' => Mage::helper('WHATEVER')->__('Contenu'), 'style' => 'width:550px; height:300px;', 'required' => false, 'config' => $wysiwygConfig, 'wysiwyg' => true ));
Avec nos remerciements à Théodores
Merci beaucoup pour cela. J'ai dû m'y référer plus d'une fois maintenant et cela m'a permis d'économiser des heures de frustration à chaque fois.