网站地图    收藏   

主页 > 后端 > phpcmsv9 >

PHPCMS V9开发应用中常见问题总结

来源:未知    时间:2014-12-03 20:38 作者:xxadmin 阅读:

[导读] 下面来给各位同学整理一些在使用PHPCMS V9开发应用中常见问题,希望些这解决方案能给你带来帮助. 文章列表页不出现传的文章,代码如下: content action=lists catid=$catid num=7 order=listorder DESC...

下面来给各位同学整理一些在使用PHPCMS V9开发应用中常见问题,希望些这解决方案能给你带来帮助.

文章列表页不出现传的文章,代码如下:

content action="lists" catid="$catid" num="7" order="listorder DESC" thumb="1" moreinfo="1"}

默认的后台代码thumb=”1″,但是当没有缩略图时,列表如果加入了图片循环,则不会循环出内容,所以应改为thumb=”$thumb”,代码如下:

  1. {php list($copyfrom) = explode('|'$r['copyfrom'])} 
  2. {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行,代码如下:

  1. $this->pages = pages($this->number, $page$pagesize$urlrule$array$setpages); 
  2. //把上面这行修改成: 
  3. $this->pages = wz_pages($this->number, $page$pagesize$urlrule$array$setpages);//开源软件:phpfensi.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函数有以下几行:

  1. 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/’); //开源软件:phpfensi.com 

这里把引用上传组件的路径写死了,改了JS_PATH 这里必定影响,下一行可以见到 APP_PATH ,这也就是为什么很多解答都说APP_PATH必须和js、images、css路径必须一致了 这里的解决方法的好处就是上传的js组件引用本站的,其他的js随意放在什么地方。(将APP_PATH改为定死的站点目录,可暂时解决问题)

工作流修改(即审核功能)

设定好工作流的用户同时,请同时修改所要使用该工作流的栏目的设置,要不然你会很郁闷的.

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论