基于php的CMS中展示文章类实例分析
本文实例讲述了基于php的CMS中展示文章类。分享给大家供大家参考。具体分析如下:
<?php
/***********************************************
//实例:
include("config.inc.php");//数据库连接文件
$info=newsys_function;
$test=newshow_article;
$test->set_sql("SELECT`id`,`title`,`dateandtime`,`thetype`FROM`df_company_bringup`ORDERBY`dateandtime`DESC");
$test->set_filename("display");
$test->set_morename("morearticle");
$test->set_icon("☆");
$test->set_omitstr("...");
$test->show_company_bringup();
***********************************************/
/****ArticleListClass****/
classshow_article
{
/****声明****/
var$sql,$query,$arr,$article_list;
var$strlen,$articleline,$dateandtime;
var$len,$line,$icon,$omitstr,$line_height,$more_name;
var$year,$month,$day,$datetype;
var$showmore,$showdate,$showomit,$showclueon,$showicon;
/****构造函数****/
functionshow_article()
{
$this->set_strlen(40);//设置每行显示字数;
$this->set_articleline(10);//设置Article显示行数;
$this->set_showmore(false);//是否显示"更多Article";
$this->set_showdate(true);//是否显示Article发布日期;
$this->set_showomit(true);//字数超过指定字符后是否显示所设置的字符,如"...";
$this->set_showclueon(true);//是否显示Article提示(鼠标移动到Article标题上面显示的提示);
$this->set_open(true);//是否在新窗口打开;
$this->set_showicon(true);//是否显示Article修改前缀;
$this->set_lineheight(1.5);//段落行高值;
$this->set_datetype(1);//设置日期格式,1为2004-10-212为2004年10月21日;
}
/****设置每行显示字数****/
functionset_strlen($strlen)
{
$this->len=$strlen;
}
/****设置Article显示行数****/
functionset_articleline($articleline)
{
$this->line=$articleline;
}
/****设置查询语句****/
functionset_sql($sql)
{
$this->sql=$sql;
}
/****设置Article标题前缀修饰****/
functionset_icon($icon)
{
$this->icon=$icon;
}
/****是否显示Article标题前缀修饰****/
functionset_showicon($showicon)
{
$this->showicon=$showicon;
}
/****是否打开新窗口****/
functionset_open($open)
{
$this->open=$open;
}
/****设置Article标题长度超过限制后显示的字符****/
functionset_omitstr($omitstr)
{
$this->omitstr=$omitstr;
}
/****设置打开Article的文件名****/
functionset_filename($filename)
{
$this->filename=$filename;
}
/****更多Article页面名称****/
functionset_morename($more_name)
{
$this->more_name=$more_name;
}
/****Article分类名称****/
functionset_typename($type_name)
{
$this->type_name=$type_name;
}
/****是否显示更多Article****/
functionset_showmore($showmore)
{
$this->showmore=$showmore;
}
/****设置日期格式(1:2004-10-212:2004年10月21日)****/
functionset_datetype($datetype)
{
$this->datetype=$datetype;
}
/****格式化日期****/
functionformatdate($dateandtime,$num)
{
list($year,$month,$day)=split("[-]",substr($dateandtime,0,10));
if($num==1){
return$year."-".$month."-".$day;
}else{
return$year."年".$month."月".$day."日";
}
}
/****是否显示Article发布日期****/
functionset_showdate($showdate)
{
$this->showdate=$showdate;
}
/****段落行高值****/
functionset_lineheight($line_height)
{
$this->line_height=$line_height;
}
/****是否显示Article标题长度超过限制后显示的字符****/
functionset_showomit($showomit)
{
$this->showomit=$showomit;
}
/****是否显示鼠标移动到Article上后显示的提示****/
functionset_showclueon($showclueon)
{
$this->showclueon=$showclueon;
}
/****从结果集中取得一行作为枚举数组****/
functionexecute_row($query)
{
return$this->arr=mysql_fetch_row($query);
}
/****从结果集中取得一行作为关联数组,或数字数组,或二者兼有****/
functionexecute_array($query)
{
return$this->arr=mysql_fetch_array($query);
}
/****将释放所有与结果标识符result所关联的内存****/
functionfree_record($query)
{
@mysql_free_result($query);
}
/****调用指定ArticleList****/
functionshow_company_bringup()
{
$n=1;
$article_list="<divid='article_list".$n."'style='line-height:".$this->line_height."'>";
$this->query=mysql_query($this->sql);
while($this->execute_row($this->query))
{
if($this->showicon){$article_list.=$this->icon;}
$article_list.="<ahref='".$this->filename.".php?id=".$this->arr[0]."'";
if($this->showclueon){$article_list.="title='".$this->arr[1]."'";}
if($this->open){$article_list.="target='_blank'";}
$article_list.=">";
if(strlen($this->arr[1])>$this->len)
{
if($this->showomit){
$article_list.=substr($this->arr[1],0,$this->len).$this->omitstr;
}else{
$article_list.=substr($this->arr[1],0,$this->len);
}
}else{
$article_list.=$this->arr[1];
}
if($this->showdate){$article_list.="[".$this->formatdate($this->arr[2],$this->datetype)."]";}
$article_list.="</a><br>\n";
if($n==$this->line){break;}
$n++;
}
if($this->showmore){
$article_list.="</div><divid='article_list_more".$n."'align='right'><ahref='".$this->more_name.".php?type=".$this->type_name."'>>>>更多</a></div>";
}else{
$article_list.="</div>";
}
$this->free_record($this->query);
print$article_list;
}
}
?>
希望本文所述对大家的php程序设计有所帮助。