织梦标签的global调用总结

admin2019-11-061116

一直觉得这个标记很简单,因为,这个标记到处都是,比如我们在模板里面经常看到{dede:global.cfg_webname/},{dede:global.cfg_description/}等,相信随便一个刚入门的站长,对这个标记一点也陌生,对于我自己而言,作为一个从事织梦二次开发的人来说,以前个人觉得太小菜了,简单的不行了。但是当作天给一个客户开发一个类似,58同二手汽车网发布功能时,差点被这个global标记难住,这个功能就是用户可以批量上传图片。如下图所示。 

他这个上传功能,跟织梦系统里面的图片集功能类似,所以,我们可以直接把织梦里面的图片集发布功能,拆分出来,然后,制作成发布页面,给客户用的是织梦分类信息模型,所以,要改的东西还真是特别多,但是不管怎么样,思路有了,照着这个思路去做即可。

首先,要把图片集发布功能发布的图片,要转到分类信息里面。经过我的研究发现,织梦上传的图片,首先通过flash上传,然后,经过swfupload.php文件处理,这个文件的主要功能就是把图片上传到网站空间,然后,把上传的文件的信息,例如文件大小,文件位置等文件信息插入到表dede_uploads中。

然后再经过文件album_add.php把图片路径、图片相关的信息、图片调用标签等插入到主表和附加表中,调用静态页面模板引擎生成对应的静态页面,到此,上传完成,对织梦图片上传文件的分析到这程度,就可以了。现在的问题是我们上传的图片不是图片集,而是分类信息,分类信息模型,与图片集模型完全不同的,分类信息,使用的是单表,所以,就要对上传文件“动手术”,去掉主表,把附加表改成分类信息的,把字段当然对应改成分类信息的,最后,处理一下生成的图片调用标签就可以了。

按上面的分析,原理上就可行的,于是就开始上传测试,但是无论如何我怎么上传,图片都传上去了,而且在表对应的表中也有了信息,但是就是在前台生成的静态页面显示不出图片来,于是想,这肯定是标记没有解析好的问题,难道是图片集与分类信息的标记解析不同?于是去读了一下静态模板引擎文件,发现他们的处理代码一样,后来,突然让我们想到了,原来是标签的解析,因为,图片集的标签解析和分类信息的不一样,这就是要实现这个指量上传功能,就要写个标签,这麻烦了。

去查了一下手册,突然,看到global这个标记,当我们看到时,一下子就知道如何在模板中调用我们插入的指量图片了,{dede:global name='变量名称'/}就用这个标签调用,再次指量上传结果发现,成功搞定,仔细读了一下这个global,手册解释是:

global标记,表示获取一个外部变量,除了数据库密码之外,能调用系统的任何配置参数,形式为:

{dede:global name='变量名称'}{/dede:global}
或
{dede:global name='变量名称'/}

这个标记太历害了,除了密码外,系统配置参数都可以调用,以前,用过多次这个标记,但是没有深入的去想,经过这次二次开发,对这个标记的认识大大的加深了,如果大家做开发的时候,可以多参考一下手册,相信手册里面还有很多东西有待我们去挖掘。  

网友评论