phpcms-v9 前台模板文件中{pc}标签的执行流程

前台pc标签的使用:{pc:content 参数名="参数值" 参数名="参数值" 参数名="参数值"}
如: {pc:content action="lists" catid="9" cache="3600" num="20" page="$page"}{/pc}
执行流程如下:
     ①模块名:content
     ②模块类文件:modules/content/classes/content_tag.class.php,便于二次开发或标签的扩展
     ③文件中的方法:lists
     ④action后面的参数以数组的形式传递给lists方法,如:function lists($data=array())
此标签实际获取的是:content_tag.class.php文件中lists方法返回的数据
注意:此标签会根据catid的值去寻找对应的模型id,然后再根据对应的模型id寻找到对应的模型表,如:news
注意:几乎所有的模块都有一个标签类,格式如下:模块名_tag.class.php
注意:前台模板文件中出现{pc}标签的位置,都可在"碎片管理"中进行编辑修改,非常方便

content_tag.class.php文件分析-pc标签调用的方法

  1 <?php
  2 class content_tag {
  3     private $db;                                                            //主要针对v9_news表
  4     public function __construct() {
  5         $this->db = pc_base::load_model(‘content_model‘);                    //数据模型,对应数据表news 和 news_data
  6         $this->position = pc_base::load_model(‘position_data_model‘);        //position_data表
  7     }
  8     /**
  9      * 初始化模型,其实就是为了根据栏目id设置对应对应的模型表及数据表:news-模型表、v9_news-数据表
 10      * @param $catid
 11      */
 12     public function set_modelid($catid) {
 13         $siteids = getcache(‘category_content‘,‘commons‘);    //获取所有栏目所属的站点id
 14         if(!$siteids[$catid]) return false;                    //不存在此栏目,返回false
 15         $siteid = $siteids[$catid];                            //当前栏目所属站点id
 16         $this->category = getcache(‘category_content_‘.$siteid,‘commons‘);//获取当前站点id下所有栏目的配置信息
 17         if($this->category[$catid][‘type‘]!=0) return false;//如果不为内部栏目,返回false  0-内部栏目 1-单网页 2-外部链接
 18         $this->modelid = $this->category[$catid][‘modelid‘];//获取当前栏目所属模型id
 19         $this->db->set_model($this->modelid);                //根据模型id获取当前模型所对应的模型表和数据表 1:文档模型-news  3:图片模型-picture   2:下载模型-download
 20         $this->tablename = $this->db->table_name;            //数据表:v9_news
 21         if(empty($this->category)) {                        //如果当前站点下不存在栏目配置信息,则返回false
 22             return false;
 23         } else {                                            //如果当前站点下存在栏目配置信息,则返回true
 24             return true;
 25         }
 26     }
 27     /**
 28      * 分页统计
 29      * @param $data
 30      */
 31     public function count($data) {
 32         if($data[‘action‘] == ‘lists‘) {
 33             $catid = intval($data[‘catid‘]);
 34             if(!$this->set_modelid($catid)) return false;
 35             if(isset($data[‘where‘])) {
 36                 $sql = $data[‘where‘];
 37             } else {
 38                 if($this->category[$catid][‘child‘]) {
 39                     $catids_str = $this->category[$catid][‘arrchildid‘];
 40                     $pos = strpos($catids_str,‘,‘)+1;
 41                     $catids_str = substr($catids_str, $pos);
 42                     $sql = "status=99 AND catid IN ($catids_str)";
 43                 } else {
 44                     $sql = "status=99 AND catid=‘$catid‘";
 45                 }
 46             }
 47             return $this->db->count($sql);
 48         }
 49     }
 50
 51     /**
 52      * 列表页标签:主要返回的是主表中数据与附表中数据, {pc:content action="lists"} {/pc}标签调用的都是lists方法
 53      * @param $data
 54      */
 55     public function lists($data) {
 56         $catid = intval($data[‘catid‘]);                                    //pc标签中catid属性
 57         if(!$this->set_modelid($catid)) return false;                        //会根据栏目id->对应的模型id->对应的模型表
 58         if(isset($data[‘where‘])) {                                            //如果pc标签中设置了where属性,一般情况下不存在
 59             $sql = $data[‘where‘];
 60         } else {                                                            //如果pc标签中没有设置where属性
 61             $thumb = intval($data[‘thumb‘]) ? " AND thumb != ‘‘" : ‘‘;        //如果有thumb属性
 62             if($this->category[$catid][‘child‘]) {                            //当前栏目下是否存在子栏目
 63                 $catids_str = $this->category[$catid][‘arrchildid‘];        //所有子栏目id,包括当前栏目自身id
 64                 $pos = strpos($catids_str,‘,‘)+1;
 65                 $catids_str = substr($catids_str, $pos);                    //所有子栏目id,不包括当前栏目自身id
 66                 $sql = "status=99 AND catid IN ($catids_str)".$thumb;        //拼接成一个sql语句
 67             } else {
 68                 $sql = "status=99 AND catid=‘$catid‘".$thumb;                //如果当前栏目下不存在子栏目
 69             }
 70         }
 71         $order = $data[‘order‘];                                            //pc标签中order属性
 72         //$sql作为一个条件出现,调用的是model.calss.php文件中的select方法,返回结果集数组,并按照键名‘id‘排序
 73         $return = $this->db->select($sql, ‘*‘, $data[‘limit‘], $order, ‘‘, ‘id‘);//从数据库中获取主表数据,使用的也是sql语句查询
 74
 75         //调用副表的数据
 76         if (isset($data[‘moreinfo‘]) && intval($data[‘moreinfo‘]) == 1) {    //如果pc标签中设置了moreinfo属性:是否调用附表数据
 77             $ids = array();
 78             //$return为返回的主表数据
 79             foreach ($return as $v) {                                        //循环主表中的记录信息:$v-主表中的每条记录
 80                 if (isset($v[‘id‘]) && !empty($v[‘id‘])) {
 81                     $ids[] = $v[‘id‘];                                        //ids[]是主表中排序完成的文章id数组
 82                 } else {
 83                     continue;
 84                 }
 85             }
 86             if (!empty($ids)) {
 87                 $this->db->table_name = $this->db->table_name.‘_data‘;        //副表名
 88                 $ids = implode(‘\‘,\‘‘, $ids);                                //以逗号拼接成一个字符串
 89                 $r = $this->db->select("`id` IN (‘$ids‘)", ‘*‘, ‘‘, ‘‘, ‘‘, ‘id‘);//查询与主表中数据有关的副表中的数据
 90                 if (!empty($r)) {
 91                     foreach ($r as $k=>$v) {                                //副表中的数据
 92                         //$return:返回的主表中的数据,主表中的id字段值与附表中的id字段值是对应的,也就是说一篇文章在主表中存储的id跟在附表中存储的id的值是相等的
 93                         if (isset($return[$k])) $return[$k] = array_merge($v, $return[$k]);//主表中数据与副表中数据合并
 94                     }
 95                 }
 96             }
 97         }
 98         return $return;
 99     }
100
101     /**
102      * 相关文章标签,{pc:content action="relation"} {/pc}标签调用的都是relation方法
103      * @param $data
104      */
105     public function relation($data) {
106         $catid = intval($data[‘catid‘]);                                    //pc标签的catid属性:栏目id
107         if(!$this->set_modelid($catid)) return false;
108         $order = $data[‘order‘];                                            //pc标签的order属性
109         $sql = "`status`=99";                                                //拼接sql
110         $limit = $data[‘id‘] ? $data[‘limit‘]+1 : $data[‘limit‘];
111         if($data[‘relation‘]) {                                                //pc标签的relation属性:相关文章id   格式如下:2|7|5
112             $relations = explode(‘|‘,trim($data[‘relation‘],‘|‘));            //以 | 分割成一个数组
113             $relations = array_diff($relations, array(null));
114             $relations = implode(‘,‘,$relations);
115             $sql = " `id` IN ($relations)";                                    //拼接sql
116             $key_array = $this->db->select($sql, ‘*‘, $limit, $order,‘‘,‘id‘);//关联的文章
117         } elseif($data[‘keywords‘]) {                                        //相关关键词
118             $keywords = str_replace(‘%‘, ‘‘,$data[‘keywords‘]);
119             $keywords_arr = explode(‘ ‘,$keywords);                            //以空格将关键词分割为一个数组
120             $key_array = array();
121             $number = 0;                                                    //相关热词文章数量
122             $i =1;                                                            //控制返回文章数量的标识
123             foreach ($keywords_arr as $_k) {
124                 $sql2 = $sql." AND `keywords` LIKE ‘%$_k%‘".(isset($data[‘id‘]) && intval($data[‘id‘]) ? " AND `id` != ‘".abs(intval($data[‘id‘]))."‘" : ‘‘);
125                 $r = $this->db->select($sql2, ‘*‘, $limit, ‘‘,‘‘,‘id‘);
126                 $number += count($r);                                        //所有热词文章的总量
127                 foreach ($r as $id=>$v) {
128                     if($i<= $data[‘limit‘] && !in_array($id, $key_array)) $key_array[$id] = $v;//$key_array[文章id]=文章记录
129                     $i++;
130                 }
131                 if($data[‘limit‘]<$number) break;
132             }
133         }
134         if($data[‘id‘]) unset($key_array[$data[‘id‘]]);//针对性的屏蔽某篇文章
135         return $key_array;
136     }
137
138     /**
139      * 排行榜标签{pc:content action="hits"} {/pc}标签调用的都是hits方法
140      * @param $data
141      */
142     public function hits($data) {
143         $catid = intval($data[‘catid‘]);                                    //栏目id,pc标签的catid属性
144         if(!$this->set_modelid($catid)) return false;                        //根据栏目id->对应的模型id->模型表,如:news
145
146         $this->hits_db = pc_base::load_model(‘hits_model‘);                    //hits:点击量表
147         $sql = $desc = $ids = ‘‘;
148         $array = $ids_array = array();
149         $order = $data[‘order‘];                                            //pc标签中order属性
150         $hitsid = ‘c-‘.$this->modelid.‘-%‘;                                    //hits点击量表中hitsid字段的组成:c-模型id-文章id
151         $sql = "hitsid LIKE ‘$hitsid‘";                                        //拼接sql
152         if(isset($data[‘day‘])) {                                            //pc标签中day属性:表示调用多少天内的排行
153             $updatetime = SYS_TIME-intval($data[‘day‘])*86400;                //表示调用多少天内的排行
154             $sql .= " AND updatetime>‘$updatetime‘";                        //拼接sql
155         }
156         if($this->category[$catid][‘child‘]) {                                //当前栏目是否有子栏目
157             $catids_str = $this->category[$catid][‘arrchildid‘];            //当前栏目下所有子栏目id,包括当前栏目自身的id
158             $pos = strpos($catids_str,‘,‘)+1;
159             $catids_str = substr($catids_str, $pos);                        //当前栏目下所有子栏目id,不包括当前栏目自身id
160             $sql .= " AND catid IN ($catids_str)";                            //拼接sql
161         } else {
162             $sql .= " AND catid=‘$catid‘";                                    //如果当前栏目不存在子栏目
163         }
164         $hits = array();
165         $result = $this->hits_db->select($sql, ‘*‘, $data[‘limit‘], $order);//查询v9_hits点击量表
166         foreach ($result as $r) {                                            //$result:v9_hits表中返回的数据
167             $pos = strpos($r[‘hitsid‘],‘-‘,2) + 1;                            //格式:c-模型id-文章id,如,c-1-1 ,查找第二个 "-"的位置
168             $ids_array[] = $id = substr($r[‘hitsid‘],$pos);                    //文章的id
169             $hits[$id] = $r;                                                //每篇文章的点击量信息 ,格式:$hits[文章id]= 文章点击记录信息
170         }
171         $ids = implode(‘,‘, $ids_array);                                    //以逗号拼接成一个字符串
172         if($ids) {
173             $sql = "status=99 AND id IN ($ids)";                            //拼接sql
174         } else {
175             $sql = ‘‘;
176         }
177         $this->db->table_name = $this->tablename;                            //内容主表:v9_news
178         $result = $this->db->select($sql, ‘*‘, $data[‘limit‘],‘‘,‘‘,‘id‘);  //查询内容主表:v9_news
179         foreach ($ids_array as $id) {
180             if($result[$id][‘title‘]!=‘‘) {
181                 $array[$id] = $result[$id];
182                 $array[$id] = array_merge($array[$id], $hits[$id]);            //将内容主表v9_news中数据与点击量表v9_hits中数据合并,合并桥梁为id
183             }
184         }
185         return $array;
186     }
187     /**
188      * 栏目标签:主要用来返回当前栏目下的所有子栏目及子栏目的url链接地址等信息:{pc:content action="category"} {/pc}标签调用的都是category方法
189      * @param $data
190      */
191     public function category($data) {
192         $data[‘catid‘] = intval($data[‘catid‘]);                            //pc标签的catid属性:栏目id
193         $array = array();
194         $siteid = $data[‘siteid‘] && intval($data[‘siteid‘]) ? intval($data[‘siteid‘]) : get_siteid();//pc标签的siteid属性:默认调用系统站点
195         $categorys = getcache(‘category_content_‘.$siteid,‘commons‘);        //获取当前站点下所有栏目的详细配置信息
196         $site = siteinfo($siteid);                                            //获取当前站点的信息
197         $i = 1;
198         foreach ($categorys as $catid=>$cat) {
199             if($i>$data[‘limit‘]) break;
200             if((!$cat[‘ismenu‘]) || $siteid && $cat[‘siteid‘]!=$siteid) continue;//ismenu:是否显示栏目,1-显示栏目   0-不显示栏目
201             if (strpos($cat[‘url‘], ‘://‘) === false) {                        //当前栏目的url链接地址中是否存在 "://"
202                 $cat[‘url‘] = substr($site[‘domain‘],0,-1).$cat[‘url‘];        //当前栏目的url链接地址
203             }
204             if($cat[‘parentid‘]==$data[‘catid‘]) {                            //默认为0,调用一级栏目,$cat[‘parentid‘]只有一个值
205                 $array[$catid] = $cat;                                        //所有子栏目信息
206                 $i++;
207             }
208         }
209         return $array;
210     }
211
212     /**
213      * 推荐位,主要用来返回当前推荐位置所有文章的标题和url链接地址等信息:{pc:content action="position"} {/pc}标签调用的都是position方法
214      * @param $data
215      */
216     public function position($data) {
217         $sql = ‘‘;
218         $array = array();
219         $posid = intval($data[‘posid‘]);                                    //pc标签中posid属性:推荐位id
220         $order = $data[‘order‘];                                            //pc标签中order属性
221         $thumb = (empty($data[‘thumb‘]) || intval($data[‘thumb‘]) == 0) ? 0 : 1;//pc标签中thumb属性
222         $siteid = $GLOBALS[‘siteid‘] ? $GLOBALS[‘siteid‘] : 1;                //当前站点id
223         $catid = (empty($data[‘catid‘]) || $data[‘catid‘] == 0) ? ‘‘ : intval($data[‘catid‘]);//pc标签中的catid属性
224         if($catid) {                                                        //如果栏目id存在
225             $siteids = getcache(‘category_content‘,‘commons‘);                //获取所有栏目所对应的站点id
226             if(!$siteids[$catid]) return false;                                //当前站点下不存在当前栏目,则返回false
227             $siteid = $siteids[$catid];                                        //当前站点id
228             $this->category = getcache(‘category_content_‘.$siteid,‘commons‘);//当前站点id下所有栏目的详细配置信息
229         }
230         if($catid && $this->category[$catid][‘child‘]) {                    //当前栏目是否存在子栏目
231             $catids_str = $this->category[$catid][‘arrchildid‘];            //当前栏目下所有子栏目id,包括当前栏目自身id
232             $pos = strpos($catids_str,‘,‘)+1;
233             $catids_str = substr($catids_str, $pos);                        //当前栏目下所有子栏目id,不包括当前栏目自身id
234             $sql = "`catid` IN ($catids_str) AND ";                            //拼接sql
235         }  elseif($catid && !$this->category[$catid][‘child‘]) {            //如果当前栏目不存在子栏目
236                 $sql = "`catid` = ‘$catid‘ AND ";
237         }
238         if($thumb) $sql .= "`thumb` = ‘1‘ AND ";                            //有缩略图的情况
239         if(isset($data[‘where‘])) $sql .= $data[‘where‘].‘ AND ‘;            //pc标签的where属性:一般情况下没有此属性
240         if(isset($data[‘expiration‘]) && $data[‘expiration‘]==1) $sql .= ‘(`expiration` >= \‘‘.SYS_TIME.‘\‘ OR `expiration` = \‘0\‘ ) AND ‘;
241         $sql .= "`posid` = ‘$posid‘ AND `siteid` = ‘".$siteid."‘";            //拼接sql
242         $pos_arr = $this->position->select($sql, ‘*‘, $data[‘limit‘],$order);//查询v9_position_data表
243         if(!empty($pos_arr)) {
244             foreach ($pos_arr as $info) {                                    //循环查询到的v9_position_data表中的记录
245                 $key = $info[‘catid‘].‘-‘.$info[‘id‘];                        //格式:栏目id-文章id
246                 $array[$key] = string2array($info[‘data‘]);                    //将v9_position_data表中data字段的值转换为数组
247                 $array[$key][‘url‘] = go($info[‘catid‘],$info[‘id‘]);        //url链接地址
248                 $array[$key][‘id‘] = $info[‘id‘];                            //文章id
249                 $array[$key][‘catid‘] = $info[‘catid‘];                        //栏目id
250                 $array[$key][‘listorder‘] = $info[‘listorder‘];                //排序
251             }
252         }
253         return $array;
254     }
255     /**
256      * 可视化标签,主要用于在后台可视化的对pc标签进行编辑
257      */
258     public function pc_tag() {
259         $positionlist = getcache(‘position‘,‘commons‘);
260         $sites = pc_base::load_app_class(‘sites‘,‘admin‘);
261         $sitelist = $sites->pc_tag_list();
262
263         foreach ($positionlist as $_v) if($_v[‘siteid‘] == get_siteid() || $_v[‘siteid‘] == 0) $poslist[$_v[‘posid‘]] = $_v[‘name‘];
264         return array(
265             ‘action‘=>array(‘lists‘=>L(‘list‘,‘‘, ‘content‘),‘position‘=>L(‘position‘,‘‘, ‘content‘), ‘category‘=>L(‘subcat‘, ‘‘, ‘content‘), ‘relation‘=>L(‘related_articles‘, ‘‘, ‘content‘), ‘hits‘=>L(‘top‘, ‘‘, ‘content‘)),
266             ‘lists‘=>array(
267                 ‘catid‘=>array(‘name‘=>L(‘catid‘, ‘‘, ‘content‘),‘htmltype‘=>‘input_select_category‘,‘data‘=>array(‘type‘=>0),‘validator‘=>array(‘min‘=>1)),
268                 ‘order‘=>array(‘name‘=>L(‘sort‘, ‘‘, ‘content‘), ‘htmltype‘=>‘select‘,‘data‘=>array(‘id DESC‘=>L(‘id_desc‘, ‘‘, ‘content‘), ‘updatetime DESC‘=>L(‘updatetime_desc‘, ‘‘, ‘content‘), ‘listorder ASC‘=>L(‘listorder_asc‘, ‘‘, ‘content‘))),
269                 ‘thumb‘=>array(‘name‘=>L(‘thumb‘, ‘‘, ‘content‘), ‘htmltype‘=>‘radio‘,‘data‘=>array(‘0‘=>L(‘all_list‘, ‘‘, ‘content‘), ‘1‘=>L(‘thumb_list‘, ‘‘, ‘content‘))),
270                 ‘moreinfo‘=>array(‘name‘=>L(‘moreinfo‘, ‘‘, ‘content‘), ‘htmltype‘=>‘radio‘, ‘data‘=>array(‘1‘=>L(‘yes‘), ‘0‘=>L(‘no‘)))
271             ),
272             ‘position‘=>array(
273                 ‘posid‘=>array(‘name‘=>L(‘posid‘, ‘‘, ‘content‘),‘htmltype‘=>‘input_select‘,‘data‘=>$poslist,‘validator‘=>array(‘min‘=>1)),
274                 ‘catid‘=>array(‘name‘=>L(‘catid‘, ‘‘, ‘content‘),‘htmltype‘=>‘input_select_category‘,‘data‘=>array(‘type‘=>0),‘validator‘=>array(‘min‘=>0)),
275                 ‘thumb‘=>array(‘name‘=>L(‘thumb‘, ‘‘, ‘content‘), ‘htmltype‘=>‘radio‘,‘data‘=>array(‘0‘=>L(‘all_list‘, ‘‘, ‘content‘), ‘1‘=>L(‘thumb_list‘, ‘‘, ‘content‘))),
276                 ‘order‘=>array(‘name‘=>L(‘sort‘, ‘‘, ‘content‘), ‘htmltype‘=>‘select‘,‘data‘=>array(‘listorder DESC‘=>L(‘listorder_desc‘, ‘‘, ‘content‘),‘listorder ASC‘=>L(‘listorder_asc‘, ‘‘, ‘content‘),‘id DESC‘=>L(‘id_desc‘, ‘‘, ‘content‘))),
277             ),
278             ‘category‘=>array(
279                 ‘siteid‘=>array(‘name‘=>L(‘siteid‘), ‘htmltype‘=>‘input_select‘, ‘data‘=>$sitelist),
280                 ‘catid‘=>array(‘name‘=>L(‘catid‘, ‘‘, ‘content‘), ‘htmltype‘=>‘input_select_category‘, ‘data‘=>array(‘type‘=>0))
281             ),
282             ‘relation‘=>array(
283                 ‘catid‘=>array(‘name‘=>L(‘catid‘, ‘‘, ‘content‘), ‘htmltype‘=>‘input_select_category‘, ‘data‘=>array(‘type‘=>0), ‘validator‘=>array(‘min‘=>1)),
284                 ‘order‘=>array(‘name‘=>L(‘sort‘, ‘‘, ‘content‘), ‘htmltype‘=>‘select‘,‘data‘=>array(‘id DESC‘=>L(‘id_desc‘, ‘‘, ‘content‘), ‘updatetime DESC‘=>L(‘updatetime_desc‘, ‘‘, ‘content‘), ‘listorder ASC‘=>L(‘listorder_asc‘, ‘‘, ‘content‘))),
285                 ‘relation‘=>array(‘name‘=>L(‘relevant_articles_id‘, ‘‘, ‘content‘), ‘htmltype‘=>‘input‘),
286                 ‘keywords‘=>array(‘name‘=>L(‘key_word‘, ‘‘, ‘content‘), ‘htmltype‘=>‘input‘)
287             ),
288             ‘hits‘=>array(
289                 ‘catid‘=>array(‘name‘=>L(‘catid‘, ‘‘, ‘content‘), ‘htmltype‘=>‘input_select_category‘, ‘data‘=>array(‘type‘=>0), ‘validator‘=>array(‘min‘=>1)),
290                 ‘day‘=>array(‘name‘=>L(‘day_select‘, ‘‘, ‘content‘), ‘htmltype‘=>‘input‘, ‘data‘=>array(‘type‘=>0)),
291             ),
292
293         );
294     }
295 }
时间: 2024-10-12 17:22:00

phpcms-v9 前台模板文件中{pc}标签的执行流程的相关文章

phpcms V9 首页模板文件解析(转)

转自:http://www.cnblogs.com/Braveliu/p/5100018.html 转在了解了<phpcms V9 URL访问解析>之后,我们已经知道首页最终执行的是content模块下index控制器的init方法. 下面, 我们逐步分析过程如下: 第一.首页默认执行的是index.php?m=content&c=index&a=init 如下代码(路径:phpcms\modules\content\index.php),先从init函数分析: 1 class

【phpcms-v9】前台content模块中pc标签的调用说明

内容模块PC标签调用说明 模块名:content 模块提供的可用操作 操作名 说明 lists 内容数据列表 relation 内容相关文章 hits 内容数据点击排行榜 category 内容栏目列表 position 内容推荐位列表 -------------------------------------------------------------------------------- 内容推荐位列表(position): 可用参数: 参数名 是否必须 默认值 说明 posid 是 n

模板文件中的插件嵌入点列表

模板文件中的插件钩子(插件嵌入点): 插件钩子代码例子: <!--{hook/xxx_xxx}--> 插件钩子的作用在于能让插件在指定的一些位置输出有关代码!在DZ7.x-DX1.5中插件钩子并不显得很重要,但是随着插件应用的不断普及,插件创作者的不断加入,插件钩子在模板中的地位尤其显得格外重要,如果缺少了程序必须的插件钩子,可能会造成自带系统插件功能受到影响!所以我们在制作模板的时候一定要参考默认模板中的插件钩子位置进行合理的安排!除非你觉得某个插件钩子在自己的模板中并不需要,否则请保留插件

ecshop如何直接在dwt,lbi模板文件中执行php代码

272版本之前的可以直接写php代码的,272,273版本的都不行, 网上搜了一下,关于这方面的也不多,而且问题是写的解决方法也不是很准确, 下面是我的解决方法,我的echsop是272版本的 找到文件includes/cls_template.php,在287行(我的是在287行) $source = preg_replace("/<\?[^><]+\?>/i", "", $source);代码注释掉就ok了 不过为了安全考虑,还是不建议直

phpcms V9 前台首页模板文件的解析

在了解了<phpcms V9 URL访问解析>之后,我们已经知道首页最终执行的是content模块下index控制器的init方法. 下面, 我们逐步分析过程如下: 第一.首页默认执行的是index.php?m=content&c=index&a=init 第二.获取SEO信息:phpcms/libs/functions/global.func.php 第三.模板调用:phpcms/libs/functions/global.func.php 第四.模板解析:phpcms/li

PHPCMS V9添加模板自定义全局变量

在我们使用PHPCMS V9的制作网站模板的时候,使用全局模板变量能轻松调用,使用起来非常方便,而且可以统一修改,方便维护. 下面就来讲一下在PHPCMS V9中如何添加自定义全局变量. 修改网站system.php配置文件 文件路径:/caches/configs/system.php 在第30行左右, 'app_path' => 'http://127.0.0.1/weiyun_new/',//动态域名配置地址 在此行下添加配置,我这里是一个qq咨询的地址,结果如下: 'app_path'

phpcms V9 前台自定义表单中提交多图字段

phpcms V9 中的自定义字段支持图片上传和多图上传,但是上图片后 看不到的,因为TA直接输出了数组,没有编译过! 想直接在表单后台显示其上传的图片只需要修改表单的模版即可,下面是修改的文件和相关代码: 首先找到表单的页面模版,"../phpcms/modules/formguide/templates/formguide_info_view.tpl.php",打开并编辑! <?php   if(is_array($forminfos_data)){       foreac

Android manifest文件中的标签详细介绍

概要 每一个Android应用都应该包含一个manifest文件,即AndroidManifest.xml.它包含了程序运行的一些必备信息,比如: --为Java应用程序指定一个独一无二的名字. --描述程序所包括的成分,如activities, services, broadcast receivers和content providers等内容. --定义哪一个成分是主要的.比如主线程等. --声明程序正常运行所需要的权限.比如,读写SD卡等. --声明该程序的API Level,低于该API

Java中异常发生时代码执行流程

异常与错误: 异常: 在Java中程序的错误主要是语法错误和语义错误,一个程序在编译和运行时出现的错误我们统一称之为异常,它是VM(虚拟机)通知你的一种方式,通过这种方式,VM让你知道,你(开发人员)已经犯了个错误,现在有一个机会来修改它.Java中使用异常类来表示异常,不同的异常类代表了不同的异常.但是在Java中所有的异常都有一个基类,叫做Exception. 错误: 它指的是一个合理的应用程序不能截获的严重的问题.大多数都是反常的情况.错误是VM的一个故障(虽然它可以是任何系统级的服务).