文档章节

magento新闻模块开发(四)

xinson
 xinson
发布于 2015/10/19 19:07
字数 435
阅读 53
收藏 0
点赞 0
评论 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
博文 132
码字总数 29814
作品 0
广州
程序员
Magento2, 我们在等你

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

蟋蟀哥哥 ⋅ 2011/12/16 ⋅ 18

magento新闻模块开发(一)

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

xinson ⋅ 2015/10/12 ⋅ 0

magento新闻模块开发(二)

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

xinson ⋅ 2015/10/12 ⋅ 0

Magento微信登陆模块 / Magento微信联合登陆 / 支持Magento 1.9.X

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

Alipaymate ⋅ 2015/11/24 ⋅ 1

Magento微信跨境支付模块V2.1发布

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

Alipaymate ⋅ 2015/11/21 ⋅ 1

Magento微信支付接口开发小记

遇到了很多意想不到的问题,首先是微信支付分为四种:刷卡支付(线下)、扫码支付(PC网站)、公众号支付(微信中打开商户的H5页面)、APP支付(移动端支付),客户需要的微信扫码支付,而之前...

Alipaymate ⋅ 2015/09/17 ⋅ 0

Magento支付宝插件V6.1旗舰版发布,支持即时到账、担保交易,新增订单重新支付功能!

功能 严格按照支付宝接口文档编写代码。 支付宝异步通知机制,确保订单状态及时更新,无丢失遗漏。 订单完美对接:支付后即使关掉支付宝支付页面,订单状态也会正确更新。 安全性加强,根据验...

Alipaymate ⋅ 2016/01/17 ⋅ 0

国内首个Magento 2.0支付宝插件面世!支持支付宝即时到账交易,和担保交易

Magento 2.0 支付宝接口插件功能 多货币支持:客户支付宝付款时,自动转换为人民币。 订单完美对接:支付后即使关掉支付宝支付页面,订单状态也会正确更新。 严格遵循支付宝接口文档规范,使...

Alipaymate ⋅ 2016/01/03 ⋅ 2

深入理解Magento - 第一章 - Magento强大的配置系统

深入理解Magento 作者:Alan Storm 翻译:zhlmmc 前言我从2007年开始使用Magento,应该算是国内第一批使用Magento的用户。但是我却从来没有认真研究过Magento,更多的停留在应用层面。虽然也...

虫虫 ⋅ 2010/04/13 ⋅ 19

Magento支付宝手机网站支付插件V6.0旗舰版发布,支持在微信中使用支付宝支付,订单重新支付功能!

功能 严格按照支付宝接口文档编写代码。 支付宝异步通知机制,确保订单状态及时更新,无丢失遗漏。 订单完美对接:支付后即使关掉支付宝支付页面,订单状态也会正确更新。 安全性加强,根据验...

Alipaymate ⋅ 2016/01/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 今天 ⋅ 0

sbt网络问题解决方案

转自:http://dblab.xmu.edu.cn/blog/maven-network-problem/ cd ~/.sbt/launchers/0.13.9unzip -q ./sbt-launch.jar 修改 vi sbt/sbt.boot.properties 增加一个oschina库地址: [reposit......

狐狸老侠 ⋅ 今天 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 今天 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 今天 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

深入Java多线程——Java内存模型深入(2)

5. final域的内存语义 5.1 final域的重排序规则 1.对于final域,编译器和处理器要遵守两个重排序规则: (1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用...

江左煤郎 ⋅ 今天 ⋅ 0

面试-正向代理和反向代理

面试-正向代理和反向代理 Nginx 是一个高性能的反向代理服务器,但同时也支持正向代理方式的配置。

秋日芒草 ⋅ 今天 ⋅ 0

Spring 依赖注入(DI)

1、Setter方法注入: 通过设置方法注入依赖。这种方法既简单又常用。 类中定义set()方法: public class HelloWorldOutput{ HelloWorld helloWorld; public void setHelloWorld...

霍淇滨 ⋅ 昨天 ⋅ 0

马氏距离与欧氏距离

马氏距离 马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ的随机变量之间的差异程度。 如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧氏距离,如果协方差矩阵为对角阵,则其也...

漫步当下 ⋅ 昨天 ⋅ 0

聊聊spring cloud的RequestRateLimiterGatewayFilter

序 本文主要研究一下spring cloud的RequestRateLimiterGatewayFilter GatewayAutoConfiguration @Configuration@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMi......

go4it ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部