文档章节

-gMIS扩展功能模块开发参考/ext modules

wadelau
 wadelau
发布于 2017/07/23 07:43
字数 1049
阅读 15
收藏 0
点赞 0
评论 0

-gMIS 主要面向数据表的管理与操作,提供一种数据表即管理信息系统的便捷路径。

随着应用场景的增多和所承担功能的丰富,在信息信息系统中增加一些特有的功能成为必需,在 -gMIS 中通过扩展模块功能来开发实现。

在 -gMIS 的建构中, extra 子目录用来存储一些特殊功能 的实现,如下以一个名为 helloworld的扩增模块功能来描述 -gMIS 扩展开发的过程。此前 -gMIS 内建的extra包括 可视化编辑器(集成 -baidu-editor),树形目录Xdirectory ,邮件发送sendMail,关联表挂接linkTbl等扩展功能。

由于 gMIS 是通过 -GWA2 来进行开发的,所以 gMIS 的扩展控件开发仍然沿用 -GWA2 中常见的 MVC 的设计思路。

0. 设置入口
在 系统管理 — 菜单管理 中设置扩增功能模块的访问入口。
其中模块名称字段留白,在动态参数中从 ext/子目录开始写起,如,
extra/helloworld.php

1. 程序结构
入口程序放入项目子目录 ext/ 下,为 extra/helloworld.php
视图程序放入项目子目录 view/ 下, 为 view/helloworld.html
由于 -gMIS 是基于 -GWA2 进行开发,所以在控制器 ext/helloworld.php 中,可以引入运行时全局变量,共享基础设施,其中 $gtbl 为GTbl.class 的实例化.

extra/helloword.php  的大致结构如下:

require(“../comm/header.inc.php”);
include_once($appdir.”/comm/tblconf.php”);
# Objects
include($appdir.”/class/class.helloworld.php”);
# Variables
$helloObj = new HelloWorld();
$act = Wht::get($_REQUEST, “act”);
# Actions
if($act == “step1”){
    # somthing to do
}
else if($act == “step2”){
    # something to do
}
# Outputs
$smttpl = “helloworld.html”;
$smt->assign(“output”, $out);
$smt->assign(“sid”, $sid);
$smt->assign(“rtvdir”, $rtvdir);
require(“../comm/footer.inc.php”);

在 extra子目录下默认给了一个 extra_example.php 的示例程序。

视图文件是基于 -Smarty 模板系统实现,模板环境变量由 $smt 对象提供,其中 $smttpl 为指定要呈现的视图文件,这些在 -GWA2 的开发文档中有相应的说明。

view/helloworld.html 的大致结构如下:

{include file=”header.html”}
<!– main content bgn –>
{$output}
<!– main content end –>
{include file=”footer.html”}

-Smarty 相关的语法标识,可以参考 -GWA2 开发文档或者 -Smarty 开发手册.

3. 程序间的耦合
当 comm/navimenu 模块通过 系统设置 — 菜单调整 读取到 modulename 为空而动态参数不为空的设置项时,按约定生成指向动态参数的目标地址,同时向该地址附带用于用户身份鉴权的全局 $sid 参数。

依靠 $sid 参数的透传,运行时环境变量可以由数据表管理空间共享给扩展模块,同样可以通过扩展模块读写数据表空间数据,以此程序间的耦合实现对功能的集成。

为实现对访问路径的统一化视图,modulepath 生成模块单独进行封装,新增 comm/modulepath.inc.php, 默认在 ido.php 中进行调用,在其他 extra模块中,也可以引用该功能,快捷生成模块的访问路径。

4. 其他更新
这期间,还对 gMIS 的首页进行了优化,增加显示了当前一段时间内登录活跃用户情况;
修正Memcached缓存bug;
优化显示了相关模块的功能,默认显示当前页面同级别的功能列表。

gMIS 源代码同时托管在 -OSChina 上,并获得“推荐 -gMIS”。

-gMIS 是一种基于 -GWA2 的通用管理信息系统软件,具有可配置的输入和输出接口。
可以在其上构建各种管理应用软件系统,如
内容管理系统(CMS),客户资源管理(CRM),  企业资源计划管理(ERP),
办公自动化系统(OA)等, 以及各种行业应用管理系统软件,如
人力资源管理系统(HR),学生管理,档案管理,旅游管理,图书管理,
商品管理及业务运营支撑系统等等。
实现零代码开发、搭建各种管理信息系统(MIS).

Lower Costs, 较低成本; Better Productivity, 较高效率.

-R/x12SM 

© 著作权归作者所有

共有 人打赏支持
wadelau
粉丝 1
博文 12
码字总数 11973
作品 0
东城
高级程序员
-gMIS持续优化更新, +InSiteSearch站内搜索

-gMIS 部署和应用的场景越来越多,最近在考虑为所有gMIS承载管理的数据库系统增加一个站内搜索功能, +InSiteSearch 。前因是在 2017年11月份的更新中,我们设想“层级目录导航是“传统”的,...

wadelau
06/12
0
0
php 添加扩展库

以php curl 扩展库编译为例。 本次编译只是单独编译php的扩展库,然后将编译好的php扩展库加到现在运行的php中,不对现在运行的php重新编译,所以对现在运行的php没有任何影响。 假如原先编译...

card123
2015/11/23
47
0
DT二次开发之-常量全局变量说明及使用

