文档章节

magento新闻模块开发(四)

xinson
 xinson
发布于 2015/10/19 19:07
字数 435
阅读 53
收藏 0

media目录要777权限,才能上传成功

修改 /app/code/local/Xinson/News/etc/config.xml

<modules>
    <Xinson_News>
        <version>0.1.1</version>
    </Xinson_News>
</modules>

数据库更新文件

  /app/code/local/Xinson/News/sql/news_setup/mysql4-upgrade-0.1.0-0.1.1.php

<?php
/* @var Mage_Core_Model_Resource_Setup $this */
$this->run("
ALTER TABLE `news` ADD `filename` VARCHAR (50) NOT NULL DEFAULT '' AFTER `title`;
");

修改编辑区域

/app/code/local/Xinson/News/Block/Adminhtml/News/Edit/Tab/Form.php

<?php

class Xinson_News_Block_Adminhtml_News_Edit_Tab_Form extends Mage_Adminhtml_Block_Widget_Form
{
    protected function _prepareForm()
    {
        $model = Mage::registry('news_data');

        $form = new Varien_Data_Form();

        $fieldset = $form->addFieldset('news_form', array('legend'=>Mage::helper('news')->__('News information')));

        if ($model->getNewsId()) {
            $fieldset->addField('news_id', 'hidden', array(
                'name' => 'news_id',
            ));
        }
        $fieldset->addField('title', 'text', array(
            'name' => 'title',
            'label' => Mage::helper('news')->__('News Title'),
            'title' => Mage::helper('news')->__('News Title'),
            'required' => true,
        ));

        $fieldset->addField('is_active', 'select', array(
            'name' => 'is_active',
            'label' => Mage::helper('news')->__('Status'),
            'title' => Mage::helper('news')->__('News Status'),
            'required' => true,
            'options' => $model->getAvailableStatuses(),
        ));
        
        //新加的
        //小图路径
        $fieldset->addType('image', Mage::getConfig()->getBlockClassName('news/adminhtml_news_helper_image'));
        //输入框
        $fieldset->addField('filename', 'image', array(
            'label'     => Mage::helper('news')->__('File'),
            'required'  => false,
            'name'      => 'filename',
        ));

        $fieldset->addField('content', 'editor', array(
            'name' => 'content',
            'label' => Mage::helper('news')->__('Content'),
            'title' => Mage::helper('news')->__('Content'),
            'required' => true,
            'style' => 'width:700px; height:300px;',
        ));


        $form->setValues($model->getData());
        $this->setForm($form);

        return parent::_prepareForm();
    }
}


修改config配置文件(上传文件保存的目录)

<config>
   ......

    <default>
        <news>
            <general>
                <image_folder>news</image_folder>
                <news>no_image.jpg</news>
            </general>
        </news>
    </default>

</config>


加Image文件重写原来Image,/app/code/local/Xinson/News/Block/Adminhtml/News/Helper/Image.php

<?php


class Xinson_News_Block_Adminhtml_News_Helper_Image extends Varien_Data_Form_Element_Image
{
    protected function _getUrl()
    {
        $url = false;
        if ($this->getValue()) {
            $url = Mage::getBaseUrl('media') . trim(Mage::getStoreConfig('news/general/image_folder'), ' /\\') . '/' . $this->getValue();
        }
        return $url;
    }
}


/app/code/local/Xinson/News/Model/Mysql4/News.php 模型添加保存方法

//在保存前操作
protected function _beforeSave(Mage_Core_Model_Abstract $object)
{

    /* image */
    $value = $object->getFilename();
    $path = Mage::getBaseDir('media') . DS . trim(Mage::getStoreConfig('news/general/image_folder'), ' /\\') . DS;

    if (is_array($value) && !empty($value['delete'])) {
        @unlink($path . $value['value']);
        $object->setFilename('');
        return $this;
    }

    if (empty($_FILES['filename']['name'])) {
        if (is_array($value)) {
            $object->setFilename($value['value']);
        }
        return $this;
    }

    try {
        $uploader = new Varien_File_Uploader('filename');
        $uploader->setAllowedExtensions(array('jpg','jpeg','gif','png', 'bmp'));
        $uploader->setAllowRenameFiles(true);
        $uploader->save($path);
        $object->setFilename($uploader->getUploadedFileName());
    } catch (Exception $e) {
        $object->unsFilename();
        throw $e;
        //return $this;
    }
    return $this;
}


源码 http://share.weiyun.com/f4bf2dbd350e9364839da01c18470cb9

© 著作权归作者所有

共有 人打赏支持
xinson
粉丝 15
博文 133
码字总数 29814
作品 0
广州
程序员
Magento2, 我们在等你

文章前面我要说明,Magento2.0和1.X是完全不同的两个版本.简单来说,magento2.0完全是重构的.完全的不同,彻底的不同.记住哦,这是magento贰 git获得magento2源码:https://github.com/magento/m...

蟋蟀哥哥
2011/12/16
11.1K
18
magento新闻模块开发(一)

Magento模块开发的简单示例 开发模式下开启日志记录,方便调试。 System->Developer magento/var 要开启777权限,/var/log目录下能看到(exception.log,system.log)。 模块文件 (Xinson 为P...

xinson
2015/10/12
77
0
magento新闻模块开发(二)

Magento提供了强大的Grid Widget使我们能够方便的创建数据表格,现在我们为新闻模块创建后台数据表格。 修改config.xml配置文件,添加admin路由 <config> <admin> <routers> <news> <use>adm......

xinson
2015/10/12
93
0
Magento微信登陆模块 / Magento微信联合登陆 / 支持Magento 1.9.X

原文:Magento微信登陆模块,支持Magento1.9.X 关于Alipaymate 2012年以来,Alipaymate一直专注于支付宝接口开发集成,以及微信支付、网银在线、Paypal、财付通、Global Connect 国际信用卡支...

Alipaymate
2015/11/24
784
1
Magento微信跨境支付模块V2.1发布

关于微信跨境支付(WeChat Cross-border Payment) 微信跨境支付的核心功能是实现“人民币收款,向境外商家结算外币”。微信支付已支持:英镑、港币、美元、日元、加拿大元、澳大利亚元、欧元、...

Alipaymate
2015/11/21
0
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

这些Spring中的设计模式,你都知道吗?

设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆。 Spring作为业界的经典框架,无论是在架构设计方面,还是在代码编写方面,都堪称行...

Java填坑之路
28分钟前
1
0
Spring Aop原理之Advisor过滤

在上文(Spring Aop之Advisor解析)中我们讲到,Spring Aop对目标bean的代理主要分为三个步骤:获取所有的Advisor,过滤当前bean可应用的Advisor和使用Advisor为当前bean生成代理对象,并且上文...

爱宝贝丶
39分钟前
0
0
JMockit学习教程

1 JMockit中文网 我觉得如果仅仅是开发自测的话,把JMockit中文网认真看一遍,就可以在项目中使用JMockit了。 http://jmockit.cn/index.htm 2 JMockit中文教程 官方文档中文版。对于不喜欢看...

SuperHeroes
51分钟前
0
0
Linux服务器几乎从不采用Arch Linux?

我们见得多的Linux服务器系统一般都是什么Ubuntu Server啊,什么Cent OS啊,什么Fedora啊,或者企业采用的Red Hat啊,为什么几乎没有Arch Linux呢?下面我将从若干个方面指出Arch Linux在服务...

linux-tao
今天
0
0
js 函数柯里化 闭包

参考 https://mp.weixin.qq.com/s/GEHL3jarDdAAcr5tQGjmDg 一个统计求和的函数 需要知道整个数组的信息,然后遍历求值 function countMoney() { let money = 0 // 温馨提示:arguments...

阿豪boy
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部