服务器之家:专注于服务器技术及软件下载分享
分类导航

DEDECMS|帝国CMS|Discuz|PHPCMS|Wordpress|ZBLOG|ECSHOP|苹果CMS|极致CMS|CMS系统|

服务器之家 - 建站程序 - PHPCMS - PHPCMS 使用心得与技巧,以及小BUG的纠正

PHPCMS 使用心得与技巧,以及小BUG的纠正

2019-10-08 10:58phpcms建站网 PHPCMS

PHPCMS是一款非常强大的开源系统,感觉可以用来开发以前做过的大部分项目。

用PHPCMS开发的第一个项目是一个素材类网站 www.zzvips.com,之所以选PHPCMS估计是因为看了她的百万级的数据测试报告。而之后,我越用感觉也越不错。当然,期间遇到过不少问题,总结了一下,方便以后开发。(版本:phpcms2008sp3_gbk) 

综合问题 

使用GET标签时静态分页出错以及分页地址会链接到后台 

文件:/include/global.func.php 
函数:pages 
在 if($curr_page>0) 前添加 $url = load('url.class.php'),如下: 
$url = load('url.class.php'); 
if($curr_page>0) 
只要添加一行代码就解决了,而在网上找的解决方法却非常复杂,好郁闷! 

而分页地址会链接到后台则只需要将以下的第一行代码替换成第二行就OK了,当然,建议把第一行注释掉,加上第二行。 

复制代码

代码如下:


$multipage .= ' <u><b>'.$pages.'</b></u><a href="'.pageurl($urlrule, $curr_page, $array).'">下一页</a>'; 
$multipage .= $catid ?' <u><b>'.$pages.'</b></u><a href="'.$url->category($catid, $curr_page, 1, 1).'">下一页</a>' : ' <u><b>'.$pages.'</b></u><a href="'.pageurl($urlrule, $curr_page, $array).'">下一页</a>'; 


上传文件路径修改 

文件:include/attachment.class.php 
找到 $this->savepath 和 $dir 这两个变量,以下是修改后的值,路径为“uploadfile/年/月/日/”: 
$this->savepath = UPLOAD_ROOT.date('Y/md/'); 
$dir = date('Y/m/d/', TIME); 

将缩略图保存到单独的文件夹,这样子也方便管理 
文件:/include/global.func.php 
$newimgurl = dirname($imgurl).'/thumb/thumb_'.$width.'_'.$height.'_'.basename($imgurl); 

文件:/include/attachment.class.php 
以下是 get_thumb 函数修改后的代码 

复制代码

代码如下:


function get_thumb($image) 

/* 缩略图文件夹 */ 
$thumbdir = dirname($image).'/thumb'; 
if (!file_exists($thumbdir)) mkdir($thumbdir, 0700); 
return dirname($image).'/thumb/thumb_'.basename($image); 
//return str_replace('.', '_thumb.', $image); 


BUG (UPLOAD_PATH 不存在) 

记不清报什么错了,反正后来我是直接把 UPLOAD_PATH 这个常量删掉,最后就正常了。有知道提示什么错误的请留个言。 
提示错误:Warning: mkdir() [function.mkdir]: No such file or directory in... 类似这样子的 
只要把UPLOAD_PATH去掉然后更新缓存,一切正常。 

/include/fields/images/output.inc.php 
$thumb = UPLOAD_URL.$attachment->get_thumb(UPLOAD_PATH.$a['filepath']); 

全站搜索最多显示的记录数 

PHPCMS 的全站搜索很强大,貌似能支持百万级的数据量。通常,搜索结果不需要输出全部记录数的,所以我将搜索输出结果设置为最多1000条(已经很多了,GOOGLE都没这么多,呵呵),以下是修改后的部分代码。 

复制代码

代码如下:


文件:/search/index.php 
$page = max(intval($page), 1); 
$page = $page>100 ? 100 : $page; (增加了这行代码) 
文件:/search/include/search.class.php 
$this->total = cache_count("SELECT COUNT(*) AS `count` FROM `$this->table` WHERE $where"); 
$this->total = $this->total>1000 ? 1000 : $this->total; (增加了这行代码) 



采集模块 

该如何去设置采集规则就不多说了,官方有详细介绍:http://www.phpcms.cn/2009/0522/220.html 

需要采集的话使用GBK版本的PHPCMS 

试过用UTF-8版本的去采集,结果不论怎么调,采回来的中文都是乱码,好郁闷。没有深入研究,转投GBK。 

修改采集图片和压缩文件时的保存路径 

文件:/spider/include/get_remotefiles.func.php 
函数:do_saveremotefiles 
修改函数中以下两个变量;以下是我修改后的结果,保存路径为“uploadfile/年/月/日/”: 

复制代码

代码如下:


