emlog MVC解构23--控制器Controller之Record_Controller
Record_Controller控制器用于输出归档文章列表,只有一个方法:display($params)。
function display($params) { // 建立日志模型 $Log_Model = new Log_Model(); // 建立配置缓存 $options_cache = Option::getAll(); // 配置缓存数组键名转换成变量,键值转换成相应的变量值 extract($options_cache); // 获取页码,未设置则默认为首页1 $page = isset($params[4]) && $params[4] == 'page' ? abs(intval($params[5])) : 1; // 获取归档日期,格式为年月或年月日,四位年,含前导零的月,含前导零的日,如201607或20160707 $record = isset($params[1]) && $params[1] == 'record' ? intval($params[2]) : '' ; // 为了侧边栏的日历归档功能,将record设为全局变量 $GLOBALS['record'] = $record; // 定义访问路径变量 $pageurl = ''; // 归档页面站点标题设置为归档日期-站点浏览器标题 $site_title = $record . ' - ' . $site_title; // 单月归档和单日归档 if (preg_match("/^([\d]{4})([\d]{2})$/", $record, $match)) { // 单月归档 // 获取当月的天数 $days = getMonthDayNum($match[2], $match[1]); // 获取当月第一天开始的时间戳 $record_stime = emStrtotime($record . '01'); // 获取当月最后一天结束的时间戳 $record_etime = $record_stime + 3600 * 24 * $days; } else { // 单日归档 // 获取当天开始的时间戳 $record_stime = emStrtotime($record); // 获取当天结束的时间戳 $record_etime = $record_stime + 3600 * 24; } // 设置数据库查询条件为开始时间戳到结束时间戳,从新到旧排列 $sqlSegment = "and date>=$record_stime and date<$record_etime order by date desc"; // 获取满足条件已发布的日志总数量 $lognum = $Log_Model->getLogNum('n', $sqlSegment); // 获取归档页面的总页数 $total_pages = ceil($lognum / $index_lognum); if ($page > $total_pages) { // 页码超过总页数 // 设置页码为最后一页 $page = $total_pages; } // 非首页时查询的开始的界限 $start_limit = ($page - 1) * $index_lognum; // 利用Url获取归档链接 $pageurl .= Url::record($record, 'page'); // 获取归档页日志列表 $logs = $Log_Model->getLogsForHome($sqlSegment, $page, $index_lognum); // 利用工具函数获取输出列表页底部页码导航的字符串 $page_url = pagination($lognum, $index_lognum, $page, $pageurl); // View调用前台模板的header.php和log_list.php输出归档页 include View::getView('header'); include View::getView('log_list'); }
点赞0
支持一下