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

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

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

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

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

{phplist($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);//开源软件: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函数有以下几行:

swfu=newSWFUpload({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改为定死的站点目录,可暂时解决问题)

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

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

极客网企业会员

免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。