1.hdwiki后台安装数据调用插件,用JS外部数据调用。
2.如果HDwiki和SS安装在同一数据库且熟悉SQL语言,可以利用SS后台的模块调用,手写SQL语句进行调用。
MVCphp是嵌入式语言,最简单但也是最繁琐的就是php和html嵌套着写,开发维护绝对能让人产生暴力冲动.所以HDwiki采用了mvc模式,可以方便开发人员分工协作,提高开发效率,增强程序的可维护性和扩展性,而且还利用Controller将Model与View分离,降低它们之间的耦合度.
HDwiki中,一个请求发过来后(如index.php?doc-view-1),调度控制器(hdwiki.class.php) 会根据请求决定由哪个控制器的哪个方法去处理,本例中是doc这个控制器的doview方法去处理,这个控制器文件便是/control/doc.php,doc这个控制器的doview方法负责处理业务部分(比如数据校验,业务逻辑),调用模型(model)和视图(view).模型主要是根据要求取的数据,可以是从数据库去,也可是是从文件中去,还可以是从内存中去,归根到底一句话,根据业务逻辑处理数据.而视图就是要将我们处理好的数据显示出来,控制器将要显示的数据发给视图,视图根据要求就将显示的样式,html代码,要显示的数据处理成一个模板文件,最后显示出来.这样一个请求便处理完了.可能会有哥们要问了,为什么能根据index.php?doc-view-1能知道控制器是哪个,方法是哪个?这就是我们要说的下一个关键词---URL
URL
HDwiki中的url形式为index.php?doc-view-1,index.php是所有请求的唯一入口,query_string以"-"分割,第一个doc表示调用的控制器文件,路径是/control/doc.php,第二个"view"是要调用的控制器的方法doview,后面的参数"1"(或者更多的参数)均是doview方法中需要的参数,顺序是自定义的,等等,url中明明是view,怎么调用的是doview方法呢?在hdwiki系统里可以从url中知道要访问的方法名称,但是如果control中有方法不想被url直接访问,也就要区分开,所以需要在所有url中集中处理,能被直接访问的统一加do.
权限
HDwiki的权限可能是最独树一帜的,每个用户的是否有访问权限完全根据url来判断.我们给用户分组,比方说管理员组,词条管理员组,普通用户组,匿名组等,每个组都有一坨的可访问的url列表,你在哪个组,你就只能访问那些url,也就是那些应用,每个url都是一个权限控制.你能访问的url都会被控制.当然一个url中大家都可以看,但是有部分是有限制的,这就需要做点点调整,比如匿名用户看到的是"请登录",登录用户看到的是"退出",这个我们就会辅助以用户组id来判断.
标签
hdwiki的标签功能能让站长和开发者更方便快捷的添加要显示的各种数据,基本表现形式是在页面中添加例如 {hdwiki:docnumber /}的数据,便能显示总词条数.其原理也很简单,就是根据标签正则匹配,然后调用相应的方法去调用数据,当然,每个标签要调用的方法都已经写好了全部保存在model/tag.class.php中,以{hdwiki:docnumber /}为例,当调用页面时,它被解析成$_ENV['tag']->docnumber(),而这段代码便是去调用/model/tag.class.php的docnumber这个方法,这个方法便调出总词条数的数值.这样,只要在tag.class.php中存在的方法,就可以在任何页面调用了.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)