“对资本家和企业家予以轻视,这是现在极普通的事情。人,总喜欢嘲笑比自己的境遇更好的人。“
——米塞斯Mises :人的行为Human Action, https://ufqi.com/news/ulongpage.2418.html?tit=人的行为 Human Action-72:选择的过程
How many roads must a man walk down, Before they call him a man, … The answer is blowing in the wind…
—- Blowing in the Wind , Bob Dylan
☘ gMIS吉密斯持续更新改进,这可能是gMIS自10多年前被推出以来,改进最多的一次,或者是记录改动功能点最多的一篇Blog文章。其中既有新功能的增加,也有对问题Bug的修改,更有一些是将现有功能推高到一个新的水平。
建议gMIS老用户在合适的时候,安排升级更新。
gMIS 吉密斯 持续改进细节,备注列如下。
1. xTree: 对无限宽度和深度的层级数据支持
如同我们在之前Blog:分类、层级与编码( https://ufqi.com/blog/classify-hierarchy-code/ )和 -gMIS更新: 自动层级目录( https://ufqi.com/blog/gmis-update-xdirectory/ )中讨论的一样,我们在层级目录数据中,既可能遇到有限宽度和深度的层级目录数据,如行政地区编码,也可能遇到无限宽度和深度的层级目录数据,如文件目录。或者区块链。在后一种数据结构中,我们无法提前预知在某一层级有多少并列项(宽度),也无法预知到底会有多少层级。
为满足这种数据结构,我们设计和实现了xTree的输入与输出功能模块,用于支持对这种只知道父节点数据结构。新增了 extra/xtree.php 和 class/xtree.class.php . 可以支持无限宽度和无限深度的目录数据类型。
这一新出炉的功能,已成功部署和应用在 Boss选址(老板选址, bossxuanzhi.com )项目 和 有福工坊( UfqiWork, ufqi.com/work )项目上。
2. 改进对 Preset环境变量的支持,pnskxxx=yyy
+ act/preset-vars.inc.php , 得益于我们所设计的功能强大的Page Navigator组件,gMIS可以通过URL参数自动生成对应的查询SQL语句,在保护安全的同时也同时提供了便捷的数据查询功能。
其中通过 Page Navigator Search Key (pnsk) 方式可以在打开相应表单时,传入查询条件. 这次改进不但在查询读取时使用pnsk等传入条件,在新增记录等环节,也可以读取和使用pnsk代入的预置条件。
3. 改进对点选pickup支持:增加筛选条件
在此之前 pickup 点选时,总是全表扫描记录,并生成各种点选候选项。此次改进,将点选候选项中植入预置条件,使得点选候选项对当前结果集更加具有针对性。
4. class/gtbl, 改进 _fillThis 对环境变量的支持
5. comm/ido.js: 改进对 pnskxxx=yyy环境变量的支持
同2.和3.的改进,在前端页面控制处,也增加相应的前置条件的使用。
6. 改进对 extra/linktbl的支持,增加 linkfield2, linkfield3的扩展
标间嵌套式,默认情况下使用外键字段进行索引,本次升级改进,使用两个及以上的字段作为条件进行标间嵌套使用。
7. 1. 改进对 extra/xdirectory的支持,增加缓存功能
此前版本的设计中,没有考虑对读取目录进行缓存设置,这次改进针对目录类型数据在服务器端进行了缓存。使得数据处理速度更快!
7.2. 改进 extra/xdirectory的功能,增加按英文字母或中文拼音排序显示iname的功能
class/xdirectory, +sortDir, +getChild, +sortByGbk
inc/config, +character_code_for_sort, ascii, gbk, utf-8, see extra/xdirectory, Sat May 22 18:26:20 CST 2021
这是本次改进的重要功能之一,gMIS中使用了很多目录类型的数据,目录类型的数据通常都需要按照层级进行安排,而如果利用层级进行安排,在相等层级下,无法进行二次排序,导致使用起来多有不便。
这次改进就是把数据先按层级进行组织安排,然后在相同层级内,再按字母或拼音进行排序。对于大大量级目录数据的使用,操作人员可以快速的按拼音或者字母进行选项定位,而不只是靠目录层级进行人工查找。
模块化设计,目标数据无关/独立,使得所有此类型的数据均可使用,默认生效。强烈建议升级,极大提升数据处理效率,降低操作人员工作负荷。
8. 改进关联菜单的动态参数支持
通过读取菜单表设计的动态参数,并追加到相应的关联菜单的链接上。
9. 改进 act/updatefield 的功能
+修正bug,增加安全检查
10.1. 改进文件上传功能
+增加在线资源地址的引用
针对文件上传只有本地文件的情况,gMIS增加了针对在线资源的支持,通过输入在线资源地址,如 http/https/ftp等协议的在线资源文件进行支持,允许作为上传文件的方式之一。
+修正对上传文件的安全检查
修正对上传文件的安全检查,强化对文件名的正则匹配表达式的检查。
10.2 改进对文件类型字段isImg的判断
+增加对包含问号?文件名的检查。
11. 改进对字段默认值的计算算法
+修正将 field comment 误读为字段默认值的 MySQL 引用。
12. 改进对 comm/modulepath.inc 的支持
+增加 dynamicpara 在导航路径中。
13. +class/WaterMark.class, 对常见的上传图片进行打水印操作
配置文件 inc/config.class 中,增加设置开关:
$conf[‘watermark_for_upload_image’] = “”; # whether to put wartermark onto uploaded image or not, leave blank
if not watermark needed, Fri May 28 11:27:44 CST 2021
基于PHP内建的GD库进行透明度较高的打水印操作。使得通过管控后台上传的本地文件上传发布后能够携带上专有标志的水印Mark。
通过在 inc/config文件中可以设置水印中的文字,如果留空则表示不需要水印操作。
水印操作对于保护自有图片等资源具有一定的作用。同时半透明、不规则图形、处于图片中间区域这些特征使得在不破坏原图的情况移除水印变得相对困难。这些在一定程度上给自有资源一些保护,同时也是对自有品牌的宣传。
14. 修正工具箱函数 comm/tools.function 里的 startsWith 和 endsWith
由原来过于严格地判断判断same value 并且 same type为相等 === , 改为只判断 same value相等 == ,使得相应函数表述意义更准确,修正了此前的bug。
15. 其他一些小的修正和改进。
—-
一个看似简单的管理信息系统软件,我们制作了也使用了10多年,依然是大幅度地改进和升级,其中既有对错误的订正,也有与时俱进地新功能的加入。其中的历程,正如文章开头的歌词所唱的那样,一个男人要走过多少崎岖坎坷路才能被称之为“男人”? 一个系统软件要经过个日日夜夜的打磨,多少次的升级、改进和优化,才能被称之为一个“系统”?
操作系统微软视窗系统从3.x起,历经近30年,成为目前呈现在大众眼前的Windows 10.x。gMIS吉密斯已经多岁了,未来10年gMIS吉密斯会成长进化成什么样?
一起期待,共同打造。
—-
gMIS吉密斯,截至2021年6月份,累计更新了 379 commits,
每年大约34次成批次的更新,
除节假日外,平均几乎每周都有一次更新递交到代码库。
-gMIS (general Management Information System,吉密斯) 是一种基于 -GWA2 (General Web Application Architecture,吉娃兔) 的通用管理信息系统应用软件,具有可配置的输入和输出接口、开箱即用等特征。
可以在 gMIS吉米斯 上构建各种管理信息应用系统软件,例如:
内容管理系统(CMS), 客户资源管理(CRM), 企业资源计划管理(ERP),
办公自动化系统(OA)等,
也可以是各种行业应用管理系统软件,例如:
人力资源管理系统(HR),学生管理,档案管理,旅游管理,图书管理,
商品管理及业务运营支撑系统(BOSS)等等。
gMIS吉米斯 能够实现零代码开发、数分钟内快速搭建各种管理信息系统(MIS, Management Information System).
-gMIS is a -GWA2 based Management Information System (MIS) software with characteristics like configurable input and output interfaces, open-box-to-use.
Various management application software systems can be built on it, such as
Content Management System (CMS), Customer Resource Management (CRM), Enterprise Resource Planning Management (ERP),
Office automation systems (OA), as well as different industry application management system softwares, such as
Human Resource Management System (HR), Student Management, Archive Management, Tourism Management, Book Management,
Commodity management and business operations support systems (BOSS), etc.
With zero code development, -gMIS can build a set of management information systems (MIS) software in a few minutes.
Lower Costs,
Better Productivity.
降低成本,
提高效率.