首页CMSZBLOG PHP博客热门文章/随机文章和热评文章的调用代码

ZBLOG PHP博客热门文章/随机文章和热评文章的调用代码

时间2024-05-22 09:42:03发布访客分类CMS浏览314
导读:Zblog中,热门文章、随机文章、热评文章是最常见并且最经常被调用的类型,不过zblog官方没有提供相关的实现标签代码,我们可以通过在include.php文件中添加以下代码的形式来实现针对热门文章、随机文章和热评文章的代码调用。实现逻辑和...

Zblog中,热门文章、随机文章、热评文章是最常见并且最经常被调用的类型,不过zblog官方没有提供相关的实现标签代码,我们可以通过在include.php文件中添加以下代码的形式来实现针对热门文章、随机文章和热评文章的代码调用。

实现逻辑和步骤如下:

首先判断是否存在include.php文件,如果主题存在include.php文件,直接在文件中添加以下代码;如果不存在include.php文件,则先创建该文件,并在主题信息文件theme.xml中的标签引用该文件,然后添加以下代码:

?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;
}
    ?>

函数调用代码:方法和官方给出的GetList一样,区别是比GetList多了一个参数条件。实现热门文章调用的函数代码如下:

{
    $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>

实现随机文章调用的函数代码如下:

{
    $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>

实现热评文章调用的函数代码如下:

{
    $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>
    

运行后即可完美实现三种文章的调用了。

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


若转载请注明出处: ZBLOG PHP博客热门文章/随机文章和热评文章的调用代码
本文地址: https://pptw.com/jishu/665504.html
php扩展怎么调用内置函数 简单脚本彻底禁止WordPress Trackback垃圾回复通知

游客 回复需填写必要信息