emlog MVC解构--控制器Controller之Search_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');
}
emlog MVC解构--控制器Controller之Search_Controller
         本页正文内容约1583个文字
         本文标签:这篇文章木有标签

         版权声明:若无特殊注明,本文皆为“懒人的小窝”原创,转载请保留文章出处。

         本文链接:https://suppore.cn/113.html   百度已收录

发表评论

电子邮件地址不会被公开, 推荐使用QQ快速评论!

评论

4条评论
  1. avatar

    青春博客 Lv.2 Chrome 45.0.2454.101 Chrome 45.0.2454.101 Windows 8.1 x64 Edition Windows 8.1 x64 Edition 回复

    这是那一个版本的

    北京市 北京宽带通电信技术有限公司

    1. 小陈 Lv.6 Chrome 46.0.2486.0 Chrome 46.0.2486.0 Windows Windows 回复

      回复了青春博客:5.3.X的

            湖南省邵阳市 移动

    2. 青春博客 Lv.2 Chrome 45.0.2454.101 Chrome 45.0.2454.101 Windows 8.1 x64 Edition Windows 8.1 x64 Edition 回复

      回复了小陈:?和5.3.1 不一样啊

            北京市 北京宽带通电信技术有限公司

    3. 小陈 Lv.6 Safari 9.0 Safari 9.0 iPhone iOS 9.2.1 iPhone iOS 9.2.1 回复

      回复了青春博客:一样的。

            广东省深圳市 联通

00:00 / 00:00
顺序播放