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

2019-02-15 15:37:46王振洲
用PHPCMS开发的第一个项目是一个素材类网站 www.penshow.cn,之所以选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都没这么多,呵呵),以下是修改后的部分代码。