ZBLOG调用随机文章、热门文章、热评文章的php代码
发布:smiling 来源: PHP粉丝网 添加日期:2015-04-04 11:13:18 浏览: 评论:0
Z-Blog是由RainbowSoft Studio开发的一款小巧而强大的基于Asp/php平台的Blog程序了,下文介绍的是php版本的ZBLOG调用随机文章、热门文章、热评文章代码.
使用方法:
第一、在我们的主题目录中需要创建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(!emptyempty($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()'=>' ');
 - } //开源软件:phpfensi.com
 - }
 - $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;
 - }
 
然后就是在我们需要的界面模板中调用.
热门文章,代码如下:
- {$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篇热门文章,热评文章,代码如下:
- {$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>
 
直接用zblogphp的原生代码,代码如下:
- <img src="{php}$pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png]))[\'|\"].*?[\/]?>/";
 - $content = $article->Content;
 - preg_match_all($pattern,$content,$matchContent);
 - echo $matchContent[1][0];
 - {/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');
在最后后面添加如下代码:
- function BuildModule_sjarticles(){
 - global $zbp;
 - $articles=$zbp->GetArticleList(
 - array('*'),
 - array(array('=','log_Type',0),array('=','log_Status',0)),
 - array('rand()'=>' '),
 - array(10),
 - null
 - );
 - $s='';
 - foreach ($articles as $article) {
 - $s .='' . $article->Title . '';
 - }
 - 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}
Tags: ZBLOG随机文章 ZBLOG热门文章
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
 - PHP新手上路(一)(7)
 - 惹恼程序员的十件事(5)
 - PHP邮件发送例子,已测试成功(5)
 - 致初学者:PHP比ASP优秀的七个理由(4)
 - PHP会被淘汰吗?(4)
 - PHP新手上路(四)(4)
 - 如何去学习PHP?(2)
 - 简单入门级php分页代码(2)
 - php中邮箱email 电话等格式的验证(2)
 
