Verzeichnisstruktur phpBB-1.0.0


Veröffentlicht
15.12.2000

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

      (Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

search.php

Zuletzt modifiziert: 09.10.2024, 12:50 - Dateigröße: 8.23 KiB


 001  <?php
 002  /***************************************************************************
 003                            search.php  -  description
 004                               -------------------
 005      begin                : Sat June 17 2000
 006      copyright        : (C) 2000 by James Atkinson
 007      email                : james@totalgeek.org
 008   
 009      $Id: search.php,v 1.8 2000/11/29 05:52:28 thefinn Exp $
 010      
 011   ***************************************************************************/
 012   
 013  /***************************************************************************
 014   *
 015   *   This program is free software; you can redistribute it and/or modify
 016   *   it under the terms of the GNU General Public License as published by
 017   *   the Free Software Foundation; either version 2 of the License, or
 018   *   (at your option) any later version.
 019   *
 020   ***************************************************************************/
 021  include('extention.inc');
 022  include('functions.'.$phpEx);
 023  include('config.'.$phpEx);
 024  require('auth.'.$phpEx);
 025  $pagetitle = "Search Page";
 026  $pagetype = "other";
 027  include('page_header.'.$phpEx);
 028   
 029  if(!$submit)
 030  {
 031  ?>
 032  <FORM NAME="Search" ACTION="<?php echo $PHP_SELF; ?>" METHOD="POST">
 033  <TABLE BORDER="0" CELLPADDING="1" CELLSPACING="0" ALIGN="CENTER" VALIGN="TOP" WIDTH="95%">
 034  <TR>
 035      <TD  BGCOLOR="<?php echo $table_bgcolor?>">
 036      <TABLE BORDER="0" CELLPADDING="1" CELLSPACING="1" WIDTH="100%" BGCOLOR="<?php echo $color1; ?>">
 037      <TR>
 038      <TD BGCOLOR="<?php echo $color1?>" WIDTH="50%" ALIGN="RIGHT">
 039          <b>Keyword</b>:&nbsp;
 040      </TD>
 041      <TD BGCOLOR="<?php echo $color2?>" WIDTH="50%">
 042          <INPUT TYPE="text" name="term">
 043      </TD>
 044      </TR>
 045      <TR>
 046      <TD BGCOLOR="<?php echo $color1?>" WIDTH="50%">&nbsp;</TD>
 047      <TD BGCOLOR="<?php echo $color2?>" WIDTH="50%">
 048          <INPUT TYPE="radio" name="addterms" value="any" CHECKED>
 049          <font size=-2>Search for ANY of the terms (Default)
 050      </TD>
 051      </TR>
 052      <TR>
 053      <TD BGCOLOR="<?php echo $color1?>" WIDTH="50%">&nbsp;</TD>
 054      <TD BGCOLOR="<?php echo $color2?>" WIDTH="50%">
 055          <INPUT TYPE="radio" name="addterms" value="all">
 056          <font size=-2>Search for ALL of the terms
 057      </TD>
 058      </TR>
 059      <TR>
 060      <TD BGCOLOR="<?php echo $color1?>" WIDTH="50%" ALIGN="RIGHT">
 061          <b>Forum</b>:&nbsp;
 062      </TD>
 063      <TD BGCOLOR="<?php echo $color2?>" WIDTH="50%">
 064          <select name="forum">
 065          <option value="all">Search All Forums</option>
 066          <?php
 067              $query = "SELECT forum_name,forum_id FROM forums WHERE forum_type != 1";
 068              if(!$result = mysql_query($query,$db))
 069              {
 070                  die("<font size=+1>An Error Occured</font><hr>phpBB was unable to query the forums database");
 071              }
 072              while($row = @mysql_fetch_array($result))
 073              {
 074                  echo "<option value=$row[forum_id]>$row[forum_name]</option>";
 075              }
 076          ?>
 077          </select>
 078      </TD>
 079      </TR>
 080      <TR>
 081      <TD BGCOLOR="<?php echo $color1?>" WIDTH="50%" ALIGN="RIGHT">
 082          <?php echo stripslashes("<b>Author\'s Name</b>:")  // This looks stupid but its here so jed's indenting works right with this file!
 083                  ?>
 084      </TD>
 085      <TD BGCOLOR="<?php echo $color2?>" WIDTH="50%">
 086          <INPUT TYPE="text" name="username">
 087      </TD>
 088      </TR>
 089      <TR>
 090      <TD BGCOLOR="<?php echo $color1?>" WIDTH="50%" ALIGN="RIGHT">
 091          <b>Sort by</b>:
 092      </TD>
 093      <TD BGCOLOR="<?php echo $color2?>" WIDTH="50%">
 094      <?php //All values are the fields used to search the database - a table must be specified for each field ?>
 095          <INPUT TYPE="radio" name="sortby" value="p.post_time" CHECKED>Post Time
 096          &nbsp;&nbsp;
 097          <INPUT TYPE="radio" name="sortby" value="t.topic_title">Topics
 098          &nbsp;&nbsp;
 099          <INPUT TYPE="radio" name="sortby" value="f.forum_name">Forum
 100          &nbsp;&nbsp;
 101          <INPUT TYPE="radio" name="sortby" value="u.username">Username
 102          &nbsp;&nbsp;
 103      </TD>
 104      </TR> 
 105   
 106  <?php 
 107  // 25oct00 dsig -add radio to determine what to search title or text or both..default both 
 108  ?> 
 109     <TR> 
 110         <TD BGCOLOR="<?php echo $color1?>" WIDTH="50%" ALIGN="RIGHT"> 
 111          <b>Search In</b>: 
 112             </TD> 
 113          <TD BGCOLOR="<?php echo $color2?>" WIDTH="50%"> 
 114  <?php 
 115  /* 
 116  26oct00 dsig added note on default to change default 'checked' item simply move the 'CHECKED' keyword from one
 117  'radio' to another. 
 118  */ 
 119  ?> 
 120        <INPUT TYPE="radio" name="searchboth" value="both" CHECKED>Title & Text 
 121        <INPUT TYPE="radio" name="searchboth" value="title">Only Title 
 122        <INPUT TYPE="radio" name="searchboth" value="text">Only Text 
 123        </TD> 
 124    </TR>      
 125  </TABLE>
 126   
 127      </TD>
 128  </TR>
 129  </TABLE>
 130  <br>
 131      <CENTER>
 132      <INPUT TYPE="Submit" Name="submit" Value="Search!">&nbsp;&nbsp;<INPUT TYPE="reset" Name="reset" Value="Clear!">
 133      </FORM>
 134      </CENTER>
 135   
 136  <?php
 137  }
 138  else
 139  {
 140   
 141  /**********
 142   Sept 6.
 143   $query is the basis of the query
 144   $addquery is all the additional search fields - necessary because of the WHERE clause in SQL
 145  **********/
 146   
 147  $query = "SELECT u.user_id,f.forum_id,p.topic_id, u.username, p.post_time,t.topic_title,f.forum_name FROM posts p, users u, forums f,topics t";
 148  if(isset($term)&&$term!="")
 149  {
 150      $terms = split(" ",$term);                // Get all the words into an array
 151      $addquery .= "(p.post_text LIKE '%$terms[0]%'";        
 152      $subquery .= "(t.topic_title LIKE '%$terms[0]%'"; 
 153      
 154      if($addterms=="any")                    // AND/OR relates to the ANY or ALL on Search Page
 155          $andor = "OR";
 156      else
 157          $andor = "AND";
 158      $size = sizeof($terms);
 159      for($i=1;$i<$size;$i++) {
 160          $addquery.=" $andor p.post_text LIKE '%$terms[$i]%'";
 161          $subquery.=" $andor t.topic_title LIKE '%$terms[$i]%'"; 
 162      }         
 163      $addquery.=")";
 164      $subquery.=")";
 165  }
 166  if(isset($forum)&&$forum!="all")
 167  {
 168      if(isset($addquery)) {
 169         $addquery .=" AND p.forum_id=$forum AND f.forum_id=$forum";
 170         $subquery .=" AND p.forum_id=$forum AND f.forum_id=$forum";
 171      }
 172      else {
 173         $addquery .=" p.forum_id=$forum AND f.forum_id=$forum";
 174         $subquery .=" p.forum_id=$forum AND f.forum_id=$forum";
 175      }
 176  }
 177  if(isset($username)&&$username!="")
 178  {
 179     if(!$result = mysql_query("SELECT user_id FROM users WHERE username='$username'",$db))
 180       {
 181      die("<font size=+1>An Error Occured</font><hr>phpBB was unable to query the forums database");
 182       }
 183     $row = @mysql_fetch_array($result);
 184     if(!$row)
 185       die("That user does not exist.  Please go back and search again.");
 186     $userid = $row[user_id];
 187     if(isset($addquery)) {
 188        $addquery.=" AND p.poster_id=$userid AND u.username='$username'";
 189        $subquery.=" AND p.poster_id=$userid AND u.username='$username'";
 190     }
 191     else {
 192        $addquery.=" p.poster_id=$userid AND u.username='$username'";
 193        $subquery.=" p.poster_id=$userid AND u.username='$username'";
 194     }
 195  }    
 196  if(isset($addquery)) {
 197     switch ($searchboth) { 
 198      case "both" : 
 199        $query .= " WHERE ( $subquery OR $addquery ) AND "; 
 200        break; 
 201      case "title" : 
 202        $query .= " WHERE ( $subquery ) AND "; 
 203        break; 
 204      case "text" : 
 205        $query .= " WHERE ( $addquery ) AND "; 
 206        break; 
 207     }
 208  }
 209  else
 210      $query.=" WHERE ";
 211   
 212     $query.=" p.topic_id = t.topic_id AND p.forum_id = f.forum_id AND p.poster_id = u.user_id ORDER BY $sortby";
 213   
 214      if(!$result = mysql_query($query,$db))
 215      {
 216          die("<font size=+1>An Error Occured</font><hr>phpBB was unable to query the forums database<BR>".mysql_error($db)."<BR>$query");
 217      }
 218   
 219      if(!$row = @mysql_fetch_array($result))
 220      {
 221          die("<br><br><center>No records match that query. Please broaden your search.");
 222      }
 223   
 224  ?>
 225  <TABLE BORDER="0" CELLPADDING="1" CELLSPACING="0" ALIGN="CENTER" VALIGN="TOP" WIDTH="95%"><TR><TD  BGCOLOR="<?php echo $table_bgcolor; ?>">
 226  <TABLE BORDER="0" CELLPADDING="1" CELLSPACING="1" WIDTH="100%">
 227  <TR BGCOLOR="<?php echo $color1?>" ALIGN="LEFT">
 228          <TD ALIGN="CENTER" WIDTH="30%"><font face="Verdana" size="2"><B>Forum</B></font></TD>
 229          <TD ALIGN="CENTER" WIDTH="30%"><font face="Verdana" size="2"><B>Topic</B></font></TD>
 230          <TD ALIGN="CENTER" WIDTH="25%"><font face="Verdana" size="2"><B>Author</B></font></TD>
 231          <TD ALIGN="CENTER" WIDTH="15%"><font face="Verdana" size="2"><B>Posted</B></font></TD>
 232  </TR>
 233  <?php
 234      do {
 235          echo "<TR BGCOLOR=\"$color2\">";
 236          echo "<TD ALIGN=\"CENTER\" WIDTH=\"30%\"><a href=\"viewforum.$phpEx?forum=$row[forum_id]\">". stripslashes($row[forum_name]) . "</a></TD>";
 237          echo "<TD ALIGN=\"CENTER\" WIDTH=\"30%\"><a href=\"viewtopic.$phpEx?topic=$row[topic_id]&forum=$row[forum_id]\">". stripslashes($row[topic_title]) . "</a></TD>";
 238          echo "<TD ALIGN=\"CENTER\" WIDTH=\"25%\"><a href=\"bb_profile.$phpEx?mode=view&user=$row[user_id]\">$row[username]</a></TD>";
 239          echo "<TD ALIGN=\"CENTER\" WIDTH=\"15%\">$row[post_time]</TD>";
 240          echo "</TR>";
 241      }while($row=@mysql_fetch_array($result));
 242  ?>    
 243   
 244  </TABLE>
 245  </TR>
 246  </TR>
 247  </TABLE>
 248  <?php
 249  }
 250      include('page_tail.'.$phpEx);
 251  ?>
 252