获取指定条件的日志
主要方便主题、插件作者 中的新手 写的自定义函数 (老手勿喷)
可以按照 分类、标签、作者、日期、日期段、置顶、含附件 日志
sort | 获取指定 '分类' 的日志 | |
JA_EM_LogList('sort', '代码', 10, 1); | 获取 分类名 为 < 代码 > 的日志 10 篇 第 1 页 | |
JA_EM_LogList('sort', '代码', 20); | 获取 分类名 为 < 代码 > 的日志 20 篇 | |
tag | 获取指定 '标签' 的日志 | |
JA_EM_LogList('tag', 'EMLOG'); | 获取 标签名 为 < EMLOG > 的日志 | |
(日志条数 $sum 缺省 10, 默认 10 篇日志) | ||
user | 获取指定 '用户' 的日志 | |
JA_EM_LogList('user', '简爱'); | 获取 用户名 为 < 简爱 > 的日志 | |
date | 获取指定 '日期/日期范围内' 的日志 | |
JA_EM_LogList('date', '20121202'); | 获取 日期为 为 < 2012年12月2日 > 的日志 | |
日期可以为 标准 8 位年月日 如:20121202 | ||
日期可以为 以 - 分割的日期 如:2012-12-02 或 2012-2-02 | ||
JA_EM_LogList('date', '2012-12-1|2012-12-3'); | 获取 日期为 为 < 2012年12月1日 至 2012年12月3日 > 的日志 | |
key | 获取指定 '关键字' 的日志 (同日志搜索功能) | |
JA_EM_LogList('key', '简爱'); | 列出 以 < 简爱 > 为关键字 搜索到的日志 | |
top | 获取 '置顶' 的日志 | |
JA_EM_LogList('top', , 11); | 获取 < 置顶 > 的日志 11 篇 (注意 不需要的参数留空) | |
att | 获取 '含有附件' 的日志 | |
JA_EM_LogList('att'); | 获取 < 含有附件 > 的日志 | |
JA_EM_LogList(); | 获取最新的 日志 10 篇 | |
JA_EM_LogList( , , 0); | 获取所有日志 | |
|
PHP 代码 下一页
<?php
/**
* $name 获取日志类型
* $data 指定参数
* $sum 日志数量
* $page 页数
**/
function JA_EM_LogList($name, $data, $sum=10, $page=1){
global $CACHE;
$Log_Model = new Log_Model();
$name = strtolower($name);
if($name == 'sort'){ // 分类日志
$Sorts = $CACHE->readCache('sort');
foreach($Sorts as $k => $v){
if($v['sortname'] == $data){$sortid = $k; break;}
}
$sqlSegment = "and sortid=$sortid order by date desc";
}elseif($name == 'tag'){ // 标签日志
$Tag_Model = new Tag_Model();
$blogIdStr = $Tag_Model->getTagByName($data);
$sqlSegment = "and gid in ($blogIdStr) order by date desc";
}elseif($name == 'user'){ // 用户日志
$Users = $CACHE->readCache('user');
foreach($Users as $k => $v){
if($v['name'] == $data){$author_id = $k; break;}
}
$sqlSegment = "and author=$author_id order by date desc";
}elseif($name == 'date'){ // 指定 日期 / 日期内 日志
$data = strtr($data,array('年'=>'-', '月'=>'-', '日'=>''));
$date = explode('|',$data);
if(isset($date[1])){
$record_stime = emStrtotime($date[0]);
$record_etime = emStrtotime($date[1]) + 3600 * 24;
}else{
$record_stime = emStrtotime($data);
$record_etime = $record_stime + 3600 * 24;
}
$sqlSegment = "and date>=$record_stime and date<$record_etime order by top desc ,date desc";
}elseif($name == 'key'){ // 搜索日志
$keyword = addslashes(htmlspecialchars(urldecode($keyword)));
$keyword = str_replace(array('%', '_'), array('\%', '\_'), $keyword);
$sqlSegment = "and title like '%{$keyword}%' order by date desc";
}elseif($name == 'top'){ // 置顶日志
$sqlSegment = "and top='y' order by date desc";
}elseif($name == 'att'){ // 含有附件日志
$sqlSegment = "and attnum>0 order by date desc";
}else{ // 全部日志
$sqlSegment = "order by top desc ,date desc";
}
return $JA_log_list = $Log_Model -> getLogsForHome($sqlSegment, $page, $sum);
}
require_once './init.php'; // 用作插件 或 模板内部时 请删除本行
// 打印 2013年1月1日 至 2013年7月23日 之间的所有日志
print_r(JA_EM_LogList('date', '2013-1-1|2013-7-23', 0));
// 打印 作者:《简爱》的日志 10 篇
print_r(JA_EM_LogList('user', '简爱'));