文档章节

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

wadelau
 wadelau
发布于 2017/07/23 07:43
字数 1049
阅读 15
收藏 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
博文 16
码字总数 17510
作品 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
聊聊视图层切面实现方案

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

悠悠然然
2016/05/30
1K
3
Zen-cart 模块快速开发文档

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

wankaiming
2010/11/14
0
0
DT二次开发之-常量全局变量说明及使用

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

68喜科技
03/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何通过 J2Cache 实现分布式 session 存储

做 Java Web 开发的人多数都会需要使用到 session (会话),我们使用 session 来保存一些需要在两个不同的请求之间共享数据。一般 Java 的 Web 容器像 Tomcat、Resin、Jetty 等等,它们会在...

红薯
今天
3
0
C++ std::thread

C++11提供了std::thread类来表示一个多线程对象。 1,首先介绍一下std::this_thread命名空间: (1)std::this_thread::get_id():返回当前线程id (2)std::this_thread::yield():用户接口...

yepanl
今天
3
0
Nignx缓存文件与动态文件自动均衡的配置

下面这段nginx的配置脚本的作用是,自动判断是否存在缓存文件,如果有优先输出缓存文件,不经过php,如果没有,则回到php去处理,同时生成缓存文件。 PHP框架是ThinkPHP,最后一个rewrite有关...

swingcoder
今天
2
0
20180920 usermod命令与用户密码管理

命令 usermod usermod 命令的选项和 useradd 差不多。 一个用户可以属于多个组,但是gid只有一个;除了gid,其他的组(groups)叫做扩展组。 usermod -u 1010 username # 更改用户idusermod ...

野雪球
今天
3
0
Java网络编程基础

1. 简单了解网络通信协议TCP/IP网络模型相关名词 应用层(HTTP,FTP,DNS等) 传输层(TCP,UDP) 网络层(IP,ICMP等) 链路层(驱动程序,接口等) 链路层:用于定义物理传输通道,通常是对...

江左煤郎
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部