BlogMi增加搜索功能

阅读原文

BlogMi

(本教程同样适用于MiniCMS)

修改/index.php文件,在14行添加以下代码:

else if (preg_match('|^search/([^/]+)/(?page=([0-9]+)){0,1}$|', $qs, $matches)) {
  $mc_get_type = 'search';
  $mc_get_name = urldecode($matches[1]);
  $mc_page_num = isset($matches[2]) ? $matches[3] : 1;
}

然后在67行添加以下代码:

else if ($mc_get_type == 'search') {
  require 'files/posts/index/publish.php';
  $mc_post_ids = array_keys($mc_posts);
  $mc_post_count = count($mc_post_ids);
  $mc_search_posts = array();
  foreach($mc_posts as $k=>$v){
    if(preg_match('/'.$mc_get_name.'/i',$v['title'])){
        $mc_search_posts[$k] = $mc_posts[$k];
    }
  }
  $mc_posts = $mc_search_posts;
  $mc_post_ids = array_keys($mc_posts);
  $mc_post_count = count($mc_post_ids);
}

修改/files/tags.php文件,在最后的?>之前添加以下代码:

function mc_is_search() {
  global $mc_get_type;
  return $mc_get_type == 'search';
}

function mc_search_name($print=true) {
  global $mc_get_name;
  if ($print) {
    echo htmlspecialchars($mc_get_name);
    return;
  }
  return $mc_get_name;
}

现在在地址栏你的域名后面添加/?search/关键字/,就可以看到搜索的结果了。
比如刚安装的BlogMi,地址是http://www.mogutest.com/,然后访问http://www.mogutest.com/?search/h/
就可以看到Hello world的那篇文章了。

接下来修改主题

修改主题目录下的index.php,在标签中添加以下代码:

<script type="text/javascript" > function Search(){ var key = document.getElementById(‘text’).value; location.href = ‘./?search/’+key+’/’; } </script>

然后再合适的地方添加一个文本框:

<div class="search"> <input type="text" name="search" class="text" id="text" value="" /> <input type="button" class="submit" value="搜索" onclick="Search()" /> </div>

到这里搜索功能就添加完成了,还可以在page_info位置添加一个提示:

<?php } else if (mc_is_search()) { ?>
<div id="page_info"><span>搜索:<?php mc_search_name(); ?></span></div>

但最后我用的是:

<div class="search"><input type="text" id="searchtext" placeholder="搜索标题" style="width:80px;" /><input type="button" class="submit" value="搜索" onclick="location ='<?php mc_site_link(); ?>/?search/'+document.getElementById('searchtext').value+'/';" /></div>

伪静态规则修改版使用

修改后的 MiniCMS 支持编辑文章时输入别名,并且有伪静态开关的压缩包。

密码修改在文件夹 mc/mc-files/mc-conf.php 文件里,将明文密码 123456 改成自己的就可以。

伪静态规则在 mc 文件夹下的 .htaccess 里,因为本地测试地址是 127.0.0.1/mc所以伪静态文件里第 2 行的 RewriteBase/mc/, 如果是根目录就留个斜杠 / 就好,如果是其他文件夹就修改成你的文件夹名就好。

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 Web@Cool02.com

文章标题:BlogMi增加搜索功能

文章字数:619

本文作者:零贰

发布时间:2018-01-20, 12:40:05

最后更新:2020-03-26, 16:33:17

原始链接:/html/20180120124005.html

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
零址导航 Gitee