$filepath = PHPCMS_PATH . $uploaddir . '/' . date('Y/m/d') . '/'; 
$uploaddir = PHPCMS_ROOT . '/' . $uploaddir . '/' . date('Y/m/d') . '/'; 


采集内容时无法远程保存图片 

src 前的空格导致了图片在采集内容时采集不了,只有在发布时才能采集得到。 
文件:/spider/include/get_remotefiles.func.php 
函数:get_remotefileurls 
以下分别是修改前和修改后的代码,注意src前的空格,只要把空格去掉就OK了。 

复制代码

代码如下:


if (!preg_match_all("/<(?:a|img).+?(href| src)=([\"|']?)([^ \"'>]+\.($ext))\\2/i", $string, $matches)) 
if (!preg_match_all("/<(?:a|img).+?(href|src)=([\"|']?)([^ \"'>]+\.($ext))\\2/i", $string, $matches)) 


远程保存非内容中的图片和文件 

采集模块默认只会保存“内容”标签中的图片和文件,而其它标签中不论出现多少次img或a都不会被采集。如果你需要把图片和文件分别保存到其它字段,这个修改貌似挺有用的。 
文件:/spider/admin/mainspider.inc.php 
行数:372行 
以下是修改结果: 

复制代码

代码如下:


$v = get_remotefiles($v, 'gif|jpg|jpeg|bmp|png|rar|zip', $dourl, $basehref, true); 


抓取不到页面时采集状态改为未采集 

如果被采集网站不稳定,有时会出现抓取不到采集页面的情况,而此时采集状态还是会被标记为已采集。所以只要小小修改一下,我们会方便很多。 
文件:/spider/admin/mainspider.inc.php 
行数:664行 
以下是修改结果,添加了“&& (trim($body)!=''”这一句: 

复制代码

代码如下:


if (($body!=$LANG['title_or_content_null']) && (trim($body)!='')) 

延伸 · 阅读

精彩推荐
  • PHPCMSphpcms转移到虚拟空间的详细步骤

    phpcms转移到虚拟空间的详细步骤

    本文向大家介绍phpcms从本地转移到虚拟空间的步骤,转移过程需要改动一部分文件,这里提供如何改动这些文件,以保证你可以顺利转移PHPCMS ...

    phpcms教程网4232019-10-13
  • PHPCMSphpcms常见问题解答

    phpcms常见问题解答

    1.为什么phpcms首页幻灯片怎么显示不出来? 答:需要设置文章的 标题图片 如果设置标题图片,则可以在首页以及栏目页以图片方式链接到文章。 2.自定义...

    phpcms教程网2712019-10-07
  • PHPCMSphpcms v9去除盛大连接 关闭盛大通行证的修改方法

    phpcms v9去除盛大连接 关闭盛大通行证的修改方法

    phpcms v9默认开启了盛大连接,直接使用盛大通告证登录网站,但是盛大通告证的覆盖面有限,比不上QQ或者支付宝,甚至不如人人网、豆瓣之类,于是有朋...

    phpcms教程网5562019-10-13
  • PHPCMS数据库导入成功,phpcms打不开

    数据库导入成功,phpcms打不开

    问:,数据库导入成功,phpcms打不开 答:您好,查看此域名是解析到 云主机 上的,报错来看应该是您导入的数据库不完整,还差session的表,请您核实 若需...

    未知1822023-05-07
  • PHPCMSphpcms V9实现QQ登陆OAuth2.0提供下载

    phpcms V9实现QQ登陆OAuth2.0提供下载

    phpcmsV9使用的QQ登陆依然是OAuth1.0,但现在腾讯已经不审核使用OAuth1.0的网站了。这对于使用pc的站长来讲是一个无比巨大的坑。经过对phpcms论坛的一位同学做...

    phpcms教程网3402019-10-11
  • PHPCMSphpcms怎么上传歌曲文件

    phpcms怎么上传歌曲文件

    phpcms上传歌曲文件的方法:首先依次打开“设置-站点管理-修改”;然后在附件配置的“允许上传附件类型”中添加自己需要的类型;接着打开“添加模型...

    未知1522023-05-07
  • PHPCMSphpcms的栏目缓存无限级罗列展示处理代码(亲测)

    phpcms的栏目缓存无限级罗列展示处理代码(亲测)

    本文为大家详细介绍下phpcms的栏目缓存无限级罗列展示是怎么实现的,粗测试了一下,效果还不错,有需求的朋友可以参考下哈,希望对大家有所帮助 ...

    phpcms教程网8642019-10-11
  • PHPCMS如何设置PhpCms广告模块管理 PhpCms广告模块管理图文教程

    如何设置PhpCms广告模块管理 PhpCms广告模块管理图文教程

    PhpCms广告模块管理图文教程,下面给大家总结一下 ...

    PHPCMS教程网3782019-10-14