获取指定条件的日志函数 for EMLOG
获取指定条件的日志函数 for EMLOG
获取指定条件的日志
主要方便主题、插件作者 中的新手 写的自定义函数 (老手勿喷)
可以按照分类、标签、作者、日期、日期段、置顶、含附件日志
| 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); | 获取所有日志 | |
注:以上全部函数,日志条数$sum设置为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', '简爱'));本文出自简爱博客,转载时请注明出处及相应链接。

可以查询手机归属地
评论
来看代码的
(⊙o⊙)…我是来看代码的。
看下代码
写的挺不错的 谢谢博主分享
{JA_face:8}
你这篇日志 显示不全啊,方便的话,可否邮件分享一下,不胜感激 yhxseu@126.com
留名闪人。
@黎健雄:汗 你这是不是 有什么 监控插件?
@简爱:chrome.google.com/webstore/detail/rss-feed-reader/pnjaodmkngahhkoihejjehlcdlnohgmp我丢。。中文中文、。
@黎健雄:RSS 订阅插件 你这也是有时间上网
@简爱:放暑假你说有没有时间。
现在在码日记。