ecmall 开发一个新模块
要开发新模块,要借鉴原有模块的代码并进行修改。
首先打开目录external/modules 会有一个datacall文件夹,这个文件夹对应的就是一个模块。
复制datacall文件夹,重命名为test
下面开始改代码
1.打开install.php 修改 datacall为test
$filename = ROOT_PATH . '/data/test.inc.php';
2.打开uninstall.php 修改 datacall 为 test
$filename = ROOT_PATH . '/data/test.inc.php';
3.includes/arrayfiles 目录下 复制 datacall.arrayfile.php 重命名 test.arrayfile.php
打开文件修改代码 将构造函数调用的方法里的datacall修改成test
$this->_filename = ROOT_PATH . '/data/test.inc.php';
4.打开test模块目录下的module.info.php 修改相关信息
<?php return array(
'id' => 'test', //唯一标识 与模块文件夹同名
'name' => Lang::get('data_call'), // 模块名称
'desc' => Lang::get('datacall_desc'), //模块介绍
'version' => '1.0',
'author' => 'ECMall Team',
'website' => 'http://ecmall.shopex.cn',
'menu' => array(// 模块管理菜单,可以是多个,该菜单将被显示在后台模块管理列表对应的模块项中
array(
'text' => Lang::get('manage_data'),//调用语言配置,显示相应文字
'act' => 'index', //访问模块默认的访问方法
),
),
); ?>
5.打开 test/languages/sc-utf-8/common.lang.php
随便修改一下语言配置
'datacall_desc'=>'挂件的测试模块',
'data_call' => '测试模块',
'manage_data' => '挂件管理',
'add_goods' => '测试测试',
这一步进行完了就可以进入商城后台点击一级菜单扩展, 找到模块管理二级菜单,找到自己新建的测试模块

右边有安装,点击安装。然后接着进行前后台的开发。
6.开始写前台:
打开 test/index.model.php
修改代码如下:为了演示就 简单的实现数据查询
<?php class TestModule extends IndexbaseModule
{
function __construct()
{
$this->TestModule();
}
function TestModule()
{
parent::__construct();
$this->test = &m("test");
}
function index(){
$test_res=$this->test->find();
$this->assign('data', $test_res);
$this->display('test.index.html'); }
} ?>
test表和test.model.php之前都创建过了,这里直接用了。
前台的模版就在 test/templates里 新建一个 test.index.html
模版代码如下:
{include file="header.html"}
<!--{foreach from=$data item=val key=key}-->
名称:{$val.name} ------
价格:{$val.money}
<hr>
<!--{/foreach}-->
{include file="footer.html"}
浏览器输入项目路径:项目路径/index.php?module=test
就可以看到效果:
这样前台就正确显示了。
7.后台和前台类似
打开 test/admin.module.php 将前台控制器的代码复制粘贴到里面,但是要把继承的 IndexBaseModule 改成 AdminBaseModule,后台的模版要放在 test/templates/admin目录下
可以把前台的模版复制一份当道admin目录下,因为控制器代码都是一样的,所以模版也用一样的,这样更省事,为了演示嘛。
然后进入商城后台点击模块管理,编辑模块,就可以看到一样的界面了:

