emlog MVC解构24--控制器Controller之Search_Controller
Search_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; // 获取搜索词,未配置则设为空 $keyword = isset($params[1]) && $params[1] == 'keyword' ? trim($params[2]) : ''; // 去除搜索词里面特殊编码,把特殊字符转换成HTML实体,在特殊字符添加转义反斜杠 $keyword = addslashes(htmlspecialchars(urldecode($keyword))); // 替换搜索词里面的%为\%,_为\_,即加反斜杠 $keyword = str_replace(array('%', '_'), array('\%', '\_'), $keyword); // 定义访问路径 $pageurl = ''; // 设置数据搜索条件为标题包含搜索词,从新到旧排列 $sqlSegment = "and title like '%{$keyword}%' order by date desc"; // 获取搜索获得的日志总数量 $lognum = $Log_Model->getLogNum('n', $sqlSegment); // 获取搜索列表页面的总页数 $total_pages = ceil($lognum / $index_lognum); if ($page > $total_pages) { // 页码超过总页数时 // 页码设置为最后一页 $page = $total_pages; } // 设置访问路径,搜索词编码 $pageurl .= BLOG_URL.'?keyword='.urlencode($keyword).'&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
支持一下