首页CMSZBLOG PHP调用随机文章、热门文章、热评文章脚本方法

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

时间2024-05-24 23:48:03发布访客分类CMS浏览548
导读:在定制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篇热评文章。

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

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: ZBLOG PHP调用随机文章、热门文章、热评文章脚本方法
本文地址: https://pptw.com/jishu/667367.html
解决WordPress上传图片出现"上传时发生了错误,请稍候再试"问题 学习DIV+CSS有什么用?

游客 回复需填写必要信息