1. rewrite adminhtml edit form blocks in config file
<global> <blocks> <mycms> <class>Bysoft_Mycms_Block</class> </mycms> <adminhtml> <rewrite> <cms_page_edit_form>Bysoft_Mycms_Block_Adminhtml_Cms_Page_Edit_Form</cms_page_edit_form> </rewrite> </adminhtml> </blocks>
2. write rewrite block to change form post type: ( just extends Mage_Adminhtml_Block_Widget_Form)
<?php class Bysoft_Mycms_Block_Adminhtml_Cms_Page_Edit_Form extends Mage_Adminhtml_Block_Widget_Form { protected function _prepareForm() { $form = new Varien_Data_Form(array('id' => 'edit_form', 'action' => $this->getData('action'), 'method' => 'post', 'enctype' => 'multipart/form-data')); $form->setUseContainer(true); $this->setForm($form); return parent::_prepareForm(); } }
3. set two event method for prepare form and save upload file in config.xml
<global> <models> <mycms> <class>Bysoft_Mycms_Model</class> <resourceModel>mycms_mysql4</resourceModel> </mycms> <mycms_mysql4> <class>Bysoft_Mycms_Model_Mysql4</class> </mycms_mysql4> </models> <resources> <mycms_setup> <setup> <module>Bysoft_Mycms</module> </setup> <connection> <use>core_setup</use> </connection> </mycms_setup> <mycms_write> <connection> <use>core_write</use> </connection> </mycms_write> <mycms_read> <connection> <use>core_read</use> </connection> </mycms_read> </resources> </global> <adminhtml> <events> <cms_page_prepare_save> <observers> <bysoft_mycms_save_page> <type>singleton</type> <class>mycms/observer</class> <method>saveSearchImage</method> </bysoft_mycms_save_page> </observers> </cms_page_prepare_save> <adminhtml_cms_page_edit_tab_main_prepare_form> <observers> <bysoft_mycms_prepare_form> <type>singleton</type> <class>mycms/observer</class> <method>prepareSearchImageForm</method> </bysoft_mycms_prepare_form> </observers> </adminhtml_cms_page_edit_tab_main_prepare_form> </events> </adminhtml>
4. add custom image column to core cms page table by setup script
<?php $installer = $this; $installer->startSetup(); $sql=<<<SQLTEXT SQLTEXT; $installer->run($sql); $installer = $this; $setup = new Mage_Eav_Model_Entity_Setup('core_setup'); $installer->startSetup(); $installer->run(' ALTER TABLE `cms_page` ADD `search_image` VARCHAR(255) NULL; '); $installer->endSetup(); $installer->endSetup();
5. two function in observer script:
1) prepare edit form, add image field set and field
2) save image data
<?php class Bysoft_Mycms_Model_Observer { public function saveSearchImage(Varien_Event_Observer $observer) { try { $model = $observer->getEvent()->getPage(); $request = $observer->getEvent()->getRequest(); if (isset($_FILES['search_image']['name']) && $_FILES['search_image']['name'] != '') { $uploader = new Varien_File_Uploader('search_image'); $uploader->setAllowedExtensions(array('jpg','jpeg','gif','png')); $uploader->setAllowRenameFiles(false); $uploader->setFilesDispersion(false); // Set media as the upload dir $media_path = Mage::getBaseDir('media') . DS . 'search_image' . DS; // Set thumbnail name $file_name = 'cms_'; $rand_file_name = $file_name . $this->get_rand_filename($_FILES['search_image']['name']); // Upload the image $uploader->save($media_path, $rand_file_name); $data['search_image'] = 'search_image' . '/' . $rand_file_name; // Set thumbnail name $data['search_image'] = $data['search_image']; $model->setData('search_image',$data['search_image']); } else { $data = $request->getPost(); if(isset($data['search_image']['delete']) && $data['search_image']['delete']== 1) { $data['search_image'] = ''; $model->setData('search_image',$data['search_image']); } else { unset($data['search_image']); $model->setData('search_image',implode($request->getPost('search_image'))); } } }catch (Exception $e) { echo $e->getMessage(); } } public function prepareSearchImageForm(Varien_Event_Observer $observer) { $form = $observer->getEvent()->getForm(); $fieldset = $form->addFieldset( 'image_fieldset', array( 'legend' => 'Image', 'class' => 'fieldset-wide' ) ); $fieldset->addField('search_image', 'image', array( 'name' => 'search_image', 'label' => 'Search image', 'title' => 'Search image' )); } public function get_rand_filename($base_file_name) { $ext = pathinfo($base_file_name, PATHINFO_EXTENSION); return Mage::getModel('core/date')->timestamp(time()) . '.' . $ext; } }
相关推荐
Ajax-Magento-ajax-add-to-cart.zip,[模块magento 1]magento ajax添加到购物车-ajoter vos produits au panier en ajax/感谢ajax将您的产品添加到购物车,ajax代表异步javascript和xml。它是多种web技术的集合,包括...
Magento-中文开发教程, 欢迎大家指出错误。 深入理解Magento-第一章 – Magento强大的配置系统 深入理解Magento-第二章 – Magento请求分发与控制器 深入理解Magento-第三章 – 布局,块和模板 深入理解...
magento-ce-2.4.0_sample_data-2020-07-26-02-51-57.tar.gz Include sample data
magento-ce-2.4.0-2020-07-24-11-15-38.tar.gz 不带sample data
Magento-Redismanager, 在 Magento,用于Redis的超级用户控制 Redis 管理Redis服务的实用程序特性系统> 配置>的自动或者手动配置高级> Redis管理在负载均衡环境中缓存服务不同的理想情况直接从magento面板管理员管理...
Magento是一款强大的开源电子商务平台,专为在线商家设计,提供丰富的功能和高度的可定制性。本教程将深入探讨Magento的使用、配置以及开发实践,帮助读者掌握这一强大的系统。 一、Magento的基础架构与安装 ...
1. **模块化结构**:Magento采用模块化设计,允许开发者通过安装、卸载和禁用模块来扩展或调整其功能。这种架构使得系统维护和升级更加方便。 2. **多店支持**:Magento 1.8.0.0 支持多店铺管理,用户可以在同一个...
"Magento-SMTP-Pro-Email-Extension"是一个专业的SMTP扩展,提供了一系列高级功能。以下是该插件的一些核心特性: 1. **多SMTP配置**:商家可以根据不同的业务需求配置多个SMTP服务器,比如用于测试和正式环境。 2...
因为国外网速太慢了,所以下载后分享给需要的人。magento-ce-2.4.2-p1-2021-04-22-10-49-09
这个“magento-java-master.zip_magento”压缩包可能是为了提供一个Java连接Magento源码的示例或者库,帮助开发者实现Java与Magento系统的交互。 在Java中与Magento进行交互通常涉及到以下几个关键知识点: 1. **...
"magento-演示数据1.6.1.0"是一个专门为Magento 1.6.1.0版本准备的示例数据包,它包含了用于演示和测试 Magento 商店功能的各种数据,如产品、类别、顾客、订单等。 该压缩包文件“magento-sample-data-1.6.1.0”...
Magento是一款强大的开源电子商务平台,而Redis则是一种高性能的键值数据存储系统,常用于缓存、session管理等场景。在Magento中集成Redis插件可以显著提升网站性能,降低数据库负载,尤其是在处理高并发请求时。...
在Magento 2站点内安装要在您的Magento 2项目中使用,可以使用: composer require --dev magento/magento-coding-standard 出于安全考虑,以这种方式安装时,无法自动添加phpcs的Magento标准。 您可以通过将以下...
标题中的"PyPI 官网下载 | magento-0.6dev.tar.gz"指的是Python Package Index(PyPI)上的一个项目,它是一个名为"Magento"的软件包的特定版本,即0.6dev。PyPI是Python开发者发布和分享他们自己创建的Python库或...
Magento-CE-2.3.4_sample_data-2020-01-22-11-11-58.tar.gz源自官网
这个7z压缩包“magento-1.7.0.7z”包含了用于安装Magento 1.7.0的所有必要文件,而“magento-1.7.0.2.tar”可能是该版本的一个特定更新或备份文件。 在深入探讨Magento 1.7.0的知识点之前,我们首先要了解它为何...
magento-stock-movements, Magento扩展,节省产品库存 节省你的Magento产品的库存 特性将库存移动保存在产品修改页面的新标签中安装 Magento 1.5. x, 1.6. x, 1.7. x, 1.8. x, 1.9.x使用 modgit 安装:$ cd/pat
标题提到的是"magento-1.7.0.2汉化包",这表明我们讨论的是Magento 1.7.0.2版本的中文语言包。这个版本是Magento在2012年发布的一个稳定版本,对于中国市场来说,汉化包的提供极大地提高了中国用户使用该平台的便利...
Magento-Vagrant-Puppet-Nginx 安装次数 Magento MySQL PHP PHP-FPM Nginx的 n98-玛格伦 设置 git submodule init git submodule update vagrant up 修改人偶/清单/base.pp class { "magento" : install_...
magento-alipay, Magento支付支付网关 #Magento 支付支付网关模块[project status] # !由于magento2与magento1的区别很大,所以我们为magento2版本创建了另一个 git: https://github.com/cosmocomme