首页 > 网站 > 建站经验 > 正文

ZBLOG调用随机文章、热门文章、热评文章的php代码

2024-08-30 19:06:41
字体:
来源:转载
供稿:网友

Z-Blog是由RainbowSoft Studio开发的一款小巧而强大的基于Asp/php平台的Blog程序了,下文介绍的是php版本的ZBLOG调用随机文章、热门文章、热评文章代码.

使用方法:

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

  1. /** 
  2. * 获取文章列表 
  3. * @param int $count 数量 
  4. * @param null $cate 分类ID 
  5. * @param null $auth 用户ID 
  6. * @param null $date 日期 
  7. * @param null $tags 标签 
  8. * @param null $search 搜索关键词 
  9. * @param null $order 排序 
  10. * @param null $option 
  11. * @return array|mixed 
  12. */ 
  13. function TcgetList($count = 10, $cate = null, $auth = null, $date = null, $tags = null, $search = null, $option = null,$order=null) { 
  14. global $zbp
  15. if (!is_array($option)) { 
  16. $option = array(); 
  17. if (!isset($option['only_ontop'])) 
  18. $option['only_ontop'] = false; 
  19. if (!isset($option['only_not_ontop'])) 
  20. $option['only_not_ontop'] = false; 
  21. if (!isset($option['has_subcate'])) 
  22. $option['has_subcate'] = false; 
  23. if (!isset($option['is_related'])) 
  24. $option['is_related'] = false; 
  25. if ($option['is_related']) { 
  26. $at = $zbp->GetPostByID($option['is_related']); 
  27. $tags = $at->Tags; 
  28. if (!$tags
  29. return array(); 
  30. $count = $count + 1; 
  31. if ($option['only_ontop'] == true) { 
  32. $w[] = array('=''log_IsTop', 0); 
  33. elseif ($option['only_not_ontop'] == true) { 
  34. $w[] = array('=''log_IsTop', 1); 
  35. $w = array(); 
  36. $w[] = array('=''log_Status', 0); 
  37. $articles = array(); 
  38. if (!is_null($cate)) { 
  39. $category = new Category; 
  40. $category = $zbp->GetCategoryByID($cate); 
  41. if ($category->ID > 0) { 
  42. if (!$option['has_subcate']) { 
  43. $w[] = array('=''log_CateID'$category->ID); 
  44. else { 
  45. $arysubcate = array(); 
  46. $arysubcate[] = array('log_CateID'$category->ID); 
  47. foreach ($zbp->categorys[$category->ID]->SubCategorys as $subcate) { 
  48. $arysubcate[] = array('log_CateID'$subcate->ID); 
  49. $w[] = array('array'$arysubcate); 
  50. if (!is_null($auth)) { 
  51. $author = new Member; 
  52. $author = $zbp->GetMemberByID($auth); 
  53. if ($author->ID > 0) { 
  54. $w[] = array('=''log_AuthorID'$author->ID); 
  55. if (!is_null($date)) { 
  56. $datetime = strtotime($date); 
  57. if ($datetime) { 
  58. $datetitle = str_replace(array('%y%''%m%'), array(date('Y'$datetime), date('n'$datetime)), $zbp->lang['msg']['year_month']); 
  59. $w[] = array('BETWEEN''log_PostTime'$datetimestrtotime('+1 month'$datetime)); 
  60. if (!is_null($tags)) { 
  61. $tag = new Tag; 
  62. if (is_array($tags)) { 
  63. $ta = array(); 
  64. foreach ($tags as $t) { 
  65. $ta[] = array('log_Tag''%{' . $t->ID . '}%'); 
  66. $w[] = array('array_like'$ta); 
  67. unset($ta); 
  68. else { 
  69. if (is_int($tags)) { 
  70. $tag = $zbp->GetTagByID($tags); 
  71. else { 
  72. $tag = $zbp->GetTagByAliasOrName($tags); 
  73. if ($tag->ID > 0) { 
  74. $w[] = array('LIKE''log_Tag''%{' . $tag->ID . '}%'); 
  75. if (is_string($search)) { 
  76. $search=trim($search); 
  77. if ($search!=='') { 
  78. $w[] = array('search''log_Content''log_Intro''log_Title'$search); 
  79. if(!emptyempty($order)){ 
  80. if($order=='new'){ 
  81. $order = array('log_PostTime'=>'DESC'); 
  82. if($order=='hot'){ 
  83. $order = array('log_ViewNums'=>'DESC'); 
  84. if($order=='comm'){ 
  85. $order = array('log_CommNums'=>'DESC'); 
  86. if($order=='rand'){ 
  87. $order = array('rand()'=>' '); 
  88. //开源软件:Vevb.com 
  89. $articles = $zbp->GetArticleList('*'$w$order$count, null, false); 
  90. if ($option['is_related']) { 
  91. foreach ($articles as $k => $a) { 
  92. if ($a->ID == $option['is_related']) 
  93. unset($articles[$k]); 
  94. if (count($articles) == $count){ 
  95. array_pop($articles); 
  96. return $articles

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

热门文章,代码如下:

  1. {$array=TcgetList(10,null,null,null,null,null,null,'hot');} 
  2. <ul id="related"
  3. {foreach $array as $related
  4. <li><span class="time">{$related.Time('m-d')}</span><span class="title"><a href="{$related.Url}" title="{$related.Title}">{$related.Title}</a></span></li> 
  5. {/foreach
  6. </ul> 

调用10篇热门文章,热评文章,代码如下:

  1. {$array=TcgetList(10,null,null,null,null,null,null,'comm';} 
  2. <ul id="related"
  3. {foreach $array as $related
  4. <li><span class="time">{$related.Time('m-d')}</span><span class="title"><a href="{$related.Url}" title="{$related.Title}">{$related.Title}</a></span></li> 
  5. {/foreach
  6. </ul> 

直接用zblogphp的原生代码,代码如下:

  1. <img src="{php}$pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png]))[\'|\"].*?[\/]?>/"; 
  2. $content = $article->Content; 
  3. preg_match_all($pattern,$content,$matchContent); 
  4. echo $matchContent[1][0]; 
  5. {/php}" /> 

这些代码前台编译出来的html代码就是:<img src="图片地址">,可以加在任意想调用的地方.

PHP版随机文章的调用方法:

不会写插件,直接爆方法.

1、打开zb_system\function\c_system_event.php

在743行,$zbp->AddBuildModule('previous');后面添加$zbp->AddBuildModule('sjarticles');

在781行,$zbp->AddBuildModule('previous');后面添加$zbp->AddBuildModule('sjarticles');

在最后后面添加如下代码:

  1. function BuildModule_sjarticles(){ 
  2.         global $zbp
  3.  
  4.         $articles=$zbp->GetArticleList( 
  5.                 array('*'), 
  6.                 array(array('=','log_Type',0),array('=','log_Status',0)), 
  7.                 array('rand()'=>' '), 
  8.                 array(10), 
  9.                 null 
  10.         ); 
  11.         $s=''
  12.         foreach ($articles as $article) { 
  13.                 $s .='' . $article->Title . ''
  14.         } 
  15.         return $s

2、打开zb_system\function\lib\zblogphp.php

在218行,$this->RegBuildModule('previous','BuildModule_previous');后面添加$this->RegBuildModule('hotarticles','BuildModule_sjarticles');

3、打开数据库,在zbp_module表,添加新数据,15,热门文章,sjarticles,,0,divsjarticles,ul,0,system,0

调用方法:在相应地方调用{$modules['sjarticles'].Content}

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表