什么是destoon常量? destoon常量是指destoon官方的开发者在开发时封装在destoon程序中的一些系统设置参数 这些参数是固定的,我们是不能修改的,也不需要去修改。(PS:只要你牛掰,系统全改...

68喜科技
03/24
0
0
聊聊视图层切面实现方案

前面发过一篇《谈谈应用层切面设计》,@HulkZ说看了好几遍也没看懂,然后我又拉他到小黑屋面壁思过了好几次;也有人关心个性与扩展性如何得到平衡;也有人说,悠然就会扯淡,如何实现呢?那么...

悠悠然然
2016/05/30
1K
3
高效 Java Web 开发框架 JessMA v3.3.1 正式发布

JessMA(原名:Portal-Basic)是一套功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hibernate、MyBatis 与 JDBC DAO 组...

伤神小怪兽
2013/11/19
3.2K
26
Zen-cart 模块快速开发文档

在开发一个新的功能模块时,首先要明确这个功能的流程和与原来网站的关联。然后,需要为这个功能模块取一个名称标识,尽量不要与原有的模块名称不相同。 Zen_cart模块结构 1. 数据库数据表部...

wankaiming
2010/11/14
0
0
高效 Java Web 开发框架 JessMA v3.2.3 正式发布

JessMA(原名:Portal-Basic)是一套功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hibernate、MyBatis 与 JDBC DAO 组...

伤神小怪兽
2013/09/29
3K
31
高效 Java Web 开发框架 JessMA v3.2.2 beta-1 发布

JessMA(原名:Portal-Basic)是一套功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hibernate、MyBatis 与 JDBC DAO 组...

伤神小怪兽
2013/09/09
3K
18
高效 Java Web 开发框架 JessMA v3.2.3 beta-2 发布

JessMA(原名:Portal-Basic)是一套功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hibernate、MyBatis 与 JDBC DAO 组...

伤神小怪兽
2013/09/18
2.2K
20
高效 Java Web 开发框架 JessMA v3.4.1 正式发布

JessMA 是功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hibernate、MyBatis 与 JDBC DAO 组件),集成了 Action 拦截...

伤神小怪兽
2014/09/11
4K
25

没有更多内容

加载失败,请刷新页面

加载更多

下一页

CentOS “Destination Host Unreachable”问题解决办法

挑战极速安装CentOS时遇到局域网主机不能通信的情况: [root@zjd network-scripts]# ping 8.8.8.8PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.64 bytes from 8.8.8.8: icmp_seq=1 ttl=......

wffger
14分钟前
0
0
CentoOS6.6安装netcat

CentOS下安装netcat 使用zookeeper过程中,需要监控集群状态。在使用四字命令时(echo conf | nc localhost 2181),报出如下错误:-bash: netcat: command not found。 我的系统是CentOS 6....

ghou-靠墙哭
24分钟前
0
0
es6之解构赋值巧用

ES6 允许按照一定模式,从数组、对象等中提取值,对变量进行赋值,这被称为解构赋值。 如何进行解构赋值我这里就不赘述,本篇文章主要是将解构赋值的巧妙使用之处。 1、交互变量的值 常用交互...

秋季长青
30分钟前
0
0
Elasitcsearch High Level Rest Client学习笔记(三)批量api

Bulk Request BulkRequest可以在一起从请求执行批量添加、更新和删除,至少需要添加一个操作 BulkRequest request = new BulkRequest(); //创建BulkRequestrequest.add(new IndexRequest("...

木子SMZ
33分钟前
0
0
mybatis-dynamic sql

OGNL expressions if 判断是否存在值 <select id="findActiveBlogLike" resultType="Blog"> SELECT * FROM BLOG WHERE state = ‘ACTIVE’ <if test="title != null"> AND title like #{tit......

writeademo
40分钟前
0
0
社交系统ThinkSNS+ V1.8.3更新播报

     研发发布版本号:1.8.3   本次版本于2018年7月16日发布   本次发布类型:新增功能、细节调整与优化   社交系统ThinkSNSPlus更新体验:请于官网下载/安装最新版或联系QQ35159...

ThinkSNS账号
44分钟前
0
0
教育思考:选择编程是一场父母和孩子的和解[图]

教育思考:选择编程是一场父母和孩子的和解[图]: 之前有个很热的段子是这样讲的:深夜十点的时候,某小区一女子大声喊叫“什么关系?啊?!到底什么关系?你说!”最后发现原来是一位妈妈陪...

原创小博客
45分钟前
0
0
X64汇编之指令格式解析

最近由于项目组内要做特征码搜索的东西,便于去Hook一些未导出函数,你懂得...于是就闲着学习了一下x86/x64的汇编指令格式。x86的汇编指令格式请参照http://bbs.pediy.com/showthread.php?t...

simpower
47分钟前
0
0
rust 语法概要(只适合不熟悉时快速查阅使用,不适合理解其精髓。未完待续)

注意:本内容只适合快查,不适合理解精髓。精髓请研读 https://kaisery.github.io/trpl-zh-cn/foreword.html 基本数据类型 i8,i16,i32,i64,i128 u8,u16,u32,u64,u128 f32,f64 char bool:true...

捍卫机密
50分钟前
0
0
JS中严格模式和非严格模式

1,使用 严格模式的使用很简单,只有在代码首部加入字符串 "use strict"。必须在首部即首部指其前面没有任何有效js代码除注释,否则无效 2.注意事项 (1)不使用var声明变量严格模式中将不通...

AndyZhouX
51分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部