Errore durante il tentativo di caricare l'immagine in wysiwyg del modulo personalizzato

magento.stackexchange https://magento.stackexchange.com//questions/34422

  •  12-12-2019
  •  | 
  •  

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
.

Inserisci Descrizione dell'immagine qui

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?

È stato utile?

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>
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top