Hello All
I have a magento site, version 1.9.6. My problem is to create the New I-Banner...
Fatal error: Call to a member function setUrl() on null in /home3/xapuntoc/public_html/app/code/community/My/Ibanner/Block/Adminhtml/Banner/Add/Tab/Image.php on line 51
Image.php code:
<?php /** * Magento * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/osl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@magentocommerce.com so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade Magento to newer * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * * @category My * @package My_Ibanner * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Image block * * @category My * @package My_Ibanner * @author Theodore Doan <theodore.doan@gmail.com> */ class My_Ibanner_Block_Adminhtml_Banner_Add_Tab_Image extends Mage_Adminhtml_Block_Widget { protected function _prepareForm() { $data = $this->getRequest()->getPost(); $form = new Varien_Data_Form(); $form->setValues($data); $this->setForm($form); return parent::_prepareForm(); } public function __construct() { parent::__construct(); $this->setTemplate('my_ibanner/edit/tab/image.phtml'); $this->setId('media_gallery_content'); $this->setHtmlId('media_gallery_content'); } protected function _prepareLayout() { $this->setChild('uploader', $this->getLayout()->createBlock('adminhtml/media_uploader') ); $this->getUploader()->getConfig() ->setUrl(Mage::getModel('adminhtml/url')->addSessionParam()->getUrl('*/*/image')) ->setFileField('image') ->setFilters(array( 'images' => array( 'label' => Mage::helper('adminhtml')->__('Images (.gif, .jpg, .png)'), 'files' => array('*.gif', '*.jpg','*.jpeg', '*.png') ) )); $this->setChild( 'delete_button', $this->getLayout()->createBlock('adminhtml/widget_button') ->addData(array( 'id' => '{{id}}-delete', 'class' => 'delete', 'type' => 'button', 'label' => Mage::helper('adminhtml')->__('Remove'), 'onclick' => $this->getJsObjectName() . '.removeFile(\'{{fileId}}\')' )) ); return parent::_prepareLayout(); } /** * Retrive uploader block * * @return Mage_Adminhtml_Block_Media_Uploader */ public function getUploader() { return $this->getChild('uploader'); } /** * Retrive uploader block html * * @return string */ public function getUploaderHtml() { return $this->getChildHtml('uploader'); } public function getJsObjectName() { return $this->getHtmlId() . 'JsObject'; } public function getAddImagesButton() { return $this->getButtonHtml( Mage::helper('catalog')->__('Add New Images'), $this->getJsObjectName() . '.showUploader()', 'add', $this->getHtmlId() . '_add_images_button' ); } public function getImagesJson() { $_model = Mage::registry('banner_data'); $_data = $_model->getImage(); if (is_array($_data) and sizeof($_data) > 0) { $_result = array(); foreach ($_data as &$_item) { $_result[] = array( 'value_id' => $_item['image_id'], 'url' => Mage::getSingleton('ibanner/config')->getBaseMediaUrl() . $_item['file'], 'file' => $_item['file'], 'label' => $_item['label'], 'position' => $_item['position'], 'disabled' => $_item['disabled']); } return Zend_Json::encode($_result); } return '[]'; } public function getImagesValuesJson() { $values = array(); return Zend_Json::encode($values); } /** * Enter description here... * * @return array */ public function getMediaAttributes() { } public function getImageTypes() { $type = array(); $type['gallery']['label'] = "ibanner"; $type['gallery']['field'] = "ibanner"; $imageTypes = array(); return $type; } public function getImageTypesJson() { return Zend_Json::encode($this->getImageTypes()); } public function getCustomRemove() { return $this->setChild( 'delete_button', $this->getLayout()->createBlock('adminhtml/widget_button') ->addData(array( 'id' => '{{id}}-delete', 'class' => 'delete', 'type' => 'button', 'label' => Mage::helper('adminhtml')->__('Remove'), 'onclick' => $this->getJsObjectName() . '.removeFile(\'{{fileId}}\')' )) ); } public function getDeleteButtonHtml() { return $this->getChildHtml('delete_button'); } public function getCustomValueId() { return $this->setChild( 'value_id', $this->getLayout()->createBlock('adminhtml/widget_button') ->addData(array( 'id' => '{{id}}-value', 'class' => 'value_id', 'type' => 'text', 'label' => Mage::helper('adminhtml')->__('ValueId'), )) ); } public function getValueIdHtml() { return $this->getChildHtml('value_id'); } }Thanks