+ -
当前位置:首页 → 问答吧 → : ) 分享 : 关于高级XML模块化映射编程思想。

: ) 分享 : 关于高级XML模块化映射编程思想。

时间:2010-01-29

来源:互联网

核心思想:

1.首先我们得到的是用户提交的类似html的文件。这需要存入数据库以备用户后期修改和编辑。
(这里最大的疑惑其实就是程序并不直接操纵这个用户编辑的html. 因为我们并无法确认它的合法性)
2.解析提交的html到相应的(真正的程序执行文件)xml文件保存。(此时,他应该是一个绝对合法的XML)
3.根据XML的相应配置进行数据的获取。然后存入容器变量中,传入smarty模板系统。
(容器变量的最大作用,也就是这个程序的核心关键所在,就是序列话所有在XML定义的对象),他包含了用户所定义的要获取的数据结构

和用字自己定义的标签(关键所在),最大的特点就是保存了数据和标签文本的这种上下文的关系。
4.通过smarty遍历这个数组,在执行进阶判定如何显示对应的模块组件和用户自定义的标签。
5.输出即可

//客户修改时程式执行流程:
(伪)HTML(from:数据库) -> XML(真正合法的可供程式操纵的XML文档 from:userDir) ->
                 集合实体数据集(control) -> 显示接口(sys.smarty) | (伪)HTML(from:数据库)

//前端显示时的程式流程:
Control -> XML -> 集合实体数据集 ->显示接口(sys.smarty)

关于用户修改“所谓的XML配置”:
其实就是调用上次数据库中保存的(伪HTML)来作为用户API
然后重新解析这个(伪HTML) 到合法的 XML文档
最后程序将执行这个合法的XML文档

其实不论用户怎么样操纵它的API,程序都不直接执行这个API,
而是执行这个API所生成的对应合法XML

这就合理的解释了为什么VIRB 的用户API 接口中没有XML定义了。因为程序就根本不操纵它,他只是一个来自数据库的用户视图接口的字符

串。这样其实也保护了XML文档的绝对合法和安全性。

[ 此帖被mofe在2010-01-30 17:37重新编辑 ]

作者: mofe   发布时间: 2010-01-29

没进化到那一步呢

作者: dxlkl123   发布时间: 2010-01-30

楼上错误
现在的技术完全可以实现上面的编程思想

你可以先参考一下virb.com的高级用户自定义模块

他就实现的类似上面的思想,
当然他还有一个高级的自定义css部分。我当时第一次看到都感叹现在的jquery技术太他妈的伟大了。
实时的精确化数据更改

目前这两个系统 我都尝试过建立相应的模型,所以对这个还是比较清楚的


当然,我不知道他的源代码到底是什么(他的js都加密~)

我是根据现有的技术模型推到出来的。(其实我从半年前就一直在思考这个思想的实现和可行性,尤其是思考了更多如何通过数据分层的方式实现用户标签和系统标签的分离还有相应的属性思想,尤其是在数据的序列化上花的时间更多些)

不过,就我和他的细节实现来看

我的思想和他的思想应该该存在细微的不同。
[ 此帖被mofe在2010-01-30 17:24重新编辑 ]

作者: mofe   发布时间: 2010-01-30

相关阅读 更多

热门下载

更多