论坛风格切换
  • 5530阅读
  • 4回复

zencart $body_code变量解析 [复制链接]

上一主题 下一主题
 

发帖
6653
大洋
50254
贡献值
940
只看楼主 倒序阅读 使用道具 楼主  发表于: 2012-04-22
关键词: $body_code

在文件\includes\templates\模板\common\tpl_main_page.php 文件里面有$body_code 这样一个变量,他具体什么意思,可能很多人不知道.但是从他字面的意思,可以知道他大概什么意思.我们知道,zencart系统默认的页面结构是上 中(左中右), 下,而这个变量所处的位置就是左中右的中间部分,也就是夹在左右边框的中间. 
这个变量其实是一个文件路径, require($body_code); 这样调用意思就是加载这个文件.而这个变量则来源,includes\templates\模板\common\main_template_vars.php 文件 
 
  if (file_exists(DIR_WS_MODULES . 'pages/' . $current_page_base . '/main_template_vars.php')) { 
   $body_code = DIR_WS_MODULES . 'pages/' . $current_page_base . '/main_template_vars.php'; 
  } else { 
    $body_code = $template->get_template_dir('tpl_' . preg_replace('/.php/', '',$_GET['main_page']) . '_default.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_' . $_GET['main_page'] . '_default.php'; 
  } 
它的意思就是,如果当前页面的目录下面存在main_template_vars.php这个文件,则页面的$body_code 就引用该文件做为中体文件的内容来加载,否则就直接引用模板目录下的/tpl_当前页面_default.php文件. 
举个例子来说,比如访问地址中包含index.php?main_page=index的页面,那么页面的主体部分,也就是中间部分,引用的是includes\modules\pages\index\main_template_vars.php 这个文件,因为includes\modules\pages\index\目录下面有main_template_vars.php这个文件. 
但是如果我们访问页面index.php?main_page=products_all 这个页面的话,那么他的主体部分加载的则是includes\templates\模板\templates\tpl_products_all_default.php这个文件,因为includes\modules\pages\products_all\目录下面没有main_template_vars.php这个文件. 
了解这点对于修改模板很有帮助,比如要修改某个页面的主体部分的话,首先要想到的是查找includes/moduless/pages/页面名字这个目录下面的main_template_vars.php这个文件.如果没有这个文件,那就找到includes\templates\模板\templates\tpl_当前页面_default.php.熟悉这个流程,就可以快速的定位需要修改的地方所在的文件路径.

zencart外贸网站案例请看http://www.zencar-bbs.com/ 如果QQ在线联系没有反应,请直接加QQ:1023206115 或者 2257583107
关于zen cart的问题请发帖说明,不要发站内信,也不要QQ问,就是问了也没有人回复的。可以发好帖子,发帖子地址给我,叫我回复
!!!我要免费模板!!!
发帖
1
大洋
26
贡献值
0
只看该作者 沙发  发表于: 2012-07-26

如此精彩的解析怎么无人顶?

发帖
104
大洋
313
贡献值
26
只看该作者 板凳  发表于: 2012-09-26

版主牛逼。 
绳命如此精彩,绳命如此辉煌。


发帖
36
大洋
15
贡献值
0
只看该作者 地板  发表于: 2014-04-02

十几天前我看这篇,还半知半解,这次看,每句话都能理解了


发帖
5
大洋
25
贡献值
0
只看该作者 4楼 发表于: 2014-07-04

    

快速回复
限80 字节
批量上传需要先选择文件,再选择上传(---删除纯表情和无意义内容,扣1分---)
 
上一个 下一个