[ Index ]

PHP Cross Reference of e107 v1


title

Body

[close]

/ -> search.php (source)

   1  <?php
   2  /*
   3  + ----------------------------------------------------------------------------+
   4  |     e107 website system
   5  |
   6  |     Copyright (C) 2001-2002 Steve Dunstan (jalist@e107.org)
   7  |     Copyright (C) 2008-2010 e107 Inc (e107.org)
   8  |
   9  |
  10  |     Released under the terms and conditions of the
  11  |     GNU General Public License (http://gnu.org).
  12  |
  13  |     $URL: https://e107.svn.sourceforge.net/svnroot/e107/trunk/e107_0.7/search.php $
  14  |     $Revision: 12341 $
  15  |     $Id: search.php 12341 2011-09-02 10:38:04Z secretr $
  16  |     $Author: secretr $
  17  +----------------------------------------------------------------------------+
  18  */
  19  
  20  require_once ('class2.php');
  21  
  22  if (!check_class($pref['search_restrict'])) {
  23      require_once(HEADERF);
  24      $ns -> tablerender(LAN_SEARCH_20, "<div style='text-align: center'>".LAN_SEARCH_21."</div>");
  25      require_once(FOOTERF);
  26      exit;
  27  }
  28  
  29  if($_GET['t'] == '0'){$_GET['t'] = 'news';}
  30  if($_GET['t'] == 1){$_GET['t'] = 'comments';}
  31  if($_GET['t'] == 2){$_GET['t'] = 'users';}
  32  if($_GET['t'] == 3){$_GET['t'] = 'downloads';}
  33  if($_GET['t'] == 4){$_GET['t'] = 'pages';}
  34  
  35  $search_prefs = $sysprefs -> getArray('search_prefs');
  36  
  37  // load search routines
  38  $search_info = array();
  39  $auto_order = 1000;
  40  function search_info($id, $type, $plug_require, $info='') {
  41      global $tp, $search_prefs, $auto_order;
  42      if (check_class($search_prefs[$type.'_handlers'][$id]['class'])) {
  43          if ($plug_require) {
  44              require_once($plug_require);
  45              $ret = $search_info[0];
  46          } else {
  47              $ret = $info;
  48          }
  49          $ret['chars'] = $search_prefs[$type.'_handlers'][$id]['chars'];
  50          $ret['results'] = $search_prefs[$type.'_handlers'][$id]['results'];
  51          $ret['pre_title'] = $search_prefs[$type.'_handlers'][$id]['pre_title'];
  52          $ret['pre_title_alt'] = $tp -> toHtml($search_prefs[$type.'_handlers'][$id]['pre_title_alt']);
  53          $ret['order'] = (isset($search_prefs[$type.'_handlers'][$id]['order']) && $search_prefs[$type.'_handlers'][$id]['order']) ? $search_prefs[$type.'_handlers'][$id]['order'] : $auto_order;
  54          $auto_order++;
  55          return $ret;
  56      } else {
  57          return false;
  58      }
  59  }
  60  
  61  //core search routines
  62  
  63  if ($search_info['news'] = search_info('news', 'core', false, array('sfile' => e_HANDLER.'search/search_news.php', 'qtype' => LAN_SEARCH_98, 'refpage' => 'news.php', 'advanced' => e_HANDLER.'search/advanced_news.php', 'id' => 'news'))) {
  64     //    $search_id++;
  65  } else {
  66      unset($search_info['news']);
  67  }
  68  
  69  if ($search_info['comments'] = search_info('comments', 'core', false, array('sfile' => e_HANDLER.'search/search_comment.php', 'qtype' => LAN_SEARCH_99, 'refpage' => 'comment.php', 'advanced' => e_HANDLER.'search/advanced_comment.php', 'id' => 'comment'))) {
  70     //    $search_id++;
  71  } else {
  72      unset($search_info['comments']);
  73  }
  74  
  75  if ($search_info['users'] = search_info('users', 'core', false, array('sfile' => e_HANDLER.'search/search_user.php', 'qtype' => LAN_140, 'refpage' => 'user.php', 'advanced' => e_HANDLER.'search/advanced_user.php', 'id' => 'user'))) {
  76      //    $search_id++;
  77  } else {
  78      unset($search_info['users']);
  79  }
  80  
  81  if ($search_info['downloads'] = search_info('downloads', 'core', false, array('sfile' => e_HANDLER.'search/search_download.php', 'qtype' => LAN_197, 'refpage' => 'download.php', 'advanced' => e_HANDLER.'search/advanced_download.php', 'id' => 'download'))) {
  82      //    $search_id++;
  83  } else {
  84      unset($search_info['downloads']);
  85  }
  86  
  87  if ($search_info['pages'] = search_info('pages', 'core', false, array('sfile' => e_HANDLER.'search/search_pages.php', 'qtype' => LAN_418, 'refpage' => 'page.php', 'advanced' => e_HANDLER.'search/advanced_pages.php', 'id' => 'pages'))) {
  88     //    $search_id++;
  89  } else {
  90      unset($search_info['pages']);
  91  }
  92  
  93  //plugin search routines    // plugin folder is used as the search key. ie. $_GET['t'] = 'chatbox';
  94  foreach ($search_prefs['plug_handlers'] as $plug_dir => $active) {
  95      if (is_readable(e_PLUGIN.$plug_dir."/e_search.php")) {
  96          if ($search_info[$plug_dir] = search_info($plug_dir, 'plug', e_PLUGIN.$plug_dir."/e_search.php")) {
  97            //    $search_id++;
  98          } else {
  99              unset($search_info[$plug_dir]);
 100          }
 101      }
 102  }
 103  
 104  
 105  // order search routines
 106  function array_sort($array, $column, $order = SORT_DESC) {
 107      $i = 0;
 108      foreach($array as $info) {
 109          $sortarr[] = $info[$column];
 110          $i++;
 111      }
 112       array_multisort($sortarr, $order, $array, $order);
 113      return($array);
 114  }
 115  
 116   $search_info = array_sort($search_info, 'order', SORT_ASC);
 117  
 118  // validate search query
 119  $perform_search = true;
 120  
 121  function magic_search($data) {
 122      foreach ($data as $key => $value) {
 123          if (is_array($value)) {
 124              $data[$key] = magic_search($value);
 125          } else {
 126              $data[$key] = stripslashes($value);
 127          }
 128      }
 129      return $data;
 130  }
 131  
 132  if (!e_QUERY) {
 133      $enhanced = true;
 134  }
 135  
 136  if (isset($_GET['q']) || isset($_GET['in']) || isset($_GET['ex']) || isset($_GET['ep']) || isset($_GET['beg'])) {
 137      if (MAGIC_QUOTES_GPC == true) {
 138          $_GET = magic_search($_GET);
 139      }
 140      $full_query = $_GET['q'];
 141      if ($_GET['in']) {
 142          $en_in = explode(' ', $_GET['in']);
 143          foreach ($en_in as $en_in_key) {
 144              $full_query .= " +".$en_in_key;
 145          }
 146          $enhanced = true;
 147      }
 148      if ($_GET['ex']) {
 149          $en_ex = explode(' ', $_GET['ex']);
 150          foreach ($en_ex as $en_ex_key) {
 151              $full_query .= " -".$en_ex_key;
 152          }
 153          $enhanced = true;
 154      }
 155      if ($_GET['ep']) {
 156          $full_query .= " \"".$_GET['ep']."\"";
 157          $enhanced = true;
 158      }
 159      if ($_GET['be']) {
 160          $en_be = explode(' ', $_GET['be']);
 161          foreach ($en_be as $en_be_key) {
 162              $full_query .= " ".$en_be_key."*";
 163          }
 164          $enhanced = true;
 165      }
 166  
 167      if (isset($_GET['r']) && !is_numeric($_GET['r'])) {
 168          $perform_search = false;
 169          $SEARCH_MESSAGE = LAN_SEARCH_201;
 170          $result_flag = 0;
 171      } else if (strlen($full_query) == 0) {
 172          $perform_search = false;
 173          $SEARCH_MESSAGE = LAN_SEARCH_201;
 174      } 
 175      elseif (strlen($full_query) < ($char_count = ($search_prefs['mysql_sort'] ? 4 : 3))) 
 176      {
 177          $perform_search = false;
 178          $SEARCH_MESSAGE = str_replace('--CHARS--', $char_count, LAN_417);
 179      } 
 180      elseif ($search_prefs['time_restrict']) {
 181          $time = time() - $search_prefs['time_secs'];
 182          $query_check = $tp -> toDB($full_query);
 183          $ip = $e107->getip();
 184          if ($sql -> db_Select("tmp", "tmp_ip, tmp_time, tmp_info", "tmp_info LIKE 'type_search%' AND tmp_ip='".$ip."'")) {
 185              $row = $sql -> db_Fetch();
 186              if (($row['tmp_time'] > $time) && ($row['tmp_info'] != 'type_search '.$query_check)) {
 187                  $perform_search = false;
 188                  $SEARCH_MESSAGE = LAN_SEARCH_17.$search_prefs['time_secs'].LAN_SEARCH_18;
 189              } else {
 190                  $sql -> db_Update("tmp", "tmp_time='".time()."', tmp_info='type_search ".$query_check."' WHERE tmp_info LIKE 'type_search%' AND tmp_ip='".$ip."'");
 191              }
 192          } else {
 193              $sql -> db_Insert("tmp", "'".$ip."', '".time()."', 'type_search ".$query_check."'");
 194          }
 195      }
 196      if ($perform_search) {
 197          $result_flag = $_GET['r'];
 198      }
 199      $query = trim($full_query);
 200  }
 201  
 202  // forward user if searching in google
 203  $search_count = count($search_info);
 204  $google_id = $search_count + 1;
 205  if ($perform_search)
 206  {
 207    if ($search_prefs['selector'] == 1) 
 208    {  // Care needed - with alpha strings on search of single area $_GET['t'][$google_id] returns a character on page > 1
 209      if (isset($_GET['t'][$google_id]) && ($_GET['t']==$google_id) && $_GET['t'][$google_id]) 
 210      {
 211  //    echo "We think google should be used using checkboxes<br />";
 212          header("location:http://www.google.com/search?q=".stripslashes(str_replace(" ", "+", $query)));
 213          exit;
 214      }
 215    } 
 216    else 
 217    { 
 218      if (isset($_GET['t']) && $_GET['t'] == $google_id) 
 219      {
 220          header("location:http://www.google.com/search?q=".stripslashes(str_replace(" ", "+", $query)));
 221          exit;
 222      }
 223    }
 224  }
 225  
 226  // determine areas being searched
 227  if (!$search_prefs['user_select'] && $_GET['r'] < 1) {
 228      foreach($search_info as $key => $value) {
 229          $searchtype[$key] = true;
 230      }
 231  } else {
 232      if (isset($_GET['t'])) {
 233          if (is_array($_GET['t'])) {
 234              $searchtype = $_GET['t'];
 235          } else {
 236              $searchtype[$_GET['t']] = true;
 237          }
 238      } else {
 239          if (isset($_GET['ref'])) {
 240              foreach($search_info as $key => $value) {
 241                  if ($value['id'] == $_GET['ref']) {
 242                      $searchtype[$key] = true;
 243                      $_GET['t'] = $key;
 244                  }
 245              }
 246          } else if (e_QUERY) {
 247              if (isset($_SERVER['HTTP_REFERER'])) {
 248                  if (!$refpage = substr($_SERVER['HTTP_REFERER'], (strrpos($_SERVER['HTTP_REFERER'], "/")+1))) {
 249                      $refpage = "index.php";
 250                  }
 251              } else {
 252                  $refpage = "";
 253              }
 254  
 255              foreach($search_info as $key => $value) {
 256                  if ($value['refpage']) {
 257                      if (strpos($refpage, $value['refpage']) !== FALSE) {
 258                          $searchtype[$key] = true;
 259                          $_GET['t'] = $key;
 260                      }
 261                  }
 262              }
 263          }
 264  
 265          if (!isset($searchtype) && isset($query)) {
 266              if ($search_prefs['multisearch']) {
 267                  $searchtype['all'] = true;
 268              } else {
 269                  $searchtype[0] = true;
 270              }
 271          }
 272      }
 273  }
 274  
 275  $value = isset($_GET['q']) ? $tp -> post_toForm($_GET['q']) : "";
 276  $SEARCH_MAIN_SEARCHFIELD = "<input class='tbox m_search' type='text' id='q' name='q' size='35' value='".$value."' maxlength='50' />";
 277  if ($search_prefs['selector'] == 1) {
 278      $SEARCH_MAIN_CHECKALL = "<input class='button' type='button' name='CheckAll' value='".LAN_SEARCH_1."' onclick='checkAll(this);' />";
 279      $SEARCH_MAIN_UNCHECKALL = "<input class='button' type='button' name='UnCheckAll' value='".LAN_SEARCH_2."' onclick='uncheckAll(this); uncheckG();' />";
 280  }
 281  
 282  $SEARCH_MAIN_SUBMIT = "<input type='hidden' name='r' value='0' /><input class='button' type='submit' name='s' value='".LAN_180."' />";
 283  
 284  $ENHANCED_ICON = "<img src='".e_IMAGE."generic/".IMODE."/search_enhanced.png' style='width: 16px; height: 16px; vertical-align: top'
 285  alt='".LAN_SEARCH_23."' title='".LAN_SEARCH_23."' onclick=\"expandit('en_in'); expandit('en_ex'); expandit('en_ep'); expandit('en_be')\"/>";
 286  
 287  $enhanced_types['in'] = LAN_SEARCH_24.':';
 288  $enhanced_types['ex'] = LAN_SEARCH_25.':';
 289  $enhanced_types['ep'] = LAN_SEARCH_26.':';
 290  $enhanced_types['be'] = LAN_SEARCH_27.':';
 291  
 292  $ENHANCED_DISPLAY = $enhanced ? "" : "style='display: none'";
 293  
 294  // advanced search config
 295  if (!$_GET['adv'] || $_GET['t'] == 'all') {
 296      foreach ($_GET as $gk => $gv) {
 297          if ($gk != 't' && $gk != 'q' && $gk != 'r' && $gk != 'in' && $gk != 'ex' && $gk != 'ep' && $gk != 'be' && $gk != 'adv') {
 298              unset($_GET[$gk]);
 299          }
 300      }
 301  }
 302  
 303  $SEARCH_TYPE_SEL = "<input type='radio' name='adv' value='0' ".($_GET['adv'] ? "" : "checked='checked'")." /> ".LAN_SEARCH_29."&nbsp;
 304  <input type='radio' name='adv' value='1' ".($_GET['adv'] ? "checked='checked'" : "" )." /> ".LAN_SEARCH_30;
 305  
 306  foreach ($search_info as $key => $value) {
 307      if (!isset($search_info[$key]['advanced'])) {
 308          $js_adv .= " && abid != '".$key."'";
 309      }
 310  }
 311  
 312  if (isset($search_info[$_GET['t']]['advanced'])) {
 313      $SEARCH_TYPE_DISPLAY = "";
 314  } else {
 315      $SEARCH_TYPE_DISPLAY = "style='display: none'";
 316  }
 317  
 318  if (check_class($search_prefs['google'])) {
 319      $js_adv .= " && abid != '".$google_id."'";
 320  }
 321  
 322  if ($perform_search) {
 323      $con = new convert;
 324      e107_require(e_HANDLER.'search_class.php');
 325      $sch = new e_search;
 326  
 327      // omitted words message
 328      $stop_count = count($sch -> stop_keys);
 329      if ($stop_count) {
 330          if ($stop_count > 1) {
 331              $SEARCH_MESSAGE = LAN_SEARCH_32.": ";
 332          } else {
 333              $SEARCH_MESSAGE = LAN_SEARCH_33.": ";
 334          }
 335          $i = 1;
 336          foreach ($sch -> stop_keys as $stop_key) {
 337              $SEARCH_MESSAGE .= $stop_key;
 338              if ($i != $stop_count) {
 339                  $SEARCH_MESSAGE .= ', ';
 340              }
 341              $i++;
 342          }
 343      }
 344  }
 345  
 346  require_once(HEADERF);
 347  
 348  // render search config
 349  
 350  if (!isset($SEARCH_TOP_TABLE)) {
 351      if (file_exists(THEME."search_template.php")) {
 352          require(THEME."search_template.php");
 353      } else {
 354          require(e_BASE.$THEMES_DIRECTORY."templates/search_template.php");
 355      }
 356  }
 357  
 358  
 359  // standard search config
 360  if ($search_prefs['selector'] == 2) {
 361      $SEARCH_DROPDOWN = "<select name='t' id='t' class='tbox' onchange=\"ab()\">";
 362      if ($search_prefs['multisearch']) {
 363          $SEARCH_DROPDOWN .= "<option value='all'>".LAN_SEARCH_22."</option>";
 364      }
 365  } else {
 366      $SEARCH_MAIN_CHECKBOXES = '';
 367  }
 368  
 369  foreach($search_info as $key => $value) {
 370      if ($search_prefs['selector'] == 2) {
 371          $sel = (isset($searchtype[$key]) && $searchtype[$key]) ? " selected='selected'" : "";
 372      } else {
 373          $sel = (isset($searchtype[$key]) && $searchtype[$key]) ? " checked='checked'" : "";
 374      }
 375      $google_js = check_class($search_prefs['google']) ? "onclick=\"uncheckG();\" " : "";
 376      if ($search_prefs['selector'] == 2) {
 377          $SEARCH_DROPDOWN .= "<option value='".$key."' ".$sel.">".$value['qtype']."</option>";
 378      } else if ($search_prefs['selector'] == 1) {
 379          $SEARCH_MAIN_CHECKBOXES .= $PRE_CHECKBOXES."<input ".$google_js." type='checkbox' name='t[".$key."]' ".$sel." />".$value['qtype'].$POST_CHECKBOXES;
 380      } else {
 381          $SEARCH_MAIN_CHECKBOXES .= $PRE_CHECKBOXES."<input type='radio' name='t' value='".$key."' ".$sel." />".$value['qtype'].$POST_CHECKBOXES;
 382      }
 383  }
 384  
 385  if (check_class($search_prefs['google'])) {
 386      if ($search_prefs['selector'] == 2) {
 387          $SEARCH_DROPDOWN .= "<option value='".$google_id."'>Google</option>";
 388      } else if ($search_prefs['selector'] == 1) {
 389          $SEARCH_MAIN_CHECKBOXES .= $PRE_CHECKBOXES."<input id='google' type='checkbox' name='t[".$google_id."]' onclick='uncheckAll(this)' />Google".$POST_CHECKBOXES;
 390      } else {
 391          $SEARCH_MAIN_CHECKBOXES .= $PRE_CHECKBOXES."<input id='google' type='radio' name='t' value='".$google_id."' />Google".$POST_CHECKBOXES;
 392      }
 393  }
 394  
 395  if ($search_prefs['selector'] == 2) {
 396      $SEARCH_DROPDOWN .= "</select>";
 397  }
 398  // End of standard search config
 399  
 400  
 401  $text = preg_replace("/\{(.*?)\}/e", '$\1', $SEARCH_TOP_TABLE);
 402  foreach ($enhanced_types as $en_id => $ENHANCED_TEXT) {
 403      $ENHANCED_DISPLAY_ID = "en_".$en_id;
 404      $ENHANCED_FIELD = "<input class='tbox' type='text' id='".$en_id."' name='".$en_id."' size='35' value='".$tp->post_toForm($_GET[$en_id])."' maxlength='50' />";
 405      $text .= preg_replace("/\{(.*?)\}/e", '$\1', $SEARCH_ENHANCED);
 406  }
 407  if ($search_prefs['user_select']) {
 408      $text .= preg_replace("/\{(.*?)\}/e", '$\1', $SEARCH_CATS);
 409  }
 410  
 411  $text .= preg_replace("/\{(.*?)\}/e", '$\1', $SEARCH_TYPE);
 412  
 413  if ($_GET['adv']) {
 414      if (isset($search_info[$_GET['t']]['advanced'])) {
 415          @require_once($search_info[$_GET['t']]['advanced']);
 416          foreach ($advanced as $adv_key => $adv_value) {
 417              if ($adv_value['type'] == 'single') {
 418                  $SEARCH_ADV_TEXT = $adv_value['text'];
 419                  $text .= preg_replace("/\{(.*?)\}/e", '$\1', $SEARCH_ADV_COMBO);
 420              } else {
 421                  if ($adv_value['type'] == 'dropdown') {
 422                      $SEARCH_ADV_A = $adv_value['text'];
 423                      $SEARCH_ADV_B = "<select name='".$adv_key."' class='tbox'>";
 424                      foreach ($adv_value['list'] as $list_item) {
 425                          $SEARCH_ADV_B .= "<option value='".$list_item['id']."' ".($_GET[$adv_key] == $list_item['id'] ? "selected='selected'" : "").">".$list_item['title']."</option>";
 426                      }
 427                      $SEARCH_ADV_B .= "</select>";
 428                  } else if ($adv_value['type'] == 'date') {
 429                      $SEARCH_ADV_A = $adv_value['text'];
 430                      $SEARCH_ADV_B = "<select id='on' name='on' class='tbox'>
 431                      <option value='new' ".($_GET['on'] == 'new' ? "selected='selected'" : "").">".LAN_SEARCH_34."</option>
 432                      <option value='old' ".($_GET['on'] == 'old' ? "selected='selected'" : "").">".LAN_SEARCH_35."</option>
 433                      </select>&nbsp;<select id='time' name='time' class='tbox'>";
 434                      $time = array(LAN_SEARCH_36 => 'any', LAN_SEARCH_37 => 86400, LAN_SEARCH_38 => 172800, LAN_SEARCH_39 => 259200, LAN_SEARCH_40 => 604800, LAN_SEARCH_41 => 1209600, LAN_SEARCH_42 => 1814400, LAN_SEARCH_43 => 2628000, LAN_SEARCH_44 => 5256000, LAN_SEARCH_45 => 7884000, LAN_SEARCH_46 => 15768000, LAN_SEARCH_47 => 31536000, LAN_SEARCH_48 => 63072000, LAN_SEARCH_49 => 94608000);
 435                      foreach ($time as $time_title => $time_secs) {
 436                          $SEARCH_ADV_B .= "<option value='".$time_secs."' ".($_GET['time'] == $time_secs ? "selected='selected'" : "").">".$time_title."</option>";
 437                      }
 438                      $SEARCH_ADV_B .= "</select>";
 439                  } else if ($adv_value['type'] == 'author') {
 440                      require_once(e_HANDLER.'user_select_class.php');
 441                      $us = new user_select;
 442                      $SEARCH_ADV_A = $adv_value['text'];
 443                      $SEARCH_ADV_B = $us -> select_form('popup', $adv_key, $_GET[$adv_key]);
 444                  } else if ($adv_value['type'] == 'dual') {
 445                      $SEARCH_ADV_A = $adv_value['adv_a'];
 446                      $SEARCH_ADV_B = $adv_value['adv_b'];
 447                  }
 448                  $text .= preg_replace("/\{(.*?)\}/e", '$\1', $SEARCH_ADV);
 449              }
 450          }
 451      } else {
 452          $_GET['adv'] = 0;
 453      }
 454  }
 455  
 456  $text .= $SEARCH_MESSAGE ? preg_replace("/\{(.*?)\}/e", '$\1', $SEARCH_TABLE_MSG) : "";
 457  $text .= preg_replace("/\{(.*?)\}/e", '$\1', $SEARCH_BOT_TABLE);
 458  
 459  $ns -> tablerender(PAGE_NAME." ".SITENAME, $text);
 460  
 461  // parse search
 462  if ($perform_search) 
 463  {
 464      $_GET['q'] = rawurlencode($_GET['q']);
 465      foreach ($search_info as $key => $a) 
 466      {
 467          if (isset($searchtype[$key]) || isset($searchtype['all'])) {
 468              unset($text);
 469              if (file_exists($search_info[$key]['sfile'])) {
 470                  $pre_title = ($search_info[$key]['pre_title'] == 2) ? $search_info[$key]['pre_title_alt'] : $search_info[$key]['pre_title'];
 471                  $search_chars = $search_info[$key]['chars'];
 472                  $search_res = $search_info[$key]['results'];
 473                  @require_once($search_info[$key]['sfile']);
 474                  $parms = $results.",".$search_res.",".$_GET['r'].",".e_SELF."?q=".$_GET['q']."&t=".$key."&r=[FROM]";
 475                  $core_parms = array('r' => '', 'q' => '', 't' => '', 's' => '');
 476                  foreach ($_GET as $pparm_key => $pparm_value) {
 477                      if (!isset($core_parms[$pparm_key])) {
 478                          $parms .= "&".$pparm_key."=".$_GET[$pparm_key];
 479                      }
 480                  }
 481                  if ($results > $search_res) {
 482                      $nextprev = ($results > $search_res) ? $tp -> parseTemplate("{NEXTPREV={$parms}}") : "";
 483                      $text .= "<div class='nextprev' style='text-align: center'>".$nextprev."</div>";
 484                  }
 485                  if ($results > 0) {
 486                      $res_from = $_GET['r'] + 1;
 487                      $res_to = ($_GET['r'] + $search_res) > $results ? $results : ($_GET['r'] + $search_res);
 488                      $res_display = $res_from." - ".$res_to." ".LAN_SEARCH_12." ".$results;
 489                  } else {
 490                      $res_display = "";
 491                  }
 492                  $ns->tablerender(LAN_SEARCH_11." ".$res_display." ".LAN_SEARCH_13." ".(isset($_GET[$advanced_caption['id']]) ? $advanced_caption['title'][$_GET[$advanced_caption['id']]] : $search_info[$key]['qtype']), $text);
 493              }
 494          }
 495      }
 496  }
 497  
 498  // old 6xx search parser for reverse compatability
 499  function parsesearch($text, $match) {
 500      $text = strip_tags($text);
 501      $temp = stristr($text, $match);
 502      $pos = strlen($text) - strlen($temp);
 503      $matchedText = substr($text,$pos,strlen($match));
 504      if ($pos < 70) {
 505          $text = "...".substr($text, 0, 100)."...";
 506      } else {
 507          $text = "...".substr($text, ($pos-50), $pos+30)."...";
 508      }
 509      $text = preg_replace("/".$match."/i", "<span class='searchhighlight'>".$matchedText."</span>", $text);
 510      return($text);
 511  }
 512  
 513  function headerjs() {
 514      global $search_count, $google_id, $search_prefs, $js_adv, $search_info;
 515      if ($search_prefs['selector'] == 1) {
 516          
 517          $types = array_keys($search_info);
 518          $types = implode("', '", $types);
 519          
 520          $script = "<script type='text/javascript'>
 521          <!--
 522          var i;
 523          var stypes = new Array('".$types."');
 524          
 525  		function checkAll(allbox) {
 526              for (var i in stypes)
 527              document.getElementById('searchform')[\"t[\" + stypes[i] + \"]\"].checked = true ;
 528              uncheckG();
 529          }
 530  
 531  		function uncheckAll(allbox) {
 532              for (var i in stypes)
 533              document.getElementById('searchform')[\"t[\" + stypes[i] + \"]\"].checked = false ;
 534          }\n";
 535  
 536          if (check_class($search_prefs['google'])) {
 537          $script .= "
 538  		function uncheckG() {
 539              document.getElementById('searchform')[\"t[".$google_id."]\"].checked = false ;
 540          }\n";
 541          }
 542  
 543          $script .= "// -->
 544          </script>";
 545  
 546      }
 547  
 548      $script .= "<script type='text/javascript'>
 549      <!--
 550      function ab() {
 551          abid = document.getElementById('t').value;
 552          if (abid != 'all'".$js_adv.") {
 553              document.getElementById('advanced_type').style.display = '';
 554          } else {
 555              document.getElementById('advanced_type').style.display = 'none';
 556          }
 557      }
 558      //-->
 559      </script>";
 560  
 561      return $script;
 562  }
 563  
 564  require_once(FOOTERF);
 565  
 566  ?>


Generated: Mon Mar 12 16:28:38 2012 Cross Reference PHPXref