到此一个简单的模块就开发完成了,剩下的就是根据项目需求添加完善功能了。
ecmall 开发一个新模块的更多相关文章
- ASP.NET没有魔法——ASP.NET MVC使用Area开发一个管理模块
之前的My Blog提供了列表的展示和文章显示功能,但是所有数据仍然只能通过数据库录入,为了完成最初的角色“作者”的用例,本章将介绍如何使用“Area”实现My Blog的管理功能. 根据功能分离代码 ...
- 使用SilverLight开发区域地图分析模块
本人最近接收开发一个代码模块,功能主要是在页面上显示安徽省市地图,并且在鼠标移动到地图某市区域时,显示当前区域的各类信息等,一开始准备用百度地图,高德地图等地图工具进行开发,最后发现都不适合进行此类开 ...
- Android | 教你如何用华为HMS MLKit SDK 三十分钟在安卓上开发一个微笑抓拍神器
Android | 只要三十分钟就可以在手机上开发一个微笑抓拍神器!!! 前言 前段时间Richard Yu在发布会上给大家介绍了华为HMS Core4.0,回顾发布会信息请戳: 华为面向全球发布HM ...
- 开发一个不需要重写成Hive QL的大数据SQL引擎
摘要:开发一款能支持标准数据库SQL的大数据仓库引擎,让那些在Oracle上运行良好的SQL可以直接运行在Hadoop上,而不需要重写成Hive QL. 本文分享自华为云社区< ...
- Drupal8开发教程:模块开发——创建新页面
之前我们已经通过<Drupal8开发教程:认识.info.yml文件>对模块的YAML文件有了了解,今天我们来看如何通过模块开发的方式添加一个新的页面. 在 Drupal 7 中,通过模块 ...
- 基于c++11新标准开发一个支持多线程高并发的网络库
背景 新的c++11标准出后,c++语法得到了非常多的扩展,比起以往不论什么时候都要灵活和高效,提高了程序编码的效率,为软件开发者节省了不少的时间. 之前我也写过基于ACE的网络server框架,但A ...
- 【Nginx】开发一个HTTP过滤模块
与HTTP处理模块不同.HTTP过滤模块的工作是对发送给用户的HTTP响应做一些加工. server返回的一个响应能够被随意多个HTTP过滤模块以流水线的方式依次处理.HTTP响应分为头部和包体,ng ...
- iOS开发一个用户登录注册模块需要解决的坑
最近和另外一位同事负责公司登录和用户中心模块的开发工作,开发周期计划两周,减去和产品和接口的协调时间,再减去由于原型图和接口的问题,导致强迫症纠结症状高发,情绪不稳定耗费的时间,能在两周基本完成也算是 ...
- linux采用模块方法,添加一个新的设备
该文转载自:http://rangercyh.blog.51cto.com/1444712/521244 系统调用是操作系统内核和应用程序之间的接口,而设备驱动程序是操作系统内核和机器硬件之间的接口. ...
随机推荐
- C# 语法特性 - 泛型(C#2.0)
泛型将 类型参数 的概念引入了 .NET Framework. 泛型主要有两个优点: 1.编译时可以保证类型安全. 2.不用做类型转换,获得一定的性能提升. 泛型方法.泛型委托.泛型接口 除了泛型类之 ...
- MapReduce--平均分,最高,低分以及及格率的计算
MapReduce--平均分,最高,低分以及及格率的计算 计算班级的平均分,以及个人的最高最低分,以及每个班级的及格率. 来先看一下我的数据. 时间 班级 姓名 科目 成绩 20180501 1708 ...
- 牛客多校第三场 A—pacm team (4维背包加路径压缩)
链接:https://www.nowcoder.com/acm/contest/141/A 来源:牛客网 Eddy was a contestant participating , Eddy fail ...
- MongoDB,无模式文档型数据库简介
MongoDB的名字源自一个形容词humongous(巨大无比的),在向上扩展和快速处理大数据量方面,它会损失一些精度,在旧金山举行的MondoDB大会上,Merriman说:“你不适宜用它来处理复杂 ...
- 牛客网 PAT 算法历年真题 1002 :数字分类 (20)
1002 :数字分类 (20) 时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 给定一系列正整数,请按要求对数字 ...
- 消费Restful的web服务(三)
构架工程 创建一个springboot工程,去消费RESTFUL的服务.这个服务是 http:///gturnquist-quoters.cfapps.io/api/random ,它会随机返回Jso ...
- 转:Java工程师成神之路~(2018修订版)
转: http://www.hollischuang.com/archives/489 阿里大牛珍藏架构资料,点击链接免费获取 针对本文,博主最近在写<成神之路系列文章> ,分章分节介绍所 ...
- js编码函数一些区别
s对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 1、 ...
- vs2015 产品密钥
一.破解秘钥 企业版 HM6NR-QXX7C-DFW2Y-8B82K-WTYJV 专业版 HMGNV-WCYXV-X7G9W-YCX63-B98R2 二.破解步骤 1.安装vs2015 2 ...
- Java反射《一》获取类
package com.study.reflect; /** * 反射:java程序运行中,可以获得该类的所有属性和方法,对于任意一个对象可以 调用它的属性和方法,这种动态获得属性和方法,调用对象属性 ...