Errore durante il tentativo di caricare l'immagine in wysiwyg del modulo personalizzato
Domanda
Sto ottenendo il seguente avviso JavaScript quando faccio clic sul pulsante "Sfoglia" sull'immagine Inserisci il popup del wysiwyg:
error: error in [unknown object].fireEvent():
event name: open_browser_callback
error message: MediabrowserUtility is not defined
.
Quindi sembra che mage/adminhtml/browser.js
non venga incluso dove è definito MediabrowserUtility
.
My form.php file per questa pagina è simile a questo:
<?php
class Limesharp_Playzone_Block_Adminhtml_Competition_Edit_Form extends Mage_Adminhtml_Block_Widget_Form{
protected function _prepareForm(){
if (Mage::getSingleton('adminhtml/session')->getCompetitionData())
{
$data = Mage::getSingleton('adminhtml/session')->getCompetitionData();
Mage::getSingleton('adminhtml/session')->getCompetitionData(null);
}
elseif (Mage::registry('competition_data'))
{
$data = Mage::registry('competition_data')->getData();
}
else
{
$data = array();
}
$form = new Varien_Data_Form(array(
'id' => 'edit_form',
'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
'method' => 'post',
'enctype' => 'multipart/form-data',
));
$form->setUseContainer(true);
$this->setForm($form);
$fieldset = $form->addFieldset('competition_form', array(
'legend' =>Mage::helper('playzone')->__('Competition Details')
));
...
$fieldset->addField('details', 'editor', array(
'label' => Mage::helper('playzone')->__('Details'),
'name' => 'details',
'config' => Mage::getSingleton('cms/wysiwyg_config')->getConfig(),
'wysiwyg' => true
));
$form->setValues($data);
return parent::_prepareForm();
}
protected function _prepareLayout(){
parent::_prepareLayout();
if (Mage::getSingleton('cms/wysiwyg_config')->isEnabled()) {
$this->getLayout()->getBlock('head')->setCanLoadTinyMce(true);
}
}
}
.
Cosa deve accadere per questo file da includere?
Soluzione
Mi ci sono voluti qualche giorno per romperlo ma ho finalmente funzionato.
@marius, mi ha preso a metà strada, ho dovuto aggiungere il problema al mio file di layout adminhtml:
<playzone_adminhtml_activity_edit>
<update handle="editor"/>
<reference name="head">
<action method="setCanLoadTinyMce"><load>1</load></action>
</reference>
</playzone_adminhtml_activity_edit>
.
Mentre è stato liberato dell'allert JavaScript, tuttavia ha caricato una pagina 404 nel popup.
Ho dovuto anche modificare la configurazione wysiwyg come nel mio file form.php:
...
$wysiwyg_config = Mage::getSingleton('cms/wysiwyg_config')->getConfig(
array( 'files_browser_window_url' => Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/cms_wysiwyg_images/index') )
);
$fieldset->addField('details', 'editor', array(
'label' => Mage::helper('playzone')->__('Details'),
'name' => 'details',
'config' => $wysiwyg_config,
'wysiwyg' => true
));
...
. Altri suggerimenti
Assicurati di averlo all'interno della maniglia del layout per la tua pagina:
<layout_handle_here>
<update handle="editor"/>
<reference name="head">
<action method="setCanLoadTinyMce"><load>1</load></action>
....
</reference>
.....
</layout_handle_here>
.