phpcmsV9 首页调用全站最新文章数据的办法
在很多使用phpcmsV9框架的项目中,都会经常遇到首页调用全站最新文章的情况。这里讲解一篇。仅供参考。
首页调用 · 全站最新文章
查找文件:www\phpcms\modules\content\classes\content_tag.class.php
,找到如下代码:
1. 修改之前代码;
/**
* 列表页标签
* @param $data
*/
public function lists($data) {
$catid = intval($data['catid']);
if(!$this->set_modelid($catid)) return false;
if(isset($data['where'])) {
$sql = $data['where'];
} else {
$thumb = intval($data['thumb']) ? " AND thumb != ''" : '';
if($this->category[$catid]['child']) {
$catids_str = $this->category[$catid]['arrchildid'];
$pos = strpos($catids_str,',')+1;
$catids_str = substr($catids_str, $pos);
$sql = "status=99 AND catid IN ($catids_str)".$thumb;
} else {
$sql = "status=99 AND catid='$catid'".$thumb;
}
}
$order = $data['order'];
$return = $this->db->select($sql, '*', $data['limit'], $order, '', 'id');
//调用副表的数据
if (isset($data['moreinfo']) && intval($data['moreinfo']) == 1) {
$ids = array();
foreach ($return as $v) {
if (isset($v['id']) && !empty($v['id'])) {
$ids[] = $v['id'];
} else {
continue;
}
}
if (!empty($ids)) {
$this->db->table_name = $this->db->table_name.'_data';
$ids = implode('\',\'', $ids);
$r = $this->db->select("`id` IN ('$ids')", '*', '', '', '', 'id');
if (!empty($r)) {
foreach ($r as $k=>$v) {
if (isset($return[$k])) $return[$k] = array_merge($v, $return[$k]);
}
}
}
}
return $return;
}
2. 修改之后代码:
/**
* 列表页标签
* @param $data
*/
public function lists($data) {
$catid = intval($data['catid']);
if(isset($data['where'])) {
$sql = $data['where'];
} else {
$thumb = intval($data['thumb']) ? " AND thumb != ''" : '';
if(!empty($catid)) {
if(!$this->set_modelid($catid)) return false;
if($this->category[$catid]['child']) {
$catids_str = $this->category[$catid]['arrchildid'];
$pos = strpos($catids_str,',')+1;
$catids_str = substr($catids_str, $pos);
$sql = "status=99 AND catid IN ($catids_str)".$thumb;
} else {
$sql = "status=99 AND catid='$catid'".$thumb;
}
}
else {
$sql = "status=99".$thumb;
}
}
$order = $data['order'];
$return = $this->db->select($sql, '*', $data['limit'], $order, '', 'id');
//调用副表的数据
if (isset($data['moreinfo']) && intval($data['moreinfo']) == 1) {
$ids = array();
foreach ($return as $v) {
if (isset($v['id']) && !empty($v['id'])) {
$ids[] = $v['id'];
} else {
continue;
}
}
if (!empty($ids)) {
$this->db->table_name = $this->db->table_name.'_data';
$ids = implode('\',\'', $ids);
$r = $this->db->select("`id` IN ('$ids')", '*', '', '', '', 'id');
if (!empty($r)) {
foreach ($r as $k=>$v) {
if (isset($return[$k])) $return[$k] = array_merge($v, $return[$k]);
}
}
}
}
return $return;
}
3. 首页调用 · 代码:
{pc:content action="lists" num="10" order="id DESC" cache="3600"}
{/pc}
项目具体实例代码,示下:
{pc:content action="lists" num="15" order="id DESC" cache="3600" return="info"}
{php $categorys = getcache('category_content_'.$siteid,'commons');}
{loop $info $v}
{php $category = $categorys[$v[catid]];}
{php $modelid = $category['modelid'];}
{php $db = pc_base::load_model('hits_model'); $_r = $db->get_one(array('hitsid'=>'c-'.$modelid.'-'.$v[id])); $views = $_r[views]; }
{php $comment_tag = pc_base::load_app_class("comment_tag", "comment"); $comment_total = $comment_tag->count(array('commentid'=>'content_'.$v[catid].'-'.$v[id].'-'.$modelid));}
{if $n==1||$n==5||$n==9||$n==13}
<div class="blogs" data-scroll-reveal="enter bottom over 1s" >
<h3 class="blogtitle"><a href="{$v[url]}" target="_blank">{$v[title]}</a></h3>
<span class="blogpic"><a href="{$v[url]}" title="{$v[title]}">
{if $v[thumb]}
<img class="autohg" src="{$v[thumb]}" alt="{$v[title]}">
{else}
<img src="{IMG_PATH}lau_images/default.png" alt="缺省图">
{/if}
</a></span>
<p class="blogtext">{$v[description]} </p>
<div class="bloginfo">
<ul>
<li class="author"><a href="{$v[url]}">Danoge</a></li>
<li class="lmname"><a href="{$CATEGORYS[$v[catid]][url]}">{$CATEGORYS[$v[catid]][catname]}</a></li>
<li class="timer">{date('Y-m-d H:i:s',$v[inputtime])}</li>
<li class="view"><span>{$views}</span>已阅读</li>
<li class="like">评论:{if $comment_total}{$comment_total}{else}0{/if}</li>
</ul>
</div>
</div>
{/if}
{if $n==2||$n==6||$n==10||$n==14}
<div class="blogs" data-scroll-reveal="enter bottom over 1s" >
<h3 class="blogtitle"><a href="{$v[url]}" target="_blank">{$v[title]}</a></h3>
<p class="blogtext">{$v[description]} </p>
<div class="bloginfo">
<ul>
<li class="author"><a href="{$v[url]}">Danoge</a></li>
<li class="lmname"><a href="{$CATEGORYS[$v[catid]][url]}">{$CATEGORYS[$v[catid]][catname]}</a></li>
<li class="timer">{date('Y-m-d H:i:s',$v[inputtime])}</li>
<li class="view"><span>{$views}</span>已阅读</li>
<li class="like">9999</li>
</ul>
</div>
</div>
{/if}
{if $n==3||$n==7||$n==11||$n==15}
<div class="blogs" data-scroll-reveal="enter bottom over 1s" >
<h3 class="blogtitle"><a href="{$v[url]}" target="_blank">{$v[title]}</a></h3>
<span class="bplist"><a href="{$v[url]}" title="{$v[title]}">
{if $v[thumb]}
<li><img class="autohg" src="{$v[thumb]}" alt="{$v[title]}"></li>
<li><img class="autohg" src="{$v[thumb]}" alt="{$v[title]}"></li>
<li><img class="autohg" src="{$v[thumb]}" alt="{$v[title]}"></li>
{else}
<li><img src="{IMG_PATH}lau_images/default.png" alt="缺省图"></li>
<li><img src="{IMG_PATH}lau_images/default.png" alt="缺省图"></li>
<li><img src="{IMG_PATH}lau_images/default.png" alt="缺省图"></li>
{/if}
</a></span>
<p class="blogtext">{$v[description]} </p>
<div class="bloginfo">
<ul>
<li class="author"><a href="{$v[url]}">Danoge</a></li>
<li class="lmname"><a href="{$CATEGORYS[$v[catid]][url]}">{$CATEGORYS[$v[catid]][catname]}</a></li>
<li class="timer">{date('Y-m-d H:i:s',$v[inputtime])}</li>
<li class="view"><span>{$views}</span>已阅读</li>
<li class="like">9999</li>
</ul>
</div>
</div>
{/if}
{if $n==4||$n==8||$n==12||$n==16}
<div class="blogs" data-scroll-reveal="enter bottom over 1s" >
<h3 class="blogtitle"><a href="{$v[url]}" target="_blank">{$v[title]}</a></h3>
<span class="bigpic"><a href="{$v[url]}" title="{$v[title]}">
{if $v[thumb]}
<img class="autohg" src="{$v[thumb]}" alt="{$v[title]}">
{else}
<img src="{IMG_PATH}lau_images/default.png" alt="缺省图">
{/if}
</a></span>
<p class="blogtext">{$v[description]} </p>
<div class="bloginfo">
<ul>
<li class="author"><a href="{$v[url]}">Danoge</a></li>
<li class="lmname"><a href="{$CATEGORYS[$v[catid]][url]}">{$CATEGORYS[$v[catid]][catname]}</a></li>
<li class="timer">{date('Y-m-d H:i:s',$v[inputtime])}</li>
<li class="view"><span>{$views}</span>已阅读</li>
<li class="like">9999</li>
</ul>
</div>
</div>
{/if}
{/loop}
{/pc}
相关阅读 · 拓展功能:
以上就是关于“ phpcmsV9 首页调用全站最新文章数据的办法 ” 的全部内容。