文档章节

magento新闻模块开发(一)

xinson
 xinson
发布于 2015/10/12 11:52
字数 795
阅读 78
收藏 0
点赞 0
评论 0

Magento模块开发的简单示例

开发模式下开启日志记录,方便调试。

System->Developer

magento/var 要开启777权限,/var/log目录下能看到(exception.log,system.log)。


模块文件 (Xinson 为Packagename,News为Modulename)

Packagename_All.xml的命名表示Package中开启多个模块

/app/etc/modules/Xinson_News.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Xinson_News>
            <active>true</active>
            <codePool>local</codePool>
        </Xinson_News>
    </modules>
</config>


在loacl新建相关目录


模块的配置文件

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

<?xml version="1.0"?>
<config>
    <modules>
        <Xinson_News>
            <version>0.1.0</version>
        </Xinson_News>
    </modules>
</config>


添加安装文件

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

<?php

$installer = $this;
$installer->startSetup();
$installer->run("
-- DROP TABLE IF EXISTS {$this->getTable('news')};
CREATE TABLE {$this->getTable('news')} (
  `news_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL DEFAULT '',
  `content` text NOT NULL DEFAULT '',
  `created_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `updated_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `is_active` tinyint(1) unsigned NOT NULL DEFAULT '1',
  PRIMARY KEY (`news_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    ");
$installer->endSetup();

在config.xml配置文件,resources为执行news_setup里的文件(相关数据库操作,版本更新),translate为语言包(Xinson_News.csv放在app/locale/zh_CN里面)

<config>    
    <global>    
        <resources>
            <news_setup>
                <setup>
                    <module>Xinson_News</module>
                </setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </news_setup>
        </resources>
        <translate>
            <modules>
                <Xinson_News>
                    <files>
                        <default>Xinson_News.csv</default>
                    </files>
                </Xinson_News>
            </modules>
        </translate>
    </global>
</config>


此时进入后台,清除缓存。

在system->Configuration->Mage Trash App->Extensions Installed

可以看到Xinson_News。

并且在core_resource表中能看到,xinson_setup  0.1.0  0.1.0。还有新建的表news。


在config.xml中添加资源

global表示全局,即前台,后台都能使用。adminhtml为后台,frontend为前台。

<config>
    <global>
        <resources>
            ......
            <news_write>
                <connection>
                    <use>core_write</use>
                </connection>
            </news_write>
            <news_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </news_read>
        </resources>
    </global>
</config>


添加Model

/app/code/local/Xinson/News/Model/News.php

<?php

class Xinson_News_Model_News extends Mage_Core_Model_Abstract
{
    public function _construct()
    {
        parent::_construct();
        $this->_init('news/news');
    }
}

/app/code/local/Xinson/News/Model/Mysql4/News.php

<?php

class Xinson_News_Model_Mysql4_News extends Mage_Core_Model_Mysql4_Abstract
{
    public function _construct()
    {
        $this->_init('news/news', 'news_id');
    }
}

/app/code/local/Xinson/News/Model/Mysql4/News/Collection.php

<?php

class Xinson_News_Model_Mysql4_News_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
{
    public function _construct()
    {
        parent::_construct();
        $this->_init('news/news');
    }
}


在config.xml中添加Model(在global里面)

<global> 
    <models>
        <news>
            <class>Xinson_News_Model</class>
            <resourceModel>news_mysql4</resourceModel>
        </news>
        <news_mysql4>
            <class>Xinson_News_Model_Mysql4</class>
            <entities>
                <news>
                    <table>news</table>
                </news>
            </entities>
        </news_mysql4>
    </models>
</global>


添加Helper和Block

/app/code/local/Xinson/News/Helper/Data.php

<?php

class Xinson_News_Helper_Data extends Mage_Core_Helper_Abstract
{

}

在config.xml中添加Helper和Block

<config>
    <global>
        <blocks>
            <news>
                <class>Xinson_News_Block</class>
            </news>
        </blocks>
        <helpers>
            <news>
                <class>Xinson_News_Helper</class>
            </news>
        </helpers>
    </global>
</config>


添加样例数据和前段控制器

进入MYSQL执行

INSERT INTO `news` (`title`, `content`, `created_at`, `updated_at`, `is_active`) VALUES ('title1', 'content1', '2015-11-29 08:00:00', '2015-11-29 08:00:00', 1);
INSERT INTO `news` (`title`, `content`, `created_at`, `updated_at`, `is_active`) VALUES ('title2', 'content2', '2015-11-29 08:10:00', '2015-11-29 08:10:00', 1);

前端控制器

/app/code/local/Xinson/News/controllers/IndexController.php

<?php

class Xinson_News_IndexController extends Mage_Core_Controller_Front_Action
{
    public function indexAction()
    {
        $news = Mage::getModel('news/news')->getCollection();
        foreach ($news as $new) {
            var_dump($new->getData());
        }
    }
}

config.xml路由配置

<config>
    <frontend>
        <routers>
            <news>
                <use>standard</use>
                <args>
                    <module>Xinson_News</module>
                    <frontName>news</frontName>
                </args>
            </news>
        </routers>
    </frontend>
</config>


在浏览器中打开 http://localhost/news 将看到var_dump的数据


此时的config配置文件

<?xml version="1.0"?>
<config>

    <modules>
        <Xinson_News>
            <version>0.1.0</version>
        </Xinson_News>
    </modules>

    <global>
        <resources>
            <news_setup>
                <setup>
                    <module>Xinson_News</module>
                </setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </news_setup>
            <news_write>
                <connection>
                    <use>core_write</use>
                </connection>
            </news_write>
            <news_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </news_read>
        </resources>
        <models>
            <news>
                <class>Xinson_News_Model</class>
                <resourceModel>news_mysql4</resourceModel>
            </news>
            <news_mysql4>
                <class>Xinson_News_Model_Mysql4</class>
                <entities>
                    <news>
                        <table>news</table>
                    </news>
                </entities>
            </news_mysql4>
        </models>

        <translate>
            <modules>
                <Xinson_News>
                    <files>
                        <default>Xinson_News.csv</default>
                    </files>
                </Xinson_News>
            </modules>
        </translate>

        <blocks>
            <news>
                <class>Xinson_News_Block</class>
            </news>
        </blocks>

        <helpers>
            <news>
                <class>Xinson_News_Helper</class>
            </news>
        </helpers>

    </global>

    <frontend>
        <routers>
            <news>
                <use>standard</use>
                <args>
                    <module>Xinson_News</module>
                    <frontName>news</frontName>
                </args>
            </news>
        </routers>
    </frontend>


</config>


© 著作权归作者所有

共有 人打赏支持
xinson
粉丝 15
博文 133
码字总数 29814
作品 0
广州
程序员
Magento微信支付接口开发小记

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

Alipaymate
2015/09/17
1K
0
Magento2, 我们在等你

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

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

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

xinson
2015/10/12
93
0
深入理解Magento - 第一章 - Magento强大的配置系统

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

虫虫
2010/04/13
9.2K
19
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
Magento支付宝插件V6.1旗舰版发布,支持即时到账、担保交易,新增订单重新支付功能!

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

Alipaymate
2016/01/17
158
0
国内首个Magento 2.0支付宝插件面世!支持支付宝即时到账交易,和担保交易

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

Alipaymate
2016/01/03
1K
2
Magento银联支付模块|Magento1.9 Unionpay中国银联支付插件|支持PC、手机移动端支付|2016最新Unionpay5.0.0支付接口

功能 严格按照中国银联Unionpay)接口文档编写代码。 中国银联(Unionpay)异步通知机制,确保订单状态及时更新。 安全性加强,使用RSA加密验签机制,防止数据窥探、伪造、篡改。 完备的支付日志...

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

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

Alipaymate
2016/01/12
283
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

shell中的函数、shell中的数组、告警系统需求分析

shell中的函数 格式: 格式: function f_name() { command } 函数必须要放在最前面 示例1(用来打印参数) 示例2(用于定义加法) 示例3(用于显示IP) shell中的数组 shell中的数组1 定义数...

Zhouliang6
53分钟前
2
0
用 Scikit-Learn 和 Pandas 学习线性回归

      对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了。 1. 获取数据,定义问题     没有...

wangxuwei
今天
1
0
MAC安装MAVEN

一:下载maven压缩包(Zip或tar可选),解压压缩包 二:打开终端输入:vim ~/.bash_profile(如果找不到该文件新建一个:touch ./bash_profile) 三:输入i 四:输入maven环境变量配置 MAVEN_HO...

WALK_MAN
今天
0
0
33.iptables备份与恢复 firewalld的9个zone以及操作 service的操作

10.19 iptables规则备份和恢复 10.20 firewalld的9个zone 10.21 firewalld关于zone的操作 10.22 firewalld关于service的操作 10.19 iptables规则备份和恢复: ~1. 保存和备份iptables规则 ~2...

王鑫linux
今天
2
0
大数据教程(2.11):keeperalived+nginx高可用集群搭建教程

上一章节博主为大家介绍了目前大型互联网项目的系统架构体系,相信大家应该注意到其中很重要的一块知识nginx技术,在本节博主将为大家分享nginx的相关技术以及配置过程。 一、nginx相关概念 ...

em_aaron
今天
1
0
Apache Directory Studio连接Weblogic内置LDAP

OBIEE默认使用Weblogic内置LDAP管理用户及组。 要整理已存在的用户及组,此前办法是导出安全数据,文本编辑器打开认证文件,使用正则表达式获取用户及组的信息。 后来想到直接用Apache Dire...

wffger
今天
2
0
HFS

FS,它是一种上传文件的软件。 专为个人用户所设计的 HTTP 档案系统 - Http File Server,如果您觉得架设 FTP Server 太麻烦,那么这个软件可以提供您更方便的档案传输系统,下载后无须安装,...

garkey
今天
1
0
Java IO类库之BufferedInputStream

一、BufferedInputStream介绍 /** * A <code>BufferedInputStream</code> adds * functionality to another input stream-namely, * the ability to buffer the input and to * sup......

老韭菜
今天
0
0
STM 32 窗口看门狗

http://bbs.elecfans.com/jishu_805708_1_1.html https://blog.csdn.net/a1985831055/article/details/77404131...

whoisliang
昨天
1
0
Dubbo解析(六)-服务调用

当dubbo消费方和提供方都发布和引用完成后,第四步就是消费方调用提供方。 还是以dubbo的DemoService举例 -- 提供方<dubbo:application name="demo-provider"/><dubbo:registry address="z...

青离
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部