文档章节

magento新闻模块开发(一)

xinson
 xinson
发布于 2015/10/12 11:52
字数 795
阅读 78
收藏 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
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
Magento2, 我们在等你

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

蟋蟀哥哥
2011/12/16
11.1K
18

没有更多内容

加载失败,请刷新页面

加载更多

Java 主要特性

Java 有下面的一些主要特性。 面向对象 在 Java 中,所有的都是对象。正式因为 Java 基于对象模型,所以 Java 更加容易进行扩展。 Java语言提供类、接口和继承等面向对象的特性,为了简单起见...

honeymose
44分钟前
1
0
【NLP】【五】gensim之Word2Vec

【一】整体流程综述 gensim底层封装了Google的Word2Vec的c接口,借此实现了word2vec。使用gensim接口非常方便,整体流程如下: 1. 数据预处理(分词后的数据) 2. 数据读取 3.模型定义与训练...

muqiusangyang
44分钟前
1
0
Python爬虫之网络请求

urllib库中常用函数的使用 安装 urllib库是安装python时自带的一个库,不需要再另外安装; 使用 #!/usr/bin/python3# -*- coding:utf-8 -*-# @Time : 2018-11-10 21:25# @Author : M...

村雨1943
今天
4
0
Linux学习-1030(定时任务、任务管理、)

10.23 linux任务计划cron 10.24 chkconfig工具 10.25 systemd管理服务 10.26 unit介绍 10.27 target介绍 扩展 1. anacron http://blog.csdn.net/strikers1982/article/details/478722 2. xin......

wxy丶
今天
3
0
git push origin与git push -u origin master的区别

$ git push origin 上面命令表示,将当前分支推送到origin主机的对应分支。 如果当前分支只有一个追踪分支,那么主机名都可以省略。 $ git push 如果当前分支与多个主机存在追踪关系,那么这...

clin003
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部