emlog MVC解构22--控制器Controller之Tag_Controller
Tag_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; // 获取标签名,路径未包含则设置为空 $tag = isset($params[1]) && $params[1] == 'tag' ? addslashes(urldecode(trim($params[2]))) : ''; // 定义访问路径 $pageurl = ''; // 设置标签页面站点标题为标签名-站点浏览器标题 $site_title = stripslashes($tag) . ' - ' . $site_title; // 建立标签模型 $Tag_Model = new Tag_Model(); // 通过标签名称获取包含此标签的日志ID以逗号分隔的字符串 $blogIdStr = $Tag_Model->getTagByName($tag); // 标签不包含在任意日志则输出404页面 if ($blogIdStr === false) { show_404_page(); } // 设置数据库搜索条件,从新到旧排列结果 $sqlSegment = "and gid IN ($blogIdStr) order by date desc"; // 获取包含标签的日志数量 $lognum = $Log_Model->getLogNum('n', $sqlSegment); // 获取标签列表的总页数 $total_pages = ceil($lognum / $index_lognum); if ($page > $total_pages) { // 页码超过总页数 // 页码设为最后一页 $page = $total_pages; } // 利用工具类Url获取标签页面链接 $pageurl .= Url::tag(urlencode($tag), '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
支持一下