欢迎光临
我们一直在努力

ZBLOG PHP调用随机文章、热门文章、热评文章脚本方法

在定制ZBLOG PHP模板的过程中,可能有需要用到调用随机文章和热门文章等解决方法,这里蜗牛有看到@唐朝同学博客中有这样的脚本整理。我这边也转载过来,下次有使用的时候再测试实用性,如果有问题在进行更新。

使用方法:

第一、在我们的主题目录中需要创建include.php文件,如果有就直接添加脚本

/**
* 获取文章列表
* @param int $count 数量
* @param null $cate 分类ID
* @param null $auth 用户ID
* @param null $date 日期
* @param null $tags 标签
* @param null $search 搜索关键词
* @param null $order 排序
* @param null $option
* @return array|mixed
*/
function TcgetList($count = 10, $cate = null, $auth = null, $date = null, $tags = null, $search = null, $option = null,$order=null) {
global $zbp;

if (!is_array($option)) {
$option = array();
}

if (!isset($option[\\’only_ontop\\’]))
$option[\\’only_ontop\\’] = false;
if (!isset($option[\\’only_not_ontop\\’]))
$option[\\’only_not_ontop\\’] = false;
if (!isset($option[\\’has_subcate\\’]))
$option[\\’has_subcate\\’] = false;
if (!isset($option[\\’is_related\\’]))
$option[\\’is_related\\’] = false;

if ($option[\\’is_related\\’]) {
$at = $zbp->GetPostByID($option[\\’is_related\\’]);
$tags = $at->Tags;
if (!$tags)
return array();
$count = $count + 1;
}

if ($option[\\’only_ontop\\’] == true) {
$w[] = array(\\’=\\’, \\’log_IsTop\\’, 0);
} elseif ($option[\\’only_not_ontop\\’] == true) {
$w[] = array(\\’=\\’, \\’log_IsTop\\’, 1);
}

$w = array();
$w[] = array(\\’=\\’, \\’log_Status\\’, 0);

$articles = array();

if (!is_null($cate)) {
$category = new Category;
$category = $zbp->GetCategoryByID($cate);

if ($category->ID > 0) {

if (!$option[\\’has_subcate\\’]) {
$w[] = array(\\’=\\’, \\’log_CateID\\’, $category->ID);
} else {
$arysubcate = array();
$arysubcate[] = array(\\’log_CateID\\’, $category->ID);
foreach ($zbp->categorys[$category->ID]->SubCategorys as $subcate) {
$arysubcate[] = array(\\’log_CateID\\’, $subcate->ID);
}
$w[] = array(\\’array\\’, $arysubcate);

}

}
}

if (!is_null($auth)) {
$author = new Member;
$author = $zbp->GetMemberByID($auth);

if ($author->ID > 0) {
$w[] = array(\\’=\\’, \\’log_AuthorID\\’, $author->ID);
}
}

if (!is_null($date)) {
$datetime = strtotime($date);
if ($datetime) {
$datetitle = str_replace(array(\\’%y%\\’, \\’%m%\\’), array(date(\\’Y\\’, $datetime), date(\\’n\\’, $datetime)), $zbp->lang[\\’msg\\’][\\’year_month\\’]);
$w[] = array(\\’BETWEEN\\’, \\’log_PostTime\\’, $datetime, strtotime(\\’+1 month\\’, $datetime));
}
}

if (!is_null($tags)) {
$tag = new Tag;
if (is_array($tags)) {
$ta = array();
foreach ($tags as $t) {
$ta[] = array(\\’log_Tag\\’, \\’%{\\’ . $t->ID . \\’}%\\’);
}
$w[] = array(\\’array_like\\’, $ta);
unset($ta);
} else {
if (is_int($tags)) {
$tag = $zbp->GetTagByID($tags);
} else {
$tag = $zbp->GetTagByAliasOrName($tags);
}
if ($tag->ID > 0) {
$w[] = array(\\’LIKE\\’, \\’log_Tag\\’, \\’%{\\’ . $tag->ID . \\’}%\\’);
}
}
}

if (is_string($search)) {
$search=trim($search);
if ($search!==\\’\\’) {
$w[] = array(\\’search\\’, \\’log_Content\\’, \\’log_Intro\\’, \\’log_Title\\’, $search);
}
}

if(!empty($order)){
if($order==\\’new\\’){
$order = array(\\’log_PostTime\\’=>\\’DESC\\’);
}
if($order==\\’hot\\’){
$order = array(\\’log_ViewNums\\’=>\\’DESC\\’);
}
if($order==\\’comm\\’){
$order = array(\\’log_CommNums\\’=>\\’DESC\\’);
}
if($order==\\’rand\\’){
$order = array(\\’rand()\\’=>\\’ \\’);
}
}

$articles = $zbp->GetArticleList(\\’*\\’, $w, $order, $count, null, false);

if ($option[\\’is_related\\’]) {
foreach ($articles as $k => $a) {
if ($a->ID == $option[\\’is_related\\’])
unset($articles[$k]);
}
if (count($articles) == $count){
array_pop($articles);
}
}

return $articles;

}

然后就是在我们需要的界面模板中调用。

A – 随机文章

{$array=TcgetList(10,null,null,null,null,null,null,\\’rand\\’);}
<ul id=\\”related\\”>
{foreach $array as $related}
<li><span class=\\”time\\”>{$related.Time(\\’m-d\\’)}</span><span class=\\”title\\”><a href=\\”{$related.Url}\\” title=\\”{$related.Title}\\”>{$related.Title}</a></span></li>
{/foreach}
</ul>

随机10篇文章

B – 热门文章

{$array=TcgetList(10,null,null,null,null,null,null,\\’hot\\’);}
<ul id=\\”related\\”>
{foreach $array as $related}
<li><span class=\\”time\\”>{$related.Time(\\’m-d\\’)}</span><span class=\\”title\\”><a href=\\”{$related.Url}\\” title=\\”{$related.Title}\\”>{$related.Title}</a></span></li>
{/foreach}
</ul>

调用10篇热门文章

C – 热评文章

{$array=TcgetList(10,null,null,null,null,null,null,\\’comm\\’;}
<ul id=\\”related\\”>
{foreach $array as $related}
<li><span class=\\”time\\”>{$related.Time(\\’m-d\\’)}</span><span class=\\”title\\”><a href=\\”{$related.Url}\\” title=\\”{$related.Title}\\”>{$related.Title}</a></span></li>
{/foreach}
</ul>

调用10篇热评文章。

具体的根据我们实际使用调用就可以。

赞(0)
未经允许不得转载:沃园 » ZBLOG PHP调用随机文章、热门文章、热评文章脚本方法

评论 抢沙发

评论前必须登录!

立即登录   注册