admincp_search.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. /**
  3. * [Discuz!] (C)2001-2099 Comsenz Inc.
  4. * This is NOT a freeware, use is subject to license terms
  5. *
  6. * $Id: admincp_search.php 25246 2011-11-02 03:34:53Z zhangguosheng $
  7. */
  8. if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
  9. exit('Access Denied');
  10. }
  11. cpheader();
  12. lang('admincp_searchindex');
  13. $searchindex = & $_G['lang']['admincp_searchindex'];
  14. if(!$searchindex) {
  15. cpmsg('searchindex_not_found', '', 'error');
  16. }
  17. $keywords = trim($_GET['keywords']);
  18. $kws = explode(' ', $keywords);
  19. $kws = array_map('trim', $kws);
  20. $keywords = implode(' ', $kws);
  21. $result = $html = array();
  22. if($_GET['searchsubmit'] && $keywords) {
  23. foreach($searchindex as $skey => $items) {
  24. foreach($kws as $kw) {
  25. foreach($items['text'] as $k => $text) {
  26. if(strpos(strtolower($text), strtolower($kw)) !== FALSE) {
  27. $result[$skey][] = $k;
  28. }
  29. }
  30. }
  31. }
  32. if($result) {
  33. $totalcount = 0;
  34. foreach($result as $skey => $tkeys) {
  35. $tmp = array();
  36. foreach($searchindex[$skey]['index'] as $title => $url) {
  37. if($title{0} != '_') {
  38. $tmp[] = '<a href="'.ADMINSCRIPT.'?'.$url.'&highlight='.rawurlencode($keywords).'" target="_blank">'.$title.'</a>';
  39. }
  40. }
  41. $texts = array();
  42. $tkeys = array_unique($tkeys);
  43. foreach($tkeys as $tkey) {
  44. if(isset($lang[$searchindex[$skey]['text'][$tkey]])) {
  45. $texts[] = '<li><span s="1">'.strip_tags($lang[$searchindex[$skey]['text'][$tkey]]).'</span><span class="lightfont">('.$searchindex[$skey]['text'][$tkey].')</span></li>';
  46. } else {
  47. $texts[] = '<li><span s="1">'.$searchindex[$skey]['text'][$tkey].'</span></li>';
  48. }
  49. }
  50. $texts = array_unique($texts);
  51. $texts = implode('', $texts);
  52. $totalcount += $count = count($tkeys);
  53. $html[] = '<div class="news"><span class="right">'.cplang('search_result_item', array('number' => $count)).'</span><b>'.implode(' &raquo; ', $tmp).'</b></div><ul class="tipsblock">'.$texts.'</ul>';
  54. }
  55. if($totalcount) {
  56. showsubmenu('search_result', array(), '<span class="right">'.cplang('search_result_find', array('number' => $totalcount)).'</span>');
  57. echo implode('<br />', $html);
  58. hlkws($kws);
  59. } else {
  60. cpmsg('search_result_noexists', '', 'error');
  61. }
  62. } else {
  63. cpmsg('search_result_noexists', '', 'error');
  64. }
  65. } else {
  66. cpmsg('search_keyword_noexists', '', 'error');
  67. }
  68. function hlkws($kws) {
  69. echo <<<EOF
  70. <script type="text/JavaScript">
  71. _attachEvent(window, 'load', function () {
  72. EOF;
  73. foreach($kws as $kw) {
  74. echo 'parsetag(\''.$kw.'\');';
  75. }
  76. echo '}, document)</script>';
  77. }
  78. ?>