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. |
|
|
(Beispiel Datei-Icons)
|
Auf das Icon klicken um den Quellcode anzuzeigen |
search.php
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>:
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%"> </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%"> </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>:
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
097 <INPUT TYPE="radio" name="sortby" value="t.topic_title">Topics
098
099 <INPUT TYPE="radio" name="sortby" value="f.forum_name">Forum
100
101 <INPUT TYPE="radio" name="sortby" value="u.username">Username
102
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!"> <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