解决PHPCMS在国外空间单个目录下附件数量超过1024的方法

这个问题大家也通常会很少遇到.附件数量为什么会在单个目录下产生并超过1024个呢.这主要还是要看网站的类型了.
有些用户使用PHPCMS直接做图片站,而PHPCMS附件的生成地址是以当天的发布日期来确定的.也就是如果你一天采集发布了1W篇图片的话,那么远程下载的图片数量肯定会大得惊人.

这时候,洽洽一些国外的空间上又限制单个目录下的文件数量为1024,那么,你超标了!
怎么办呢?

从生成目录这里下手,默认生成目录是uploadfile/Y/md/,也就是"生成目录/年/月日/".如果我们改为"生成目录/年/月日/时/",即u*/Y/md/H/,这样的话.生成目录不就按照时来细分了.一天24个小时,24个小时分别生成一个目录.这样就一定程度上减轻了单个目录下附件生成数量的压力.
是不是一个变通的好方法呢.

怎么修改呢.也很简单.直接打开include/attachment.class.php
找到Y/md/,将他修改为Y/md/H/
注意,有两处哦!

PHPCMS小细节改进之添加关联链接

在使用PHPCMS程序过程中,当一个网站建立到位以后,包括基础数据都准备好了,那么大多数的站长都会根据自己网站的关键词在后台添加关联链接,这是增加站内链接有效办法.
在添加过程中,我们注意到,当添加完一次关联链接后,程序就会自动跳到关联链接管理页面,这时候,我们不得不再点击一下"添加关联链接"才能继续添加.这让我感觉有些麻烦,至少我是这样认为的.
那么今天就来解决这个问题,很简单:
1.打开admin/keylink.inc.php
在第8行下面增加一句:
$forward1 = '?mod='.$mod.'&file='.$file.'&action=add';
2.将原来第19行的代码改为:
showmessage('操作成功!', $forward1);

OK,这样就解决了,现在当我们再次添加关联链接后,页面仍然会继续返回到这个添加的页面,是不是会感觉方便点呢!

再谈PHPCMS中$CATEGORY的作用

$CATEGORY这个定义参数的变量很有意思,在制作模板的时候可以给我们提供很多方便.
例1,在内容页中调用同级栏目,可以用它轻易获得上级频道的ID.
$cid=$CATEGORY[$C[catid]][parentid];
?>
{get sql=* parentid='$cid' *}
例2,在栏目页面中调用当调用上级频道的内容.
$aid=$CATEGORY[$C[catid]][arrchildid];
?>
{get sql=* catid in($aid) *}
例3,在任何模板上,轻松获取一个栏目的URL,名称,文章数量(指子栏目)等.
{$CATEGORY[1][url]}
{$CATEGORY[2][catname]}
{$CATEGORY[3][items]}
...
还有其他一些参数值,大家可以查阅数据字典.具体的使用方法,大家可以灵活多样,不要被模板教程局限了自己的思维.
其实做一个模板真的不难!

关于PHPCMS2008远程下载图片和自动获取缩略图的若干问题

本文中所描述的情况或提供的解决方案均是在PHPCMS2008 sp3版本上进行的.

首先,我得先讲一个问题,一个关于PHPCMS2008版本中一直存在的问题,这就是自动获取缩略图的功能.
使用PHPCMS的用户都知道,自动获取缩略时只有在内容发布时为远程图片时才会起作用,自己新发布一篇文章时,如果内容里的图片是站点本身已有的图片时就不能自动获取到图片.我记得有个别用户在官方论坛上反映过这个问题,不过官方并未解决好这个问题.

解决这个问题其实也只需要修改一个文件,即include/attachment.class.php
这个文件里其实也只需要修改几处就可以解决发布本地图片时不能自动获取缩略图的问题.

PHPCMS2008关键词分隔符空格改为逗号","的解决方案

由于用到UTF-8版本建立英文站点,在关键词分隔这一块,默认的用空格来区分关键词不太可控,而且导致了英文关键词词义的变化.所以想到修改这个关键词分隔符空格为",".

在PHPCMS论坛上先搜索了一番,发现也有几位会员提出过此问题,不过均未能圆满解决.所以自己打开程序文件看,呵呵,总算是成功解决了.准备年后发布解决方案.

PHPCMS全新运行框架测试中

以下引用官方论坛管理员freshcn的发言:

2008年未到2009年未这一年的时间,对于PHPCMS是一个不太平静的一年。我们经历了太多的大起大落。对于PHPCMS我们一直都在加强技术的创新。
2009年9月1日PHPCMS开发团队稍然的离开的KU6网的办公区,去到了北京天通苑的一个民房中,也正是这一段时间北京下了第一场雪,当晚我们的开发人员还高兴的出去玩雪了。历时2个月,每周6天,每天早9点到晚9点,576个小时下一代的PHPCMS运行框架完成了。
这是一套独立的PHP框架采用面向对象(吸收了更多的JAVA的开发经验)开发技术进行开发,融入MVC结构可为敏捷性开发提供助力。框架以灵活、高效、安全性为目的进行开发。
框架由核心类、工厂类和应用类组成。提供了良好的可扩展性,以后的您不用再为二次开发了PHPCMS后,官方的升级会损坏您所开发的功能,新的框架很好的解决了二次开发的问题。同时想要使用别的类直接加入到应用包里面,就可直接通过工厂类来初始化后使用。
目前框架已经应用到KU6网二个大型项目中,以测试其性能,使其更加的完善。目前应用项目最高已经达到了单日6千万PV。我们还在不断的完善框架本身,以适应于未来的PHPCMS版本的需要。大家现在所知道的phpcms2008 SP3中新的视频模块的支持站点就是基于本框架的基础之上开发的。详情可以查看www.ku6vms.com
我们一直用心在做!
原文链接:http://bbs.phpcms.cn/thread-139932-1-1.html

