下面来给各位同学整理一些在使用PHPCMS V9开发应用中常见问题,希望些这解决方案能给你带来帮助.
文章列表页不出现传的文章,代码如下:
content action="lists" catid="$catid" num="7" order="listorder DESC" thumb="1" moreinfo="1"}
默认的后台代码thumb=”1″,但是当没有缩略图时,列表如果加入了图片循环,则不会循环出内容,所以应改为thumb=”$thumb”,代码如下:
- {php list($copyfrom) = explode('|', $r['copyfrom'])}
- {php $db = pc_base::load_model('hits_model'); $_r = $db->get_one(array('hitsid'=>'c-'.$modelid.'-'.$r[id])); $views = $_r[views]; }
加入这2行则可以在列表页输出来源及点击数。
PHPCMS V9整合的百度编辑器的图片水印开关无效,如果站点开启了水印功能,则复制到编辑器的图片全部强制加水印(尚无解决方法)
分页样式自定义
大家做网站的时候,可能很多时候分页样式都得根据模板的要求来控制的,这时很多人都会去修改全局文件phpcmslibsfunctionsglobal.func.php里的pages()函数,这样问题就来了:这个分页函数连后台也会影响到的,就是说,这个分页函数是全站共用的.
下面提供解决方法:这个得修改文件,修改前记得备份.
打开:phpcmslibsfunctionsglobal.func.php这个文件,找到分页函数,复制一下,粘贴到默认分页函数的下面,重新命名,比如我的就命名为wz_pages,保存.
打开:phpcms/libs/classes/template_cache.class.php,找到207行的
$str .= ‘$pages = pages($’.$op.’_total, $page, $pagesize, $urlrule);’;
在这行的下面加上:
$str .= ‘$wz_pages = wz_pages($’.$op.’_total, $page, $pagesize, $urlrule);’; 保存.
最后,如果你要使用你自定义的分页函数,那么在模板中直接用{$wz_pages}就可以了.
以后要修改样式,直接修改:
phpcmslibsfunctionsglobal.func.php这个文件中的wz_pages函数就可以了,不会影响到后台,我的表达能力就只有这些了,看不懂的,回贴吧.
后续优化:使用过程中,发现使用SQL分页的不能正常使用,得再添加如下代码:
打开:phpcms/libs/classes/template_cache.class.php,找到178行的:
$str .= ‘$r = $get_db->sql_query(“‘.$sql.’”);$s = $get_db->fetch_next();$pages=pages($s['count'], $page, $pagesize, $urlrule);’;
在他下面增加:
$str .= ‘$r = $get_db->sql_query(“‘.$sql.’”);$s = $get_db->fetch_next();$wz_pages=wz_pages($s['count'], $page, $pagesize, $urlrule);’;
这样,SQL的分页也正常了,嘿嘿,欢迎拍砖、不拍的,你得顶啊~~
再次后续优化:
有朋友提到,会员中心的收藏列表分页不能使用上面的办法。
因为收藏列表的分页函数直接在其他文件定好了,所以通过修改模板缓存文件是不可行的,下面提供修改办法:
phpcmslibsclassesmodel.class.php 61行,代码如下:
- $this->pages = pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);
- //把上面这行修改成:
- $this->pages = wz_pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);//开源软件:Vevb.com
模板中的{$pages}不用改为{$wz_pages}
上面是第一种办法。
不过这样子的话,可能后台也会影响到了,这个地方好像是控制好多地方的,也可以这样修改,还是上面那个文件,61行不要修改,直接在61行下面添加:
$this->wz_pages= wz_pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);
再去到:phpcmsmodulesmemberindex.php 718行
把 $pages = $this->favorite_db->pages;
修改为:$wz_pages = $this->favorite_db->wz_pages;
模板中的{$pages}要修改为{$wz_pages}
这是以收藏列表为例子,其他的也大同小异了.
图片上传问题
百分之八十是路径经过了修改,默认站点的路径修改80%会出现JS失效或者上传文件夹权限不够。所以最好在开发是使用新建站点,方便路径的修改来转移文件到服务器上,caches/system.php的app_path路径可能是问题所在。
举个例子:
将图片的js、images、css路径转移到CDN上了,且APP_PATH路径也对了,上传附件的时候就出现了 “服务器安全认证错误”的提示,找到文件phpcms/modules/attachment/functions/global.func.php其中的initupload函数有以下几行:
- swfu = new SWFUpload({flash_url:”‘.FLASH_UP_PATH.’swfupload/swfupload.swf?”+Math.random(),upload_url:”‘.APP_PATH.’index.php?m=attachment&c=attachments&a=swfupload&dosubmit=1″,file_post_name : “Filedata”, 其中FLASH_UP_PATH 原为 JS_PATH 我在base.php中重新定义的常量: define(‘FLASH_UP_PATH’, APP_PATH.’statics/js/’); //开源软件:Vevb.com
这里把引用上传组件的路径写死了,改了JS_PATH 这里必定影响,下一行可以见到 APP_PATH ,这也就是为什么很多解答都说APP_PATH必须和js、images、css路径必须一致了 这里的解决方法的好处就是上传的js组件引用本站的,其他的js随意放在什么地方。(将APP_PATH改为定死的站点目录,可暂时解决问题)
工作流修改(即审核功能)
设定好工作流的用户同时,请同时修改所要使用该工作流的栏目的设置,要不然你会很郁闷的.
新闻热点
疑难解答