emlog MVC解构25--控制器Controller之Author_Controller
Author_Controller控制器用于查看作者文章列表页面,仅有一个方法:display($params)。
function display($params) { // 建立日志模型 $Log_Model = new Log_Model(); // 新建缓存 $CACHE = Cache::getInstance(); // 获取配置缓存 $options_cache = Option::getAll(); // 配置缓存输出键名转换成变量名,键值转换成变量值 extract($options_cache); // 获取页码,未配置则设为首页1 $page = isset($params[4]) && $params[4] == 'page' ? abs(intval($params[5])) : 1; // 获取作者ID,未配置则设为空 $author = isset($params[1]) && $params[1] == 'author' ? intval($params[2]) : '' ; // 定义访问路径变量 $pageurl = ''; // 获取用户缓存 $user_cache = $CACHE->readCache('user'); // 用户缓存不存在此用户,则输出404页面 if (!isset($user_cache[$author])) { show_404_page(); } // 获取用户名 $author_name = $user_cache[$author]['name']; // 用户文章列表页面站点标题设置为作者名-站点浏览器标题 $site_title = $author_name . ' - ' . $site_title; // 设置数据库搜索条件为此用户日志,从新到旧排列 $sqlSegment = "and author=$author order by date desc"; // 获取统计缓存 $sta_cache = $CACHE->readCache('sta'); // 获取此用户已发布日志总数量 $lognum = $sta_cache[$author]['lognum']; // 获取用户文章列表页面总页数 $total_pages = ceil($lognum / $index_lognum); if ($page > $total_pages) { // 页码超过总页数 // 页码设置为最后一页 $page = $total_pages; } // 数据库搜索的开始限制 $start_limit = ($page - 1) * $index_lognum; // 利用工具类Url获取作者文章列表页的链接 $pageurl .= Url::author($author, 'page'); // 建立日志模型 $Log_Model = new Log_Model(); // 获取日志列表 $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'); }
点赞1
支持一下