另外也顺便实现了几个相关的xoops区块,一块儿贴上来把.
这个是热门博客文章的
function plog_hotarticle_show() { // 包含必要的文件和变量 //这个文件定义了plog的数据库信息,如_PLOG_DB_HOST等,你可以根据自己的情况直接定义在此处或者包含在别的文件中 include_once (XOOPS_ROOT_PATH."/modules/dslblocks/config/config.php"); //包含返回信息的数组 $block = array(); //建立数据库连接 if (XOOPS_DB_PCONNECT == 1) { $ connection = @mysql_pconnect(_PLOG_DB_HOST, _PLOG_DB_USER, _PLOG_DB_PASS); } else { $connection = @mysql_connect(_PLOG_DB_HOST, _PLOG_DB_USER, _PLOG_DB_PASS); } if( !$connection ) return $block; if( !mysql_select_db(_PLOG_DB_NAME) ) return $block; $timenow = getdate(); $nowstamp = $timenow["0"]; $startstamp = $nowstamp - intval(_PLOG_HOTARTICLE_DURATION)*60*60; $now = date("Y-m-d H:i:s",$nowstamp); $start = date("Y-m-d H:i:s",$startstamp); $query = "SELECT a.id,a.blog_id,a.user_id,t.topic,u.user, u.full_name FROM "._PLOG_DB_PREFIX."articles AS a,". _PLOG_DB_PREFIX."blogs AS b,"._PLOG_DB_PREFIX."articles_text t,". _PLOG_DB_PREFIX."users u WHERE a.date >= '".$start. "' AND a.date <= '".$now."' AND a.blog_id = b.id AND a.id = t.article_id AND a.user_id = u.id AND b.status = '1' AND a.status = '1' AND b.show_in_summary = '1' AND a.in_summary_page = '1'"; $query .= " ORDER BY a.num_reads DESC"; $query .= " LIMIT 0,"._PLOG_HOTARTICLE_COUNT; $result = mysql_query($query,$connection); if (!$result) return $block; while( $row = @mysql_fetch_array($result)){ if( strlen( $row["full_name"] ) > 1) $author = $row["full_name"]; else $author = $row["user"]; $author = iconv(_PLOG_CHARSET,_XOOPS_CHARSET,$author); $article = array( "id"=> $row["id"],"blog_id" =>$row["blog_id"], "author_id"=>$row["user_id"],"author_name"=>$author, "topic"=>iconv(_PLOG_CHARSET,_XOOPS_CHARSET,$row["topic"])); $block["articles"][] = $article; } return $block; }
这个是热门博客的
function plog_hotblog_show() { // 包含必要的文件和变量 include_once (XOOPS_ROOT_PATH."/modules/dslblocks/config/config.php"); //包含返回信息的数组 $block = array(); //建立数据库连接 if (XOOPS_DB_PCONNECT == 1) { $ connection = @mysql_pconnect(_PLOG_DB_HOST, _PLOG_DB_USER, _PLOG_DB_PASS); } else { $connection = @mysql_connect(_PLOG_DB_HOST, _PLOG_DB_USER, _PLOG_DB_PASS); } if( !$connection ) return $block; if( !mysql_select_db (_PLOG_DB_NAME) ) return $block; //产生时间戳 $timenow = getdate(); $nowstamp = $timenow["0"]; $startstamp = $nowstamp - intval(_PLOG_HOTBLOG_DURATION) *60*60; $now = date("Y-m-d H:i:s",$nowstamp); $start = date("Y-m-d H:i: s",$startstamp); //构造查询语句 $query = "SELECT COUNT(a.id) as t, SUM ((num_reads / (TO_DAYS(NOW()) - TO_DAYS(a.date) + 1)) ) as rank, b.id,b.blog FROM "._PLOG_DB_PREFIX."articles AS a INNER JOIN "._PLOG_DB_PREFIX."blogs AS b ON b.id = a.blog_id AND b.status = '1' WHERE a.date >= '".$start."' AND a.date <= '".$now."' AND in_summary_page = '1' AND b.show_in_summary = '1' GROUP BY a.id ORDER BY rank DESC"; $query .= " LIMIT 0,"._PLOG_HOTBLOG_COUNT; $result = mysql_query($query,$connection); if (!$result) return $block; while( $row = @mysql_fetch_array($result)){ $blog = array( "id"=> $row["id"], "blog" =>iconv(_PLOG_CHARSET,_XOOPS_CHARSET,$row["blog"])); $block["blogs"][$row["id"]] = $blog; } return $block; }
这个是最新文章的
function plog_newarticle_show() { //包含必要的文件和变量
include_once(XOOPS_ROOT_PATH."/modules/dslblocks/config/config.php");
//包含返回信息的数组
$block = array();
//建立数据库连接
if (XOOPS_DB_PCONNECT == 1) {
$connection = @mysql_pconnect(_PLOG_DB_HOST, _PLOG_DB_USER, _PLOG_DB_PASS);
}
else {
$connection = @mysql_connect(_PLOG_DB_HOST, _PLOG_DB_USER, _PLOG_DB_PASS);
}
if( !$connection ) return $block;
if( !mysql_select_db(_PLOG_DB_NAME) ) return $block;
$query = "SELECT a.id,a.blog_id,a.user_id,t.topic,u.user,
u.full_name FROM "._PLOG_DB_PREFIX."articles a,".
_PLOG_DB_PREFIX."blogs b,"._PLOG_DB_PREFIX."articles_text t,".
_PLOG_DB_PREFIX."users u WHERE a.blog_id = b.id AND a.id = t.article_id
AND a.user_id = u.id AND b.status = '1' AND a.status = '1'
AND b.show_in_summary = '1' AND a.in_summary_page = '1'"; $query .= " ORDER BY a.date DESC";
$query .= " LIMIT 0,"._PLOG_NEWARTICLE_COUNT;
$result = mysql_query($query,$connection);
if (!$result)
return $block;
while( $row = @mysql_fetch_array($result)){
if( strlen( $row["full_name"] ) > 1)
$author = $row["full_name"];
else $author = $row["user"];
$author = iconv(_PLOG_CHARSET,_XOOPS_CHARSET,$author);
$article = array( "id"=> $row["id"],"blog_id" =>$row["blog_id"],
"author_id"=>$row["user_id"],"author_name"=>$author,
"topic"=>iconv(_PLOG_CHARSET,_XOOPS_CHARSET,$row["topic"]));
$block["articles"][] = $article;
}
return $block;
这个新博客的
function plog_newblog_show() { //包含必要的文件和变量 include_once(XOOPS_ROOT_PATH."/modules/dslblocks/config/config.php"); //包含返回信息的数组 $block = array(); //建立数据库连接 if (XOOPS_DB_PCONNECT == 1) { $connection = @mysql_pconnect(_PLOG_DB_HOST, _PLOG_DB_USER, _PLOG_DB_PASS); } else { $connection = @mysql_connect(_PLOG_DB_HOST, _PLOG_DB_USER, _PLOG_DB_PASS); } if( !$connection ) return $block; if( !mysql_select_db(_PLOG_DB_NAME) ) return $block; $query = "SELECT b.id,b.blog,u.user,u.full_name FROM "._PLOG_DB_PREFIX."blogs b,". _PLOG_DB_PREFIX."users u WHERE b.owner_id = u.id AND b.status = '1' AND b.show_in_summary = '1'"; $query .= " ORDER BY b.create_date DESC"; $query .= " LIMIT 0,"._PLOG_NEWBLOG_COUNT; $result = mysql_query($query,$connection); if (!$result) return $block; while( $row = @mysql_fetch_array($result)){ if( strlen( $row["full_name"] ) >= 1) $author = $row["full_name"]; else $author = $row["user"]; $author = iconv(_PLOG_CHARSET,_XOOPS_CHARSET,$author); $blog = array( "id"=> $row["id"], "blog" =>iconv(_PLOG_CHARSET,_XOOPS_CHARSET,$row["blog"]), "author"=>$author ); $block["blogs"][] = $blog; } return $block; }
这是需要定义的常量
// PLOG相关设置 define("_PLOG_DB_HOST","127.0.0.1"); define("_PLOG_DB_NAME","plog"); define("_PLOG_DB_PREFIX","lt_"); define("_PLOG_DB_USER","root"); define("_PLOG_DB_PASS","123456"); define("_PLOG_CHARSET","utf-8"); define("_XOOPS_CHARSET","gb2312"); // 热门更新周期设置(小时) define("_PLOG_HOTARTICLE_DURATION",240); define("_PLOG_HOTBLOG_DURATION",120); define("_PLOG_NEWARTICLE_COUNT",12); define("_PLOG_HOTARTICLE_COUNT",10); define("_PLOG_NEWBLOG_COUNT",8); define("_PLOG_HOTBLOG_COUNT",6);