易优eyoucms模板调用年月日文章排行的实现教程
作者: 本站原创 发布时间: 浏览: 次
eyoucms有很多潜在的调用方法,比如按照年、月、日调用文章排行,这得需要懂PHP代码的建站人员才能调用,为了方便大家易优给大家带来了操作流程,下面就给大家介绍一下如何实现?
需要写入的自定义php函数,在“易优cms网站根目录/extend/function.php”文件内写入
if (!function_exists('diy_archives_list')) { // 获取指定天数的文档列表 function diy_archives_list($channel = 0, $day = 0, $orderby = 'aid', $limit = 10) { $where = []; !empty($channel) && $where['a.channel'] = $channel; if ($day > 0) { switch ($day) { case 1: $t = mktime(0,0,0,date('m'),date('d'),date('Y')); break; case 7: $t = mktime(0,0,0,date('m'),date('d')-date('w')+1,date('y')); break; case 28: case 29: case 30: case 31: $t = mktime(0,0,0,date('m'),1,date('Y')); break; case 90: $t = strtotime(date('Y-m-d', strtotime(“-3 month” ))); break; case 365: case 366: $t = strtotime(date('Y-01-01')); break; default: # code… break; } $where['a.add_time'] = ['gt', $t]; } $where2 = [ 'a.arcrank' => ['gt', -1], 'a.status' => 1, 'a.is_del' => 0, 'a.lang' => get_home_lang(), ]; $where = array_merge($where, $where2); $orderby = getOrderBy($orderby, 'desc'); $result = hinkDb::name('archives')->alias('a') ->field('b.*, a.*') ->join('__ARCTYPE__ b', 'a.typeid = b.id', 'LEFT') ->where($where) ->order($orderby) ->limit($limit) ->select(); // 获取查询的控制器名 $ctl_name_list = model('Channeltype')->getAll('id,ctl_name', array(), 'id'); foreach ($result as $key => $val) { $val['litpic'] = get_default_pic($val['litpic']); // 默认封面图 /*文档链接*/ if ($val['is_jump'] == 1) { $val['arcurl'] = $val['jumplinks']; } else { $controller_name = $ctl_name_list[$val['channel']]['ctl_name']; $val['arcurl'] = arcurl('home/'.$controller_name.'/view', $val); } /*–end*/ $result[$key] = $val; } return $result; } } |
模板内调用代码:
{eyou:volist name=”:diy_archives_list(1,1,’click’,10)”} {$i} [ {$field.typename} ]{$field.title} ({$field.click})人阅读发布时间:{$field.add_time|MyDate=’Y-m-d’,###} {/eyou:volist} |
(1,1,'click',10)l绿色1为频道模型
全部:0
文章:1
产品:2
图集:3
下载:4
(1,1,'click',10)中的蓝色1为天数:
今日:1
本周:7
本月:30
三个月:90
本年:365
全部:0
(1,1,'click',10)中的click为排序方式:
new: 按发布时间排序
click: 按点击数排序
sort_order:按排序号排序
rand: 按随机排序
(1,1,'click',10)中的10为调用条数:
数值可以自定义填写。