确实让人振奋.让我们共同见证PHPCMS的强大吧.

PHPCMS2008内容页分页显示全部的解决办法

问题表现描述以及解决后的显示图示见以下链接:
http://www.liuxq.cn/2009/12/478/

下面直接提供liuxq[www.liuxq.cn]的解决办法,很简单,只要修改一下/include/url.class.php这个文件即可.

打开这个文件,找到并将" function show_pages($page, $pagenumber, $pageurls) "这一行到" function update($contentid,$url) "之间的代码全部替换成以下代码:

{
$pages = '';
$multipage .= '<span>共'.$pagenumber.'页</span>';
$n = 9;//每页显示的页码数
$i = 0;
if ($pagenumber <= $n)
{
$start_page = 1;
$end_page = $pagenumber;
}
else
{
$i = floor($page/$n);
if($page >= 5)
{
if($page+2 >= $pagenumber)
{
$start_page = $page - 6;
}
else{
$start_page = $page - 4;
}
$end_page = ($page + 4) >= $pagenumber ? $pagenumber : $page + 4;
}
else
{
$start_page = 1;
$end_page = 8 >= $pagenumber ? $pagenumber : 8;
}
}
for($i=$start_page; $i<=$end_page; $i++)
{
$pages .= $page == $i ? '<span>'.$i.'</span>' : '<a href="'.$pageurls[$i][1].'" target="_self">'.$i.'</a>';
}
$firstpage =min($page, 1);
$lastpage =max($page,$pagenumber);
$prepage = max($page-1, 1);
$nextpage = min($page+1, $pagenumber);
if($page>1 && $page < $pagenumber)
{
$pagelist=$multipage.'<a href="'.$pageurls[$firstpage][1].'" target="_self">首页</a>'.'<a href="'.$pageurls[$prepage][1].'" target="_self">上一页</a>'.$pages.'<a href="'.$pageurls[$nextpage][1].'" target="_self">下一页</a><a href="'.$pageurls[$lastpage][1].'" target="_self">尾页</a>';
}
elseif($page+1 > $pagenumber)
{
$pagelist=$multipage.'<a href="'.$pageurls[$firstpage][1].'" target="_self">首页</a>'.'<a href="'.$pageurls[$prepage][1].'" target="_self">上一页</a>'.$pages;
}
else
{
$pagelist=$multipage.$pages.'<a href="'.$pageurls[$nextpage][1].'" target="_self">下一页</a><a href="'.$pageurls[$lastpage][1].'" target="_self">尾页</a>';
}
return $pagelist;
}
//重新改造结束 www.liuxq.cn

改造完成,如果是动态URL的话,前台刷新一下页面就能重新看到新的分页样式了,当然,分页的CSS样式需要自己写下了.

给每个文章的浏览次数都加上100,适用于PHPCMS2008

建站后,刚刚发布的文章由于浏览的人还比较少,导致了其浏览次数不高,这样,其他用户刚进来看到后也不会太认真去看,因为用户可能会想,这样一个没有"人气"的文章对于他来说也未必有浏览价值!那么,如何给每个文章的浏览资料在原有基础上都加上100呢.下面就说下方法:

打开根目录里的cont.php,将倒数第三行的<?=$hits?>改为<?=$hits+100?>就可以了,是不是特别简单呢!

有些用户在想着在模板里的<span id="hits">0</span>前面加个100,这样导致的问题就是真实浏览资料前加了一个"100",显然这种做法会有弊端,而且扫尾影响到后期的工作!

关于PHPCMS2008生成HTML一些建议

历数PHPCMS的各个版本,其实要属PHPCMS2007的SP6在生成HTML方面效率是最高的,到了PHPCMS2008,生成HTML的效率可以说是打了一个大折扣.生成速度比起前面的07_SP6慢了不少.

有时候,PHPCMS2008在数据较多的情况下,生成HTML就会更慢了,而且每次生成的数量设置还不能过大,否则程序根本就执行不了生成.在一些国外空间上面使用时就更不用说了.

这里,winliuxq[www.liuxq.cn]告诉大家一个小技巧:
生成时设置的每次生成页数少一些,比如为50,如果每个内容页面还有更多的分页时就要设置得更小一些,比如说20页.然后指定生成的起始ID和最终ID.这样生成时不至于会出现程序都无法执行的情况了.

这个方法比较适合于数据量较大或者内容分页较多,且网站放在国外空间上的.

PHPCMS2008内容页分页显示全部的解决办法

问题描述:
存在于PHPCMS2008版本中,内容如果有10个分页,前台就显示10个分页,如果内容有20或者30甚至更多的分页时,内容页的分页也全部显示出来,这就极易导致内容页面"不整洁".
看了一下PHPCMS的代码,对内容页分页进行了些许改造,效果如图:

新内容分页1
新内容分页2
新内容分页3

择日发布代码.

下一页 »