dedecms5.1升级sp1出现IfTagNull()错误解决方法记录

Filed under: dedecms专栏 | No Comments »
Posted on

最近有报告错误说从dedecms5.1升级sp1出现错误,代码大致如下:
Fatal error: Call to undefined function IfTagNull() in /……/include/pub_dedetag.php(485) : eval()’d code on line 1
分析错误原因,是因为模板中调用了IfTagNull函数而程序中找不到这个函数导致出错,解决的办法很简单,两种,这里记录一下:
1、修改article_article.htm模板,把{dede:tag type=’current’ function=’IfTagNull(@me)’/} 换回原来的{dede:tag type=’current’ /}
2、修改include目录下的inc_functions.php文件,加入代码如下:

//这个函数根据自己需要进行修改
function IfTagNull($tag){
 
//这里直接输出了Tag:自行修改
 
if(!$tag=="")  $tag="Tag:".$tag;
 
return $tag;
}
Tags : , ,

SupeSite模块代码常见参数含义【转】

Filed under: PHP研究 | No Comments »
Posted on

在此为大家介绍模块代码里常见几个参数的含义,如果有其他的参数您不清楚什么含义的,可以跟帖询问,或者在SS安装使用区发帖询问。

order——————————以什么方式排序,常见的排序方式如下几种:
        displayorder————–以后台设置的显示顺序排序
        views DESC—————-以查看数递减的方式排序
        replies DESC————–以回复数递减的方式排序
        posts DESC—————-以帖子数递减的方式排序
        m.posts DESC————–以会员贴子数递减的方式排序
        m.oltime DESC————-以会员在线时间递减的方式排序
        u.dateline DESC———–以会员注册时间递减的方式排序
        i.goodrate DESC———–以信息好评数递减的方式排序
        u.spaceallnum DESC——–以会员个人空间的信息总数递减排序
        u.spaceblognum DESC——-以会员个人空间的日志总数递减排序
        g.usernum DESC————以圈子会员数递减的方式排序
        g.lastpost DESC———–以圈子最后更新时间递减的方式排序
limit——————————显示多少条信息
        0,100———————显示100条
dateline—————————发布时间范围,以秒(s)为单位
        2592000——————-2592000秒,即:3天
showdetail————————-是否显示信息摘要
        1————————-1为显示(0为不显示)
messagelen————————-摘要显示的长度,以字节数为单位
        160———————–显示160个字节信息
subjectlen————————-主题的显示长度,以字节数为单位
        40————————显示40个字节信息
type——————————-设置信息的类型
        forum———————二级版块的信息
        goods———————商品的信息
        news———————-资讯的信息
        video———————影音的信息
filetype—————————设置附件的类型
        image———————图片附件
lastpost—————————最后回复时间范围,以秒(s)为单位
        2592000——————-2592000秒,即:3天
subjectdot————————-显示主题时,如果主题长度大于显示长度,末尾是否加点
        1————————-末尾加点(0为末尾不加点)
messagedot————————-显示摘要时,如果摘要长度大于显示长度,末尾是否加点
        1————————-末尾加点(0为末尾不加点)
showattach————————-是否显示附件信息
        1————————-显示附件信息
haveattach————————-是否必须包含附件
        1————————-必须包含附件
isstar—————————–空间之星
        1————————-是
perpage—————————-每页显示的信息条数
        15————————显示15条
regdate—————————-注册时间范围,以秒(s)为单位
        2592000——————-2592000秒,即:3天

给大家一个技巧:一般可以通过英文意思来判断参数的含义,例如subjectlen,是subject length,即:主题长度。

Tags : , ,

dedecms中实现列表页面调用其它栏目的信息

Filed under: dedecms专栏 | No Comments »
Posted on

群里有人问如何在dedecms中实现列表页面调用不同栏目的文章信息,以下给出解决方法,针对dedecms4.0。

首先,为dedecma增加一个标签的属性,我修改的标签为【List 标记】增加属性addonid,使用方法为:

addonid= ‘调用的栏目编号’,不同的栏目请用半角“,”的分隔,这些栏目必须是最终列表栏目,同时不必在这个栏目编号中增加本栏目的编号。

例子:{dede:list pagesize=’2′ addonid=’1,2′} {/dede:list}

继续修改include/inc_arclist_view.php,这个比较麻烦,不会的话,直接拷贝粘贴。

第一步,新增$addonid变量,如下:

class ListView
{
 var $dsql;
 var $dtp;
 var $dtp2;
 var $TypeID;
 var $TypeLink;
 var $PageNo;
 var $TotalPage;
 var $TotalResult;
 var $PageSize;
 var $ChannelUnit;
 var $ListType;
 var $Fields;
 var $PartView;
 var $StartTime;
 var $addonid; //这里为新增的变量

……

第二步:获得模板中的addonid的值,并且统计文章总数,修改function CountRecord()函数:

原本代码为:

  //——————
  //统计列表里的记录
  //——————
  function CountRecord()
  {
   global $cfg_list_son;
   //统计数据库记录
   $this->TotalResult = -1;
   if(isset($GLOBALS[’TotalResult’])) $this->TotalResult = $GLOBALS[’TotalResult’];
   if(isset($GLOBALS[’PageNo’])) $this->PageNo = $GLOBALS[’PageNo’];
   else $this->PageNo = 1;
   
   if($this->TotalResult==-1)
   {
     $addSql  = ” arcrank > -1 “;
    
     if($cfg_list_son==’否’) $addSql .= ” And (typeid=’”.$this->TypeID.”‘ or typeid2=’”.$this->TypeID.”‘) “;
     else $addSql .= ” And (”.$this->TypeLink->GetSunID($this->TypeID,”#@__archives”,$this->Fields[’channeltype’]).” Or #@__archives.typeid2=’”.$this->TypeID.”‘) “;
    
     if($this->StartTime>0) $addSql .= ” And senddate>’”.$this->StartTime.”‘”;
     $cquery = “Select count(*) as dd From #@__archives where $addSql”;
    $row = $this->dsql->GetOne($cquery);
    if(is_array($row)) $this->TotalResult = $row[’dd’];
    else $this->TotalResult = 0;
   }
   
   //初始化列表模板,并统计页面总数
   $tempfile = $GLOBALS[’cfg_basedir’].$GLOBALS[’cfg_templets_dir’].”/”.$this->TypeLink->TypeInfos[’templist’];
   $tempfile = str_replace(”{tid}”,$this->TypeID,$tempfile);
   $tempfile = str_replace(”{cid}”,$this->ChannelUnit->ChannelInfos[’nid’],$tempfile);
   if(!file_exists($tempfile)){
       $tempfile = $GLOBALS[’cfg_basedir’].$GLOBALS[’cfg_templets_dir’].”/”.$GLOBALS[’cfg_df_style’].”/list_default.htm”;
    }
   if(!file_exists($tempfile)||!is_file($tempfile)){
    echo “模板文件:’”.$tempfile.”‘ 不存在,无法解析文档!”;
    exit();
   }
   $this->dtp->LoadTemplate($tempfile);
   $ctag = $this->dtp->GetTag(”page”);
   if(!is_object($ctag)){ $ctag = $this->dtp->GetTag(”list”); }
   if(!is_object($ctag)) $this->PageSize = 20;
   else{
     if($ctag->GetAtt(”pagesize”)!=”") $this->PageSize = $ctag->GetAtt(”pagesize”);
      else $this->PageSize = 20;
    }
    $this->TotalPage = ceil($this->TotalResult/$this->PageSize);
  }

修改为:

  //——————
  //统计列表里的记录
  //——————
  function CountRecord()
  {
   global $cfg_list_son;
  
   //初始化列表模板,并统计页面总数
   $tempfile = $GLOBALS[’cfg_basedir’].$GLOBALS[’cfg_templets_dir’].”/”.$this->TypeLink->TypeInfos[’templist’];
   $tempfile = str_replace(”{tid}”,$this->TypeID,$tempfile);
   $tempfile = str_replace(”{cid}”,$this->ChannelUnit->ChannelInfos[’nid’],$tempfile);
   if(!file_exists($tempfile)){
       $tempfile = $GLOBALS[’cfg_basedir’].$GLOBALS[’cfg_templets_dir’].”/”.$GLOBALS[’cfg_df_style’].”/list_default.htm”;
    }
   if(!file_exists($tempfile)||!is_file($tempfile)){
    echo “模板文件:’”.$tempfile.”‘ 不存在,无法解析文档!”;
    exit();
   }
   $this->dtp->LoadTemplate($tempfile);
   $ctag = $this->dtp->GetTag(”page”);
   if(!is_object($ctag)){ $ctag = $this->dtp->GetTag(”list”); }  
  if($ctag->GetAtt(”addonid”)!=”") $this->addonid = $ctag->GetAtt(”addonid”);
   if(!is_object($ctag)) $this->PageSize = 20;
   else{
     if($ctag->GetAtt(”pagesize”)!=”") {
     $this->PageSize = $ctag->GetAtt(”pagesize”);
   }
      else $this->PageSize = 20;
    }
 
   //统计数据库记录
   $this->TotalResult = -1;
   if(isset($GLOBALS[’TotalResult’])) $this->TotalResult = $GLOBALS[’TotalResult’];
   if(isset($GLOBALS[’PageNo’])) $this->PageNo = $GLOBALS[’PageNo’];
   else $this->PageNo = 1;
   
   if($this->TotalResult==-1)
   {
     $addSql  = ” arcrank > -1 “;
    
  if($this->addonid!=”") $isaddon = ” Or #@__archives.typeid in (”.$this->addonid.”)”;
  else $isaddon = “”;
    
     if($cfg_list_son==’否’) $addSql .= ” And (typeid=’”.$this->TypeID.”‘ or typeid2=’”.$this->TypeID.”‘ “.$isaddon.”) “;
     else $addSql .= ” And (”.$this->TypeLink->GetSunID($this->TypeID,”#@__archives”,$this->Fields[’channeltype’]).” Or #@__archives.typeid2=’”.$this->TypeID.”‘ “.$isaddon.”) “;

    
     if($this->StartTime>0) $addSql .= ” And senddate>’”.$this->StartTime.”‘”;
     $cquery = “Select count(*) as dd From #@__archives where $addSql”;
    $row = $this->dsql->GetOne($cquery);
    if(is_array($row)) $this->TotalResult = $row[’dd’];
    else $this->TotalResult = 0;
   }
 
    $this->TotalPage = ceil($this->TotalResult/$this->PageSize);
  }

说明,首先把统计数据库记录这部分代码后移,目的是为了利用获得的属性参数addonid,接着通过$this->addonid = $ctag->GetAtt(”addonid”);获得模板中的addonid的值,然后生成新的统计数据库的sql语句。

第三步,修改function GetArcList()函数,显示文档列表。

原文件为(代码片断):

  if($cfg_list_son==’否’) $orwhere .= ” And (arc.typeid=’”.$this->TypeID.”‘ or arc.typeid2=’”.$this->TypeID.”‘) “;
  else $orwhere .= ” And (”.$this->TypeLink->GetSunID($this->TypeID,”arc”,$this->Fields[’channeltype’]).” Or arc.typeid2=’”.$this->TypeID.”‘) “;

修改为:

  if($this->addonid!=”") $isaddon = ” Or arc.typeid in (”.$this->addonid.”)”;
  else $isaddon = “”;
  if($cfg_list_son==’否’) $orwhere .= ” And (arc.typeid=’”.$this->TypeID.”‘ or arc.typeid2=’”.$this->TypeID.”‘ “.$isaddon.”) “;
  else $orwhere .= ” And (”.$this->TypeLink->GetSunID($this->TypeID,”arc”,$this->Fields[’channeltype’]).” Or arc.typeid2=’”.$this->TypeID.”‘ “.$isaddon.”) “;

到此就可以实现列表页面调用其它栏目的信息。有问题的话Q我。

Tags : , ,

国内主流PHP类CMS数据负载测评报告

Filed under: PHP研究, 实践与研究 | 1 Comment »
Posted on

国内免费内容管理系统(PHP类CMS)测评报告之一

国内PHP类CMS数据负载测评报告

本文由助易网CMS评测小组提供。如需转载,请保留所有信息及链接。谢谢合作!

前言

当今时代网络已经进入家庭,很多网民已经不满足于QQ以及一些blog的个性展现而走向了网站建设的站长之路,一些个人网站的崛起也让他们看到了成功的曙光,与此同时,各类网站管理系统(以下简称cms)也犹如雨后春笋般地出现在了大家的眼前,给很多有站长梦的朋友建设网站带来了曙光。

但问题也随之而来,那就是:站长们应该如何选择cms,选择的cms系统是否能够完全满足自己的需要,cms是否能够稳定而持久的方便站长的工作?是否能够满足网站在将来发展的需要?带着同样的疑问,助易网测评小组决定对现在比较流行的PHP平台下的国内主流cms系统作一次深入的评测,参评的国内php类cms包含了当下主流的dedecms、ecms、php168、phpcms、supesite等系统,测评的具体内容则包括cms的服务、质量、功能、数据负载等多个方面,测评小组期望通过测评给广大站长选择适合自己的cms程序提供依据。

本报告的内容为cms的数据负载专项评测结果,目的是在数据负载方面为选择cms系统提供依据。

一、评测对象

经过筛选,最终确定参与本次评测的php类cms如下表:

参评cms

备注:测评小组原本想将cmsware(思维CMS)列入评测范围,但因cmsware始终未能找到好的方法录入50万的数据,因时间所限,所以本次cmsware不参加评比的最终排名,只给出部分功能的介绍。

二、评测环境

为保证公平公正,本次测评我们把全部的cms都统一安装在同一台电脑相同环境中,利用端口区分每个cms,具体的测试环境为:

1、硬件环境

CPU:Intel(R) Core(TM)2 Duo 英特尔酷睿2双核
主频:1.80GHz
物理内存:1GB
硬盘:120GB

2、软件环境

操作系统:Windows Server 2003 Standard Edition Service Pack 2
Web服务器:Apache HTTP Server 2.2.6
PHP:5.2.5
MYSQL:MySQL Server 5.0
ZEND:ZendOptimizer-3.3.0

三、评测方法

本次数据负载评测的方法是向每个cms系统中录入50万条数据,并在此基础上完成三个项目的评测内容,具体的评测方法为:

1、数据获得方法

评测小组试图使用采集的方法获得50万的数据,但由于采集的效率较低,并且数据来源各有差异,不利于做出相对公平的测试结果,因此最后决定使用循环入库的方法直接创造50万的数据。为保证数据入库的有效性,我们使用程序自身的数据入库模块并编写了对应的接口程序,在其基础上建立循环,用最快速的方法直接写入数据库创造数据。

2、数据样本

为保证公平公正,本次测试使用完全一样的数据样本,该样本为一篇普通的新浪的文字稿件,共370个字符,不包含图片、视频、附件等任何其他多余信息,具体样本如下:

标题:  火箭22连胜登上西部榜首 麦蒂哑火街球王枪挑湖人

3、数据量及空间占用情况

由于每个cms的数据录入方法稍有不同,最终cms具体的数据量略有差异,测评小组认为,相比50万的总体数据量来说,这部分微小的数量差异不会对测试的最终结果产生太大的改变和造成决定性的影响。

每个cms具体录入的数据量以及数据空间占用情况见下表:

cms数据

4、评测内容

本次评测的具体内容为(每个大项10分为满分):

(1)大数据量情况下后台的管理效率,本项目重点考察在大量数据的基础上,cms对数据进行列表、增加、删除、修改、查询和移动等常见管理操作的效率和速度,得分占总成绩的50%。

(2)大数据量情况下的页面生成效率,本项目重点考察cms系统静态页面、列表页面等网页的生成效率和速度,考察管理后台提供了哪些方便网页生成的维护和管理工具,得分占总成绩的40%。

(3)大数据量情况下网页的可访问性,本项目重点考察动态数据页面的情况下,各个cms系统的前台页面表现的负载能力和访问效率,得分占总成绩的10%。

四、分类评测结果

1、后台数据管理能力测试

(1)dedecms

dedecms50万数据管理界面

DeDecms——50万数据管理后台

评分:4分

测评之前就听说dedecms的数据负载不是很理想,没想到测试结果比想象的还要糟糕。当后台管理到达5万数据的时候,后台操作开始变得异常困难,打开栏目列出所有文章要花费相当长的时间,当数据到达20万的时候,打开文章管理列表时提示php超时。

我们录入完50万数据,并且延长了php脚本超时的限制,小心翼翼的打开了栏目的文章管理,在硬盘灯一阵狂闪,时间过去了整整2分35秒的之后,终于艰难的打开了文章管理列表。不幸的是每次翻页都会遇到类似的情况,时间都在40秒以上。随后我们耐心尝试了文章的添加、编辑、删除、移动和查询等操作,其中文章的添加、编辑、删除、查询的速度中规中矩,而批量文章移动速度较慢。

结论:当数据大于5万的时候,使用dedecms的后台来管理数据是非常让人郁闷的一件事情,因为每次操作完毕后,你不得不花费至少1分钟的时间等待文章列表的出现,这对于没有耐心的人几乎是不可能完成的任务。

(2)php168

php16850万数据管理界面

Php168——50万数据管理后台

评分:8分

Php168的后台布局有点动易系统的影子,对于5万和10万的数据量,后台管理都显得轻松自如,因此我们没有做更多的测试,直接录入50万数据。

Php168在50万数据时管理同样显得比较轻松,50万数据文章管理列表第一次打开仅花费了13秒,每次翻页也都是2-3秒就能出现,速度比较理想。接着我们测试了文章的添加、编辑、删除、移动和查询等各种操作,速度都非常快,几乎没有任何延迟,操作起来也非常顺手。

结论:对于50万的数据来说,php168的后台应对起来非常轻松自如,各种操作均速度较快。

(3)phpcms

phpcms50万数据管理界面

phpcms——50万数据管理后台

评分:8分

Phpcms后台的管理界面相对比较复杂,但层次清晰,有点类似DZ后台的管理方法,让人感觉比较亲近。对付5万和10万数据,后台管理比较轻松,几乎未见延迟。

Phpcms单个栏目50万数据打开管理列表第一次花费时间为11秒,数据翻页的时间为1-2秒,和php168旗鼓相当,效率亦非常的高。继续测试了文章的添加、编辑、删除、移动和查询等各种操作,速度很快,管理操作都非常方便。

结论:phpcms优秀的数据管理机制能轻松应对较大数据量,后台各种数据管理工具和操作都很顺手。

(4)ecms帝国

ecms帝国50万数据管理界面

ecms帝国——50万数据管理后台

评分:6.5分

Ecms的后台管理布局比较传统,类似风讯等系统后台管理方式。在5-10万数据时,后台管理相对速度较为缓慢,但还能够使用。

单个栏目50万数据时,系统管理显得较为吃力,打开数据列表时间花费为1分20秒,每次翻页用时10-14秒,这个成绩仅略优于dedecms,不过当再次打开数据列表时,速度有明显的提升。继续测试了文章的添加、编辑、删除、移动和查询等各种操作,文章的添加、编辑、删除、查询的速度可以接受,而数据移动则异常的缓慢,这点和dedecms表现相同。

结论:帝国cms数据的承载能力并不强,在大数量的面前,表现只能算及格,建议其单个栏目的数据量最好不超过15万。

(5)HBCMS

hbcms50万数据管理界面

HBCMS——50万数据管理后台

评分:7.5分

HBCMS的后台管理有明显的仿欧美cms的倾向,但是布局较为凌乱,感觉并不舒服。后台管理在数据量为5-10万的情况下表现优异。

出人意料的是,HBCMS单栏目50万数据管理的打开速度达到了令人惊异的6秒!翻页也只需要2-3秒,这让测评小组对其刮目相看。测试文章的添加、编辑、删除、移动和查询等各种操作,速度都较为出色,但是由于后台布局不规整,而且后台在使用上经常出现一些莫名其妙的错误,让人摸不着头脑。

结论:HBCMS在处理大数据方面有着令人称赞的高效机制,但是后台管理夹杂着英文提示以及一些未知的错误,往往会让用户不知所措,数据添加、编辑、移动等操作使用起来提示较多,操作繁琐,最终影响了得分。

(6)supesite

supesite50万数据管理界面

supesite——50万数据管理后台

评分:9.5分

Supesite不愧为大公司的作品,后台管理界面交代非常清楚,各类功能一目了然。后台管理在数据量为5-10万的情况下表现优异。

Supesite后台数据管理的效率相当惊人,50万的栏目数据列表只花费了不到5秒的时间,数据翻页,文章的增、删、改、查和批量移动,这些功能操作起来几乎感觉不到大数据量带来的迟滞,后台所有功能都非常符合中国人的喜好,使用起来方便、舒服、顺手。

结论:supesite表现出来的优异性能在测评小组的预料之中,因此毫不犹豫的给了高分,测评小组一位成员甚至在2亿的数据基础之上测试过supesite的性能,结果依然让人满意,唯一遗憾的地方是supesite不是一套开源的系统,因此我们虽然十分赞叹其性能,但依然保留了一点自己的看法,希望其在未来能完全开源供站长们使用和研究。

(7)verycms

verycms50万数据管理界面

verycms——50万数据管理后台

评分:8.5分

phpwind公司进军cms领域的作品,verycms的功能较为单一,因此后台管理更加简单,清爽。

由于verycms的只提供文章管理功能,因此其管理的效率是令人满意的,50万数据列表打开的速度约为6秒,仅次于supesite,并且由于系统使用了ajax技术,让人感觉不到等待的时间。数据翻页的效率为2-3秒,让人满意,对于文章数据的增加、删除、修改、查询和批量移动,其表现也同样比较出色。

结论:verycms只有文章管理的单一功能,其表现堪称优秀,但由于其功能较为单一,实在是非常遗憾,我们期待有更多的功能加入这个优秀的开源系统中。

小结

国内免费php类cms后台数据管理效率评分表

2、页面发布效率测试

(1)dedecms

Dedecms针对页面生成提供了丰富的选项

Dedecms针对页面生成提供了丰富的选项

dedecms50万数据管理界面

页面生成进度提示

dedecms50万数据管理界面

50万数据时,生成100页的完成时间

dedecms50万数据管理界面

无法忍受的生成速度

评分:6.5分

Dedecms提供的页面生成管理功能是令人称道的,分别提供了主页、栏目页、文章页的生成功能,甚至包括网站地图、RSS、专题以及自定义文档列表等生成功能,除此外,还有许多cms系统中不常见的一键更新和计划任务的功能。在具体的文档生成方面,提供按照指定时间,指定文档编号,指定生成页数等多种页面生成的方法,总体感觉比较实用和方便。同时页面生成时有较为精确的进度提示,增强了用户使用体验。

和生成管理形成强烈反差的是数据生成的低效率,由于没有提供指定范围的列表页面生成功能,测试小组试图完成所有列表页面的生成,由于时间太长结果以失败告终。接下来对文章的生成,同样是一场噩梦,指定ID生成100篇文章花费时间为6分55秒,不指定文章ID生成300篇文章用时17分10秒,按照这个速度对50万的数据进行生成,花费的时间实在是非常可观。

结论:dedecms的后台数据生成和管理方面充分为用户着想,提供诸多的功能,但是过低的页面生成效率让dedecms只能应对数据量生成非常小的站。由于其管理功能丰富,虽然有点花拳绣腿的嫌疑,但测评小组依然给了一个勉强及格的分数。

(2)php168

Php168静态页面生成界面

Php168静态页面生成界面

评分:7.5分

Php168的静态页面生成管理较为简单,仅提供了首页、列表页和内容页等常见的生成功能,文章生成允许指定时间和ID,列表页不能指定生成数量,但系统提供了一个较为贴心的功能,即允许用户在中断生成操作之后,继续未完成的任务。

由于系统不能指定生成列表页的数量,我们针对列表页生成的测试也无法完成。Php168内容页的生成速度还是不错的,在50万文章数据的基础上,100页文章数据的生成时间为约1分12秒。文章生成过程中有完成百分比的提示,时刻提醒用户生成的进度。

结论:php168的静态页面生成和管理功能较为朴实,也相对简单,页面生成效率中规中矩,能够接受。

(3)phpcms

Phpcms页面发布管理界面

Phpcms页面发布管理界面

phpcms页面生成过程

页面生成过程

评分:9.5分

Phpcms提供的页面发布工具比较直观,管理分布比较清晰,功能也相对齐全,有首页、频道页、列表页和内容页等生成选项,内容页也支持按照ID编号的生成方法,所有生成选项在一个界面中就可以完成,操作非常简单,实用。

相比并不花哨的发布管理功能来说,在接下来的静态页面生成的测试中,phpcms终于展露出其恐怖的实力,我们指定ID静态生成100个页面,用时仅为20秒!看到这个令人乍舌的成绩,小组成员几乎不敢相信自己的眼睛,于是接下来我们继续完成了1000个页面的静态生成测试,结果证明phpcms的静态页面生成能力是怪兽级的,1000个页面全部生成时间仅为28秒!而我们同步观察磁盘目录页面的生成情况,phpcms在生成静态页面时并不是一个一个页面完成,而是批量的同时生成。由于phpcms也没有提供按照指定页数的列表页生成机制,因此我们没有完成全部的列表页生成。

结论:无论是管理工具、方法和页面生成的效率,phpcms无疑都是最优秀的,其他的cms难以望其项背。唯一遗憾的是没有提供按照指定页码生成列表页的功能。

(4)ecms

Ecms的页面发布管理页面

Ecms的页面发布管理页面

评分:5分

Ecsm提供了丰富的页面静态发布的管理工具,包括首页、列表页、内容页以及分频道的栏目及内容发布,按照时间和ID的内容生成页面等功能,ecms还提供了一个贴心的功能,即可以选择是否重新生成已经生成过的文件。

Ecms的静态网页内容发布效率非常的低,50万数据基础上,发布100个页面居然花费了近12分钟时间,而且数据生成期间,电脑几乎无法操作,硬盘不停的进行读写操作,这一结果让小组颇感失望。列表页面生成同样没有提供按照页码生成的功能。

结论:ecms的页面生成效率偏低,让人失望。

(5)HBcms

HBcms的文章静态生成管理

HBcms的文章静态生成管理

HBcms的栏目列表静态管理

HBcms的栏目列表静态管理

HBcms的页面生成过程

HBcms的页面生成过程

HBcms的100个页面生成时间

HBcms的100个页面生成时间

评分:8.5分

Hbcms的管理后台布局和样式测评小组一直都不喜欢,但是这不并影响hbcms在数据生成方面的优异表现,hbcms除了提供传统的首页、栏目页和文章页的静态生成功能外,还提供了按照关键字、按照ID生成页面等功能,并且允许按照页码范围生成栏目列表页面,功能看似简单却非常实用。

Hbcms的内容页面生成的效率非常的高,我们测试了100页面生成时间仅为7.93秒,这个成绩甚至超越了phpcms之前创下的记录,但随着页面的增多,其表现却逊色于phpcms,1000个页面生成的花费时间为79秒,这个速度已经让小组成员感到非常意外了。同时hbcms的数据生成过程提供非常友好的提示信息,让人觉得颇为专业。

结论:人不可貌相,海水不可斗量,hbcms虽然在管理界面和操作等方面没给我们留下好的印象,但是其优秀的数据管理效率确实让人刮目相看。

(6)supesite

Supesite的html静态生成管理界面

Supesite的html静态生成管理界面

评分:8分

Supesite的对于静态HTML的管理手段可谓另辟蹊径,它并不主张管理员通过手工的方法批量生成静态HTML页面,而是通过用户访问触发的方式发生成html页面,这种方法不但极大减少了服务器的负担,并且减少了管理的操作步骤,对整站性能的提高亦非常明显。但系统提供的HTML手动生成的效率确实不敢恭维,建议不要通过手动的方式更新页面数据。

结论:supesite给我们提供了另一种提高数据生成效率的方法,这种方法不但更为聪明,而且更加节省资源,因此虽然我们对其本身提供的页面生成工具颇有微词,但依旧赞同supesite的做法。

(7)verycms

Verycms静态生成的操作散布于各个管理界面中

Verycms静态生成的操作散布于各个管理界面中

评分:6分

Verycms的数据静态化管理分散于后台的各个管理界面中,也支持更新首页,频道首页,列表页和内容页等操作,但是相应的选项较少,也许是产品本身只是文章管理系统,即便是在动态的情况下,程序在访问效率上表现依旧不俗,但在静态页面生成效率这部分功能上实在不算优秀,50万数据的基础上,平均每分钟的页面生成速度仅为可怜的10页,系统值得称道的地方在于页面更新的时候,cpu占用率非常低。

结论:使用verycms最好不要统一进行静态页面的更新,因为这不是该系统的长处。

顺便提一下cmsware(思维cms),这个cms的静态发布也非常有特点,支持一键的整站更新,虽然更新的效率不高,但其特点是你可以监控系统更新过程中的每一个步骤。

Cmsware的一键更新和更新监控

Cmsware的一键更新和更新监控

小结

国内免费php类cms页面生成效率评分表

3、网页访问速度测试

由于静态页面访问没有什么可比性,页面访问速度只针对动态列表页的访问和翻页速度进行测试,由于各个cms的默认模板不相同,会造成访问速度的差异,因此这部分测试不作为主要评分依据。

Dedecms 50万数据栏目动态列表

Dedecms 50万数据栏目动态列表

Dedecms:与dedecms后台对大数据量管理非常吃力的情况不同,dedecms前台页面的动态列表效率还是可以忍受的,无论是数据的列表还是翻页,都效率较高。

评分:7分

Php168 50万数据栏目动态列表

Php168 50万数据栏目动态列表

Php168:Php168文章列表的效率多少有点让人失望,看似并不复杂的模板,但打开栏目的列表页却花费了相当长的时间,随后的翻页也显得异常的艰辛。可见php168在前台模板驱动能力上有明显的欠缺。

评分:6分

Phpcms 50万数据动态列表页面

Phpcms 50万数据动态列表页面

Phpcms:继承了后台优秀的数据管理效率,phpcms的前台表现也依旧十分优秀,动态列表的情况下,无论是列表还是数据翻页,速度都在可接受的范围内,响应也很迅速。

评分:8分

Ecms 50万数据栏目动态列表页

Ecms 50万数据栏目动态列表页

Ecms:帝国的情况总是和dedecms类似,其动态数据列表和翻页的效率都比较高,与其后台管理的速度极不相称。

评分:7分

HBcms:宏博cms要求前台的页面都必须生成静态页面,其动态页面的访问会被自动跳转到静态页面上,无法测试其在动态环境的前台表现。

评分:7分

Supesite 50万数据列表页面

Supesite 50万数据列表页面表页

Supesite:边浏览边生成的效率无疑是最高的,supesite的页面执行时间毫无疑问是最短的,完全感觉不出来50万数据带来的任何问题。

评分:9分

Verycms 50万数据动态列表页面

Verycms 50万数据动态列表页面

Verycms:全动态的列表和翻页效率都不错,但对于只有单一的文章管理功能来说, verycms亮点不多,距离一个优秀的cms系统还有差距。

评分:8分

五、综合评定

综合以上三项的得分情况(比例分配为50%,40%,10%),相比之下我们更看重数据的可管理能力,最终给出的国内免费php类cms的数据负载排名如下(排名仅供参考):

国内免费php类cms数据负载测试结果

编辑选择奖:supesite

特别推荐奖:phpcms

总结评语

经过几轮的测试,supesite和phpcms通过其优异的表现赢得了测评小组的青睐,通过三项得分数据看出他们在数据的管理能力上相比其他的cms更胜一筹。supesite取胜之道在于高效的后台管理和取巧的数据生成方法,优秀的品质使其成为最佳数据负载内容管理系统的不二人选,遗憾的是程序不开源;phpcms则各方面更加平均,尤其是数据生成能力非常优秀,加上程序完全开源,因此有很多的追随者,值得我们大力的推荐,但这套cms近来由于收购的原因,似乎停止了开发的脚步,不免让人担心其未来的发展;HBcms的表现完全出乎意料,在数据管理维护和生成方面有着非常明显的特点,效率也很高,但后台管理界面凌乱,希望能做进一步的改进;php168系统是一个中规中矩的内容管理系统,没有明显的弱项,也没有明显的强项,如果前台模板的效率能提高的话,会更有前途;verycms专注于文章管理领域,后台管理简洁,明快,效率也较高,但文章静态化的速度实在不该恭维,使用这个系统应尽可能减少批量生成文章的操作;帝国cms一直是受到个人站长追捧的一套内容管理系统,但是其在较大数据管理方面的表现差强人意,勉强及格;dedecms也是受到众多个人站长关注的网站内容系统,同时也因为其源代码开放而有相当多的研究者,但是其对较大数据的管理能力确实非常的差,数据量较大的网站不推荐使用。

助易网CMS评测小组    

http://www.cmshelp.com.cn    

http://forum.cmshelp.com.cn   

themeswiki.org——网站风格模板设计免费教程网站

Filed under: 实践与研究, 开源研究 | 1 Comment »
Posted on

www.themeswiki.org使用wiki模式提供free的网站风格模板教程,包括Content Management\Microsoft and .NET\Open Source\PHP/MySQL等相关资源。
原文地址:http://www.packtpub.com/article/learn-design-web-themes-templates-with-new-wiki

Learn to Design Web Themes and Templates with New Wiki

ThemesWiki.org is a new website designed to provide users with comprehensive, free guides for designing Web Themes and Templates. This site intends to ease the web design process by providing tutorials for a large number of systems at a common location.

It is often difficult to find a resource that is focused on providing quality, relevant and free information for designing themes and templates; specifically one that covers a wide range of applications. This is where ThemesWiki.org intends to step in. Launched initially with tutorials covering over 20 Content Management Systems, ThemesWiki.org is expected to grow into an exhaustive resource for the theming community, with users generating most of the content.

“ThemesWiki.org promises to fill a much needed gap in the theming and templating community” said Ric Shreves, author of the Packt book, Drupal 5 Themes. “It is a source of information that cuts across systems and provides designers and developers a place to share ideas and approaches outside of the walled gardens of individual project sites.” Shreves, a partner in Water & Stone, an open source web development company, went on to say that “Mambo, Joomla, Drupal, Plone, Modx — whatever — none of the clients really care and frankly it matters less and less as time goes by. What we should be concerned with is the end result, and that is where this site comes in.”

ThemesWiki.org is part of an ongoing process at Packt to develop unique methods of contributing to the Open Source community. Notable other initiatives include the website on free installation tutorials, www.InstallationWiki.org, and the annual Open Source CMS Award that has a total prize package of $20,000 to be divided among several winning projects.

ThemesWiki.org has been developed using the open source MediaWiki software package and has initially been populated using chapters from Packt books. ThemesWiki.org is free to use and open for everyone to contribute to. It is expected to grow and expand over the coming months with more tutorials added by users.

For more information, please visit www.ThemesWiki.org

欢迎和我们一起进行国内主要免费内容管理系统(PHP类CMS)评测

Filed under: PHP研究 | 1 Comment »
Posted on

一、评测说明

1、评测版本

为确保公平性,参与本次评测的CMS系统程序语言版本为PHP类型,并皆从各官方网站上下载的最新免费/开源版本程序及补丁,不包含商业及收费版本。

2、评分设计原则

本次评测由民间发起和组织,其目的是为广大站长选择适合自己的CMS系统提供有效依据。作为普通站长,更加关心的是程序对自己黏度,例如是否能够很快修改它的模板?如果出现问题是否能够很快得到回复和解决?我选择的CMS系统能承受多大的负载量?我是否能方便对其进行二次开发以满足我的个性需求?等等……,因此在评分设计原则上我们突出了产品质量以及用户体验,主要分为产品及服务、功能及特性和用户使用体验三大部分,并对每个部分具体的指标进行了详细的划分,在分数权重分布上按照3:3:4的比例进行划分,以此作为用户体验在CMS系统中的核心地位。

3、评分方法

本次评测方法由两个部分组成,第一个部分中我们将广泛邀请各级草根站长对各参与评测的CMS系统进行评分,并汇总统计;第二个部分中我们将成立专门的测评小组,有针对性的就CMS的负载、BUG等问题进行单一环境测评。每项内容的基本按照5分制的原则对系统进行打分(5-优秀;4-良好;3-及格;2-不尽如人意;1-较差;0-很差)。

4、结果公布方法

本次评测的结果和详细测评报告将于评测完毕后(预计四月上旬,具体时间请留意网站公告)直接公布到我们的网站(http://www.cmshelp.com.cn)上,任何一位对本次评测做出贡献的站长均将获得本次评测的第一手资料及享有转载的权利。

5、免责申明

本次评测的结果及原始数据将在提交后进行封存,我们保证维护所有参与评测站长的个人隐私。本次评测由于程序样本的偏差,以及部分站长个人喜好问题,因此最终排名数据只能作为参考,我们不对最终结果的权威性负责,如出现无理取闹、无事生非、侮辱他人、诽谤他人等恶意行为的个人或团队,我们有权通过法律解决。

 

二、填表说明

1、参加本次评测的CMS系统是由我们从目前互联网上使用频率最高的内容管理系统中选取出来,因为系统较多,也许各位站长只了解其中的某个或者某几个CMS系统,因此在评分时请您对不熟悉的系统请不要评分,仅填写您所熟悉的系统,请依据您的个人的真实使用感受进行评价,对于受评价较多受欢迎程度较高的系统,我们将会通过增加一定的权重来提高或降低其得分。

2、请注意本次参评的各个系统版本号,如果您没用过这个版本的系统,请在评分表最下面备注栏中填写你正在使用的系统的版本号

3、评测表开始部分的个人信息请根据自己的真实情况选择填写,我们会一一验证其真实性。

4、每个评分子项我们都在项目底下做了简短的说明和评分依据,供参考,请综合考虑我们所列举的因素进行评分

5、每个子项按照5分制进行评分,分别为5-优秀;4-良好;3-及格;2-不尽如人意;1-较差;0-很差。我们建议如果您对某个子项的标准并不清楚,请按照中立立场打分

6、第8-20项属于各系统功能对比,只需要按照有无评判,无需打分,有则填入○,无则填×。

7、带“*”号项请勿填写,这几项将由评测小组进行评测并给予分数。

8请注意评分的有效性,如果评分中出现针对某个系统给予低分或者高分的恶意现象,我们将视为放弃评测,其数据将不能作为最终评测的数据参考。

9、如果您希望第一时间获得本次评测的结果,请按照我们的要求公平、公正的填写本表,并在开始部分填写您的联系方式(特别是邮件),我们将会以最快的速度将评测结果发至您的邮箱,评测报告的所有内容您将享有转载的权利,如果征得您的同意,我们会将您的网址加入评测报告特殊贡献的列表当中

10、请收到本调查表格后尽快填写完毕,4月15日前将评测结果发至 pc_expendable@yahoo.com.cn 或者直接联系以下QQ:肥龙龙(635249)、宇宏(4598685)、佳‰佳(6267894)。

 感谢您的支持。

评分表格下载: 国内主要免费内容管理系统(PHP类CMS)评测表

助易网CMS评测小组    

http://www.cmshelp.com.cn    

http://forum.cmshelp.com.cn   

Tags : ,
Page 2 of 5«12345»