Main Page | Directories | File List | File Members

forum/admin/index.php

Go to the documentation of this file.
00001 <?php
00002 // This file is part of the Savane project
00003 // <http://gna.org/projects/savane/>
00004 //
00005 // $Id: index.php 5466 2006-02-21 17:15:23Z toddy $
00006 //
00007 //
00008 //
00009 // modified U.Schwickerath (US), Dec. 2002
00010 // modified M.Hardt, Nov 2003
00011 //
00012 // Copyright 1999-2000 (c) The SourceForge Crew
00013 //
00014 //
00015 //  Copyright 2000-2001 (c) Free Software Foundation
00016 //
00017 // The Savane project is free software; you can redistribute it and/or
00018 // modify it under the terms of the GNU General Public License
00019 // as published by the Free Software Foundation; either version 2
00020 // of the License, or (at your option) any later version.
00021 //
00022 // The Savane project is distributed in the hope that it will be useful,
00023 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00024 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00025 // GNU General Public License for more details.
00026 //
00027 // You should have received a copy of the GNU General Public License
00028 // along with the Savane project; if not, write to the Free Software
00029 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
00030 //
00031 //
00032 //
00033 //
00034 
00035 require "../../include/pre.php";
00036 
00037 // This require seems not to be required anylonger, but sourced from pre.php
00038 // Anyways it wsa changed to 'include/news/forum.php'
00039 
00040 $is_admin_page='y';
00041 
00042 // Don't know if 'F2' is already supported.
00043 // if ($group_id && (user_ismember($group_id, 'F2'))) {
00044 if ($group_id && (user_ismember($group_id, 'A'))) {
00045 
00046         site_project_header(array('group'=>$group_id,'context'=>'aforum'));
00047 
00048         if ($post_changes) {
00049                 /*
00050                         Update the DB to reflect the changes
00051                 */
00052 
00053                 if ($delete) {
00054                         /*
00055                                 Deleting messages or threads
00056                         */
00057 
00058                         /*
00059                                 Get this forum_id, checking to make sure this forum is in this group
00060                         */
00061                         $sql="SELECT forum.group_forum_id FROM forum,forum_group_list WHERE forum.group_forum_id=forum_group_list.group_forum_id ".
00062                                 "AND forum_group_list.group_id='$group_id' AND forum.msg_id='$msg_id'";
00063 
00064                         $result=db_query($sql);
00065 
00066                         if (db_numrows($result) > 0) {
00067                                 recursive_delete($msg_id,db_result($result,0,'group_forum_id'))." messages deleted ";
00068                         } else {
00069                                 " Message not found or message is not in your group ";
00070                         }
00071 
00072                 } else if ($add_forum) {
00073                         /*
00074                                 Adding forums to this group
00075                         */
00076                         forum_create_forum($group_id,$forum_name,$is_public,1,$description);
00077 
00078                 } else if ($change_status) {
00079                         /*
00080                                 Change a forum to public/private
00081                         */
00082                         $sql="UPDATE forum_group_list SET is_public='$is_public',forum_name='". htmlspecialchars($forum_name) ."',".
00083                                 "description='". htmlspecialchars($description) ."' ".
00084                                 "WHERE group_forum_id='$group_forum_id' AND group_id='$group_id'";
00085                         $result=db_query($sql);
00086                         if (!$result || db_affected_rows($result) < 1) {
00087                                 " Error Updating Forum Info ";
00088                         } else {
00089                                 " Forum Info Updated Successfully ";
00090                         }
00091                 } else if ($member_delete) {
00092                         /*
00093                                 remove a member from monitoring the forum
00094                         */
00095                         $sql="DELETE FROM forum_monitored_forums WHERE forum_id = '$forum_number' and user_id = '$member_delete'";
00096                         $result=db_query($sql);
00097                         if (!$result || db_affected_rows($result) < 1) {
00098                                 $feedback .= " Error Removing User";
00099                         } else {
00100                                 $feedback .= " User Removed Successfully ";
00101                         }
00102 
00103                 } else if ($member_add) {
00104                         /*
00105                                 add a member for monitoring the forum
00106                         */
00107 
00108                         $error=0;
00109 
00110                         $sql_u="SELECT user_id FROM user WHERE user_name='$user_name'";
00111                         $result_u=db_query($sql_u);
00112                         $rows_u=db_numrows($result_u);
00113                         if (!$result_u || $rows_u < 1) {
00114                                 echo '
00115                                 <H2>No such user</H2>';
00116                                 $error=1;
00117                         }
00118 
00119                         $user_id=db_result($result_u,0,'user_id');
00120 
00121                         /*                $sql_t="SELECT group_id, user_id from user_group where user_id='$user_id' and group_id='$group_id'";
00122                   $result_t=db_query($sql_t);
00123                   $rows_t=db_numrows($result_t);
00124                   if (!$result_t || $rows_t < 1) {
00125                         echo '
00126                                 <H2>This user is not a member in this project</H2>';
00127                         $feedback .= " Error Adding User ";
00128                         $error=1;
00129                   }
00130                         */
00131 
00132                         $sql_e="SELECT forum_id, user_id from forum_monitored_forums where user_id='$user_id' and forum_id='$forum_number'";
00133                         $result_e=db_query($sql_e);
00134                         $rows_e=db_numrows($result_e);
00135                         if (!$result_e || $rows_e > 0) {
00136                                 echo '
00137                                 <H2>This user is already monitoring this forum</H2>';
00138                                 $feedback .= " Did NOT Add User again";
00139                                 $error=1;
00140                         }
00141 
00142                         if (!$error) {
00143                                 $sql="INSERT INTO forum_monitored_forums (forum_id,user_id) VALUES ('$forum_number','$user_id')";
00144                                 $result=db_query($sql);
00145 
00146                                 if (!$result ) {
00147                                         $feedback .= " Error Adding User ";
00148                                 } else {
00149                                         $feedback .= " User Added ";
00150                                 }
00151                         }
00152                         $manage_members=1;
00153                 }
00154 
00155         }
00156 
00157         if ($delete) {
00158                 /*
00159                         Show page for deleting messages
00160                 */
00161         //      forum_header(array('title'=>'Delete a message'));
00162 
00163                 echo '
00164                         <H2>Delete a message</H2>
00165 
00166                         <p style=error>WARNING! You are about to permanently delete a
00167                         message and all of its followups!</p>
00168                         <FORM METHOD="POST" ACTION="'.$PHP_SELF.'">
00169                         <INPUT TYPE="HIDDEN" NAME="post_changes" VALUE="y">
00170                         <INPUT TYPE="HIDDEN" NAME="delete" VALUE="y">
00171                         <INPUT TYPE="HIDDEN" NAME="group_id" VALUE="'.$group_id.'">
00172                         <strong>Enter the Message ID</strong><BR>
00173                         <INPUT TYPE="TEXT" NAME="msg_id" VALUE="">
00174                         <INPUT TYPE="SUBMIT" NAME="SUBMIT" VALUE="SUBMIT">
00175                         </FORM>';
00176 
00177         //      forum_footer(array());
00178 
00179         } else if ($add_forum) {
00180                 /*
00181                         Show the form for adding forums
00182                 */
00183         //      forum_header(array('title'=>'Add a Forum'));
00184 
00185         //      $sql="SELECT forum_name FROM forum_group_list WHERE group_id='$group_id'";
00186         $sql="SELECT forum_name, description ".
00187             "FROM forum_group_list ".
00188             "LEFT JOIN news_bytes ".
00189             "ON forum_group_list.group_forum_id=news_bytes.forum_id ".
00190             "WHERE news_bytes.forum_id IS  NULL ".
00191             "AND forum_group_list.group_id='$group_id' ";
00192 
00193         echo "sql: $sql<br />";
00194 
00195 
00196                 $result=db_query($sql);
00197                 utils_show_result_set($result,'Existing Forums');
00198 
00199                 echo '
00200                         <P>
00201                         <H2>Add a Forum</H2>
00202 
00203                         <FORM METHOD="POST" ACTION="'.$PHP_SELF.'">
00204                         <INPUT TYPE="HIDDEN" NAME="post_changes" VALUE="y">
00205                         <INPUT TYPE="HIDDEN" NAME="add_forum" VALUE="y">
00206                         <INPUT TYPE="HIDDEN" NAME="group_id" VALUE="'.$group_id.'">
00207                         <strong>Forum Name:</strong><BR>
00208                         <INPUT TYPE="TEXT" NAME="forum_name" VALUE="" SIZE="20" MAXLENGTH="30"><BR>
00209                         <strong>Description:</strong><BR>
00210                         <INPUT TYPE="TEXT" NAME="description" VALUE="" SIZE="40" MAXLENGTH="80"><BR>
00211                         <strong>Is Public?</strong><BR>
00212                         <INPUT TYPE="RADIO" NAME="is_public" VALUE="1" CHECKED> Yes<BR>
00213                         <INPUT TYPE="RADIO" NAME="is_public" VALUE="0"> No<P>
00214                         <P style=error>
00215                         Once you add a forum, it cannot be modified or deleted!
00216       </P>
00217                         <P>
00218                         <INPUT TYPE="SUBMIT" NAME="SUBMIT" VALUE="Add This Forum">
00219       </P>
00220                         </FORM>';
00221 
00222         //      forum_footer(array());
00223 
00224         } else if ($change_status) {
00225                 /*
00226                         Change a forum to public/private
00227                 */
00228         //      forum_header(array('title'=>'Change Forum Status'));
00229 
00230         //      $sql="SELECT * FROM forum_group_list WHERE group_id='$group_id'";
00231         $sql="SELECT forum_group_list.* ".
00232             "FROM forum_group_list ".
00233             "LEFT JOIN news_bytes ".
00234             "ON forum_group_list.group_forum_id=news_bytes.forum_id ".
00235             "WHERE news_bytes.forum_id IS  NULL ".
00236             "AND forum_group_list.group_id='$group_id'";
00237 
00238                 $result=db_query($sql);
00239                 $rows=db_numrows($result);
00240 
00241                 if (!$result || $rows < 1) {
00242                         echo '
00243                                 <H2>No Forums Found</H2>
00244                                 <P>
00245                                 None found for this project';
00246                 } else {
00247                         echo '
00248                         <H2>Update Forum Status</H2>
00249                         <P>
00250                         You can make forums private from here. Please note that private forums
00251                         can still be viewed by members of your project, not the general public.<P>';
00252 
00253                         $title_arr=array();
00254                         $title_arr[]='Forum';
00255                         $title_arr[]='Status';
00256                         $title_arr[]='Update';
00257 
00258                         echo html_build_list_table_top ($title_arr);
00259 
00260                         for ($i=0; $i<$rows; $i++) {
00261                                 echo '
00262                                         <TR BGCOLOR="'. utils_get_alt_row_color($i) .'"><TD>'.db_result($result,$i,'forum_name').'</TD>';
00263                                 echo '
00264                                         <FORM ACTION="'.$PHP_SELF.'" METHOD="POST">
00265                                         <INPUT TYPE="HIDDEN" NAME="post_changes" VALUE="y">
00266                                         <INPUT TYPE="HIDDEN" NAME="change_status" VALUE="y">
00267                                         <INPUT TYPE="HIDDEN" NAME="group_forum_id" VALUE="'.db_result($result,$i,'group_forum_id').'">
00268                                         <INPUT TYPE="HIDDEN" NAME="group_id" VALUE="'.$group_id.'">
00269                                         <TD>
00270                                                 <span class="smaller">
00271                                                 <strong>Is Public?</strong><BR>
00272                                                 <INPUT TYPE="RADIO" NAME="is_public" VALUE="1"'.((db_result($result,$i,'is_public')=='1')?' CHECKED':'').'> Yes<BR>
00273                                                 <INPUT TYPE="RADIO" NAME="is_public" VALUE="0"'.((db_result($result,$i,'is_public')=='0')?' CHECKED':'').'> No<BR>
00274                                                 <INPUT TYPE="RADIO" NAME="is_public" VALUE="9"'.((db_result($result,$i,'is_public')=='9')?' CHECKED':'').'> Deleted<BR>
00275                                                 </span>
00276                                         </TD><TD>
00277                                                 <span class="smaller">
00278                                                 <INPUT TYPE="SUBMIT" NAME="SUBMIT" VALUE="Update Status">
00279                                                 </span>
00280                                         </TD></TR>
00281                                         <TR BGCOLOR="'. utils_get_alt_row_color($i) .'"><TD COLSPAN="3">
00282                                                 <strong>Forum Name:</strong><BR>
00283                                                 <INPUT TYPE="TEXT" NAME="forum_name" VALUE="'. db_result($result,$i,'forum_name').'" SIZE="20" MAXLENGTH="30"><BR>
00284                                                 <strong>Description:</strong><BR>
00285                                                 <INPUT TYPE="TEXT" NAME="description" VALUE="'. db_result($result,$i,'description') .'" SIZE="40" MAXLENGTH="80"><BR>
00286                                         </TD></TR></FORM>';
00287                         }
00288                         echo '</TABLE>';
00289                 }
00290 
00291                 //forum_footer(array());
00292 
00293         } else if ($manage_members) {
00294                 /*
00295                         Change the member of a forum
00296                 */
00297 
00298           if ($forum_number) {
00299             /*
00300                         got the forum id so now we can modify the members
00301             */
00302             forum_header(array('title'=>'Manage Forum Members'));
00303 
00304 #           $sql="SELECT user_id FROM forum_monitored_forums WHERE forum_id='$forum_number'";
00305             $sql="SELECT user_id FROM user_group WHERE group_id='$group_id'";
00306 
00307             $result=db_query($sql);
00308             $rows=db_numrows($result);
00309 
00310 
00311             if (!$result || $rows < 1)
00312                     {
00313                             echo '
00314                                 <H2>Nobody is monitoring this forum</H2>';
00315                     } else {
00316                             echo '<H2>Toggle members\' monitoring status</H2>';
00317                             echo '<TABLE>';
00318 
00319                             for ($i=0; $i<$rows; $i++) {
00320                                     $uid=db_result($result,$i,'user_id');
00321                                     $sql_guy="SELECT user_id, user_name, email, realname FROM user WHERE user_id='$uid'";
00322                                     $result_guy=db_query($sql_guy);
00323                                     $rows_guy=db_numrows($result_guy);
00324                                     if($result_guy && $rows_guy > 0 ) {
00325                                             $sql_yn="SELECT  user_id FROM forum_monitored_forums WHERE forum_id='$forum_number' and user_id='$uid'";
00326                                             $result_yn=db_query($sql_yn);
00327                                             $rows_yn=db_numrows($result_yn);
00328                                             if ($rows_yn == 0) {
00329                                                     echo '<TR><TD> <A HREF="'.$PHP_SELF.'?group_id='.$group_id.'&manage_members=1&forum_number='.$forum_number.'&member_add=1&user_name='.db_result($result_guy,0,'user_name').'&post_changes=1">ADD</A> </TD>';
00330                                             } else {
00331                                                     echo '<TR><TD> <A HREF="'.$PHP_SELF.'?group_id='.$group_id.'&manage_members=1&forum_number='.$forum_number.'&member_delete='.$uid.'&post_changes=1">DEL</A></TD>';
00332                                             }
00333                                             echo '
00334                                    <TD>'.db_result($result_guy,0,'user_name').'</TD>
00335                                    <TD>'.db_result($result_guy,0,'realname').'</TD>
00336                                    </TR>';
00337                                     }
00338                             }
00339                             echo '</TABLE>';
00340                     }
00341 
00342             echo '<H2> Delete non members\' monitoring flag</H2>';
00343             $sql="SELECT  user_id FROM forum_monitored_forums WHERE forum_id='$forum_number'";
00344             $result=db_query($sql);
00345             $rows=db_numrows($result);
00346 
00347             if (!$result || $rows < 1) {
00348                     echo '&nbsp;None';
00349             } else {
00350                     echo '<TABLE>';
00351                     // my shitty code puts a high load on the DB here!!!
00352                     // Either forget about non-member subscriptions or drop this code
00353                     for ($i=0; $i<$rows; $i++) {
00354                             $uid=db_result($result,$i,'user_id');
00355                             $sql_guy="SELECT user_id, user_name, email, realname FROM user WHERE user_id='$uid'";
00356                             $result_guy=db_query($sql_guy);
00357                             $rows_guy=db_numrows($result_guy);
00358                             if($result_guy && $rows_guy > 0 ) {
00359                                     $sql_yn="SELECT user_id FROM user_group WHERE group_id='$group_id' AND user_id='$uid'";
00360                                     $result_yn=db_query($sql_yn);
00361                                     $rows_yn=db_numrows($result_yn);
00362                                     if ($rows_yn == 0) {
00363                                             echo '<TR><TD> <A HREF="'.$PHP_SELF.'?group_id='.$group_id.'&manage_members=1&forum_number='.$forum_number.'&member_delete='.$uid.'&post_changes=1">DEL</A></TD>';
00364                                             echo ' <TD>'.db_result($result_guy,0,'user_name').'</TD>
00365                                    <TD>'.db_result($result_guy,0,'realname').'</TD>
00366                                    </TR>';
00367                                     }
00368                             }
00369                     }
00370                     echo '</TABLE>';
00371             }
00372 
00373             echo '<H2> Add non members </H2>
00374                         <FORM METHOD="POST" ACTION="'.$PHP_SELF.'">
00375                         <INPUT TYPE="HIDDEN" NAME="post_changes" VALUE="y">
00376                         <INPUT TYPE="HIDDEN" NAME="member_add" VALUE="1">
00377                         <INPUT TYPE="HIDDEN" NAME="group_id" VALUE="'.$group_id.'">
00378                         <INPUT TYPE="HIDDEN" NAME="forum_number" VALUE="'.$forum_number.'">
00379                         Enter User Name<BR>
00380                         <INPUT TYPE="TEXT" NAME="user_name" VALUE="">
00381                         <INPUT TYPE="SUBMIT" NAME="SUBMIT" VALUE="ADD">
00382                         </FORM>';
00383 
00384           } else {
00385 
00386                   forum_header(array('title'=>'Select Forum'));
00387 
00388                   //$sql="SELECT * FROM forum_group_list WHERE group_id='$group_id'";
00389           $sql="SELECT forum_group_list.* ".
00390               "FROM forum_group_list ".
00391               "LEFT JOIN news_bytes ".
00392               "ON forum_group_list.group_forum_id=news_bytes.forum_id ".
00393               "WHERE news_bytes.forum_id IS  NULL ".
00394               "AND forum_group_list.group_id='$group_id' ";
00395                           $result=db_query($sql);
00396                   $rows=db_numrows($result);
00397 
00398                   if (!$result || $rows < 1) {
00399                           echo '
00400                                 <H2>No Forums Found</H2>
00401                                 <P>
00402                                 None found for this project';
00403                   } else {
00404                           echo '
00405                         <H2>Pick a Forum </H2>
00406                         <P>';
00407                           echo '<TABLE>';
00408 
00409                           for ($i=0; $i<$rows; $i++)
00410                                   echo '<A HREF="'.$PHP_SELF.'?group_id='.$group_id.'&manage_members=1&forum_number='.db_result($result,$i,'group_forum_id').'">'.db_result($result,$i,'forum_name').'</A><BR>';
00411 
00412                           echo '</TABLE>';
00413 
00414                   }
00415           }
00416 
00417         } else {
00418                 /*
00419                         Show main page for choosing
00420                         either moderotor or delete
00421                 */
00422                 //site_project_header(array('group'=>$group_id,'context'=>'aforum'));
00423 
00424 
00425                 echo '
00426                         <H2>Forum Administration</H2>
00427                         <P>
00428                         <H3><A HREF="'.$PHP_SELF.'?group_id='.$group_id.'&add_forum=1">Add Forum</A></H3>
00429                         Create a new discussion forum.<br />
00430                         <H3><A HREF="'.$PHP_SELF.'?group_id='.$group_id.'&delete=1">Delete Message</A></H3>
00431                         Delete Forum entries and News items here, if you know the message ID.<br />
00432                         <H3><A HREF="'.$PHP_SELF.'?group_id='.$group_id.'&change_status=1">Update Forum Info/Status</A></H3>
00433                         Change Forum names, desription and switch between public and private.
00434                         <H3><A HREF="'.$PHP_SELF.'?group_id='.$group_id.'&manage_members=1">Manage Forum Members</A></H3>
00435                         Subscribe and unsubscribe Members and Users to a Forum';
00436 
00437 
00438                 //forum_footer(array());
00439         }
00440         forum_footer(array());
00441 
00442 } else {
00443         /*
00444                 Not logged in or insufficient privileges
00445         */
00446         if (!$group_id) {
00447                 exit_no_group();
00448         } else {
00449                 exit_permission_denied();
00450         }
00451         forum_footer(array());
00452 }
00453 ?>

Generated on Sun Feb 26 13:23:04 2006 for Savane PHP Frontend Developer Reference by  doxygen 1.4.4