电脑技术学习

ECMS帝国CMS模板不为人知的技巧

dn001

  一、 查看模板中的全局变量

  引言:继续上一篇:帝国 CMS模板不为人知的技巧 – 对语言包重新赋值应用trylife和大家一起看看 帝国CMS不为人知的技巧2 – 对系统设置的重新赋值;上篇文章有童鞋看了之后觉得一无所获;或者觉得看了之后没什么价值;trylife写这些文章只是指引月亮的方向,各位童鞋不要在意trylife手指本身;我们做帝国CMS二次开发尽量不修改系统文件的情况下实现功能,这样可以达到不影响升级这样的效果;废话不多说我们来看正文。

  我们在模板任意位置放入代码,比如列表模板,重新生成列表页面;查看页面源代码,我们可以看到变量和数组的整齐格式;我们可以看到 $public_r(系统设置数组),$class_r(栏目设置数组),$emod_r(模型设置数组),$fun_r(函数语言数组),$level_r(会员组数组)等等;还记得上一篇(帝国 CMS模板不为人知的技巧 – 对语言包重新赋值应用)中的例子就是通过对$fun_r中的一个成员重新赋值实现了英文列表分页;

  什么是数组:你可以回想下 周星驰的《唐伯虎点秋香》唐伯虎混入画府当低等下人,当时武状元说“小子,从今天开始,你就是华府的低等下人,9527就是你的终身代号。开始做事!这里的低等下人就是一个数组,其中9527就是数组一个成员KEY值,唐伯虎这个人就是就是9527这个KEY的VALUE值;我们把低等下人这个数组变成PHP数组:

  回到帝国CMS,打开e/class/config.php 搜$public_r 这里的$pulic_r就是一个数组(暂时不讨论多元数组),看到上下图是部分$public_r的截图,sitename,newsurl都是key;对应的帝国网站管理系统,http://www.trylife.cn 这些是VALUE值;你可以在任意模板中加入重新生成页面可以得到相对应的VALUE值,比如得到你系统设置的网站名称;

  二 、对系统设置的重新赋值能干点啥

  实例:我们知道帝国CMS所有分页函数遵循统一遵循系统设置中的分页函数,那么我想某个列表使用不同分页函数呢,trylife的答案是可以的;

  下面trylife就做了一个比较无聊的例子实现某个列表使用不同的分页函数(为了区分这个列表的数字做成了中文数字冏);

  1.这个特殊的列表用的分页变量是[!--show.listpage--]

  2.对应的这个分页变量在$public_r数组中KEY值为listpagelistfun

  3.在e/user/userfun.php加了一个新的分页函数 trylife_listpage();点击下载测试函数userfun_function_listpage.php.tar

  4.在这个列表模板的顶部加入了一段代码

  (备注:帝国CMS后台->系统参数设置->信息设置->列表分页函数(列表) 模式设置是 sys_ShowListMorePage,我们现在针对某个特定的列表要使用不同的分页函数,所以我们在userfun.php写了一个新的函数,并且将函数名赋值给了$public_r[listpagelistfun];这样使用我们修改的模板的栏目,将会使用我们给他设置的特定的分页函数,也就是trylife_listpage这个函数;)

  (上图)帝国CMS特定列表不同分页样式 效果

  三 、小结

  1.列表分页函数(下拉) ,内容分页函数都可以用例子中的方法来做不同模板的不同分页

  2.几个分页 分页函数名 数组变量[KEY] 默认函数名 变量 列表分页函数(下拉) $public_r[listpagefun] sys_ShowListPage [!--show.page--] 列表分页函数(列表) $public_r[listpagelistfun] sys_ShowListMorePage [!--show.listpage--] 内容分页函数 $public_r[textpagefun] sys_ShowTextPage

  sys_ShowTextPageSelect