123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271 |
- {layout name="common/layout" /}
- <style>
- .form-search label {
- font-weight: normal;
- margin-right: 5px;
- }
- .result-list {
- margin: 0;
- }
- .result-list dd {
- margin-bottom: 20px;
- /*border-bottom:1px solid #f3f3f3;*/
- }
- .result-list dd:last-child {
- margin-bottom: 0;
- }
- .result-list dd .description {
- font-size: 14px;
- color: #666;
- }
- .result-list dd .extra, .result-list dd a {
- font-size: 13px;
- color: green;
- margin-top: 5px;
- }
- .result-list dd .extra span {
- margin-right: 5px;
- }
- .result-list dd .extra strong {
- font-weight: 400;
- margin-right: 1px;
- }
- .result-list h4 {
- font-weight: 400;
- font-size: 16px;
- margin-bottom: 3px;
- line-height: 1.54;
- }
- .result-list h4 a {
- color: #007bff;
- }
- .result-list em {
- color: #c00;
- font-style: normal;
- }
- .result-list . field-info {
- }
- .search-suggestion {
- background-color: #F5F5F5;
- padding: 10px;
- margin-bottom: 15px;
- }
- .search-links {
- margin-top: 25px;
- }
- .search-links a {
- color: #007bff;
- margin-right: 5px;
- }
- .autocomplete-searchmenu .autocomplete-suggestion {
- padding: 5px 12px;
- }
- ul.orderlist li {
- padding: 3px 10px;
- }
- </style>
- <div class="p-3 mb-3 bg-white">
- <div class="p-3" style="border-bottom: 1px solid #eee;margin-bottom: 15px;">
- <div class="">
- <form class="form-search pt-2" id="search-form" method="get">
- <input type="hidden" name="order" value="{$order}">
- <div class="row">
- <div class="col-xs-12 col-sm-6" id="q-input">
- <div class="input-group">
- <input type="search" class="search-query form-control" name="q" title="输入任意关键词皆可搜索" value="<?php echo htmlspecialchars($q); ?>">
- <span class="input-group-btn">
- <button class="btn btn-primary ml-2" type="submit" style="border-radius:2px;padding:6px 30px;">搜索</button>
- </span>
- </div>
- </div>
- <div class="col-xs-12 col-sm-6 mt-2">
- <label><input type="radio" name="fulltext" value="0" {:$fulltext?'':'checked'} /> 标题</label>
- <label>
- <input type="radio" name="fulltext" value="1" {:$fulltext?'checked':''} /> 全文
- </label>
- <label>
- <input type="checkbox" name="fuzzy" value="1" {:$fuzzy?'checked':''} /> 模糊搜索
- </label>
- {if false}
- <label>
- <input type="checkbox" name="synonyms" value="1" {:$synonyms?'checked':''} /> 同义词
- </label>
- {/if}
- <span class="dropdown">
- <a class="dropdown-toggle" data-toggle="dropdown" data-target="#" href="javascript:">
- {:isset($orderList[$order])?$orderList[$order]:$orderList['relevance']} <span class="caret"></span>
- </a>
- <ul class="dropdown-menu orderlist">
- {foreach name="orderList" id="item"}
- <li role="presentation"><a role="menuitem" tabindex="-1" data-value="{$key}" href="javascript:">{$item}</a></li>
- {/foreach}
- </ul>
- </span>
- </div>
- </div>
- </form>
- </div>
- </div>
- <div class="container">
- <!-- 开始搜索 -->
- <?php if (!empty($q)): ?>
- <div class="">
- <div class="span12">
- <!-- 搜索状态 -->
- <p class="result text-muted">为您找到约 <?php echo number_format($count); ?> 条结果,搜索耗时:<?php printf('%.4f', $search_cost); ?>秒</p>
- <!-- 搜索建议 -->
- <?php if (count($corrected) > 0): ?>
- <div class="search-suggestion">
- 您是不是要找:
- <?php foreach ($corrected as $word): ?>
- <span><a href="<?php echo '?q=' . urlencode($word); ?>" class="text-danger"><?php echo $word; ?></a></span>
- <?php endforeach; ?>
- </div>
- <?php endif; ?>
- <!-- 未找到结果 -->
- <?php if ($count === 0 && empty($error)): ?>
- <div class="search-not-found">
- <p>找不到和 {$q|htmlspecialchars} 相符的内容或信息。</p>
- <p>建议您:</p>
- <ul class="list-unstyled">
- <li>1.请检查输入字词有无错误。</li>
- <li>2.请换用另外的查询字词。</li>
- <li>3.请改用较短、较为常见的字词。</li>
- </ul>
- </div>
- <?php endif; ?>
- <!-- 查询结果 -->
- <dl class="result-list">
- <?php foreach ($docs as $doc): ?>
- <dt>
- <h4>
- <a href="{$doc['url']}" target="_blank">
- <?php echo $highlight(htmlspecialchars($doc['title'])); ?>
- </a>
- </h4>
- </dt>
- <dd>
- <div class="description"><?php echo $fulltext ? $highlight(htmlspecialchars($doc['content'])) : htmlspecialchars($doc['content']); ?></div>
- <div class="extra">
- <span class="tag tag-xs">日志</span>
- <span><strong>发布于</strong>{$doc.createtime|human_date}</span>
- <span>{$doc['views']} 次浏览</span>
- <span>{$doc['comments']} 次评论</span>
- </div>
- </dd>
- <?php endforeach; ?>
- </dl>
- <!-- 分页 -->
- <?php if (!empty($pager)): ?>
- <div class="pager mb-0 mt-4" style="text-align:left;">
- <ul class="pagination">
- <?php echo $pager; ?>
- </ul>
- </div>
- <?php endif; ?>
- </div>
- </div>
- <?php endif; ?>
- <!-- 结束搜索 -->
- </div>
- <!-- 热门搜索 -->
- <?php if (count($hot) > 0 && false): ?>
- <div class="container">
- <div class="search-links">
- <h4>热门搜索</h4>
- <p>
- <?php foreach($hot as $word => $freq): ?>
- <span><a href="<?php echo '?q=' . urlencode($word); ?>"><?php echo $word; ?></a></span>
- <?php endforeach; ?>
- </p>
- </div>
- </div>
- <?php endif; ?>
- <!-- 相关搜索 -->
- <?php if (count($related) > 0): ?>
- <div class="container">
- <div class="search-links">
- <h4>相关搜索</h4>
- <p>
- <?php foreach ($related as $word): ?>
- <span><a href="<?php echo '?q=' . urlencode($word); ?>"><?php echo $word; ?></a></span>
- <?php endforeach; ?>
- </p>
- </div>
- </div>
- <?php endif; ?>
- <div class="container">
- <div class="search-links">
- <p>本搜索基于 <a href="https://www.fastadmin.net/?ref=xunsearch" target="_blank">FastAdmin</a> 和 <a href="http://www.fastadmin.net/store/xunsearch.html?ref=xunsearch" target="_blank" title="开源免费的中文全文检索">Xunsearch全文搜索插件</a> 实现</p>
- </div>
- </div>
- </div>
- <script data-render="script" src="__ADDON__/default/js/jquery.autocomplete.js"></script>
- <script data-render="script">
- $(function () {
- var form = $('#search-form');
- var search = $("input[name='q']", form);
- search.autoComplete({
- minChars: 1,
- menuClass: 'autocomplete-searchmenu',
- header: '',
- footer: '',
- source: function (term, response) {
- try {
- xhr.abort();
- } catch (e) {
- }
- xhr = $.getJSON('{:addon_url("blog/search/suggestion")}', {q: term}, function (data) {
- response(data);
- });
- },
- onSelect: function (e, term, item) {
- if (typeof callback === 'function') {
- callback.call(elem, term, item);
- } else {
- form.trigger("submit");
- }
- }
- });
- form.submit(function () {
- if (search.val() == '') {
- layer.msg('请先输入关键词');
- search.focus();
- return false;
- }
- });
- $(document).on("click", "ul.orderlist li a", function () {
- $("input[name=order]", form).val($(this).data("value"));
- form.trigger("submit");
- });
- });
- </script>
|