|
From: Paul S. O. <ps...@us...> - 2002-04-20 22:56:13
|
Update of /cvsroot/phpbb/phpBB2
In directory usw-pr-cvs1:/tmp/cvs-serv10218
Modified Files:
common.php viewforum.php
Log Message:
Forum watch stuff ... just copied the topic watch stuff and thus needs reviewing inline with everything else ... but something needed to be added to 2.1 :)
Index: common.php
===================================================================
RCS file: /cvsroot/phpbb/phpBB2/common.php,v
retrieving revision 1.75
retrieving revision 1.76
diff -C2 -r1.75 -r1.76
*** common.php 20 Apr 2002 00:22:27 -0000 1.75
--- common.php 20 Apr 2002 22:56:09 -0000 1.76
***************
*** 200,203 ****
--- 200,204 ----
define('DISALLOW_TABLE', $table_prefix.'disallow');
define('FORUMS_TABLE', $table_prefix.'forums');
+ define('FORUMS_WATCH_TABLE', $table_prefix.'forums_watch');
define('GROUPS_TABLE', $table_prefix.'groups');
define('POSTS_TABLE', $table_prefix.'posts');
Index: viewforum.php
===================================================================
RCS file: /cvsroot/phpbb/phpBB2/viewforum.php,v
retrieving revision 1.140
retrieving revision 1.141
diff -C2 -r1.140 -r1.141
*** viewforum.php 20 Apr 2002 00:22:28 -0000 1.140
--- viewforum.php 20 Apr 2002 22:56:09 -0000 1.141
***************
*** 119,122 ****
--- 119,228 ----
//
+ // Is user watching this thread?
+ //
+ if( $userdata['session_logged_in'] )
+ {
+ $can_watch_forum = TRUE;
+
+ $sql = "SELECT notify_status
+ FROM " . FORUMS_WATCH_TABLE . "
+ WHERE forum_id = $forum_id
+ AND user_id = " . $userdata['user_id'];
+ if ( !($result = $db->sql_query($sql)) )
+ {
+ message_die(GENERAL_ERROR, "Could not obtain forum watch information", '', __LINE__, __FILE__, $sql);
+ }
+
+ if ( $row = $db->sql_fetchrow($result) )
+ {
+ if ( isset($HTTP_GET_VARS['unwatch']) )
+ {
+ if ( $HTTP_GET_VARS['unwatch'] == 'forum' )
+ {
+ $is_watching_forum = 0;
+
+ $sql_priority = (SQL_LAYER == "mysql") ? "LOW_PRIORITY" : '';
+ $sql = "DELETE $sql_priority FROM " . FORUMS_WATCH_TABLE . "
+ WHERE forum_id = $forum_id
+ AND user_id = " . $userdata['user_id'];
+ if ( !($result = $db->sql_query($sql)) )
+ {
+ message_die(GENERAL_ERROR, "Could not delete forum watch information", '', __LINE__, __FILE__, $sql);
+ }
+ }
+
+ $template->assign_vars(array(
+ 'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&start=$start") . '">')
+ );
+
+ $message = $lang['No_longer_watching_forum'] . '<br /><br />' . sprintf($lang['Click_return_forum'], '<a href="' . append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&start=$start") . '">', '</a>');
+ message_die(GENERAL_MESSAGE, $message);
+ }
+ else
+ {
+ $is_watching_forum = TRUE;
+
+ if ( $row['notify_status'] )
+ {
+ $sql_priority = (SQL_LAYER == "mysql") ? "LOW_PRIORITY" : '';
+ $sql = "UPDATE $sql_priority " . FORUM_WATCH_TABLE . "
+ SET notify_status = 0
+ WHERE forum_id = $forum_id
+ AND user_id = " . $userdata['user_id'];
+ if ( !($result = $db->sql_query($sql)) )
+ {
+ message_die(GENERAL_ERROR, "Could not update forum watch information", '', __LINE__, __FILE__, $sql);
+ }
+ }
+ }
+ }
+ else
+ {
+ if ( isset($HTTP_GET_VARS['watch']) )
+ {
+ if ( $HTTP_GET_VARS['watch'] == 'forum' )
+ {
+ $is_watching_forum = TRUE;
+
+ $sql_priority = (SQL_LAYER == "mysql") ? "LOW_PRIORITY" : '';
+ $sql = "INSERT $sql_priority INTO " . FORUMS_WATCH_TABLE . " (user_id, forum_id, notify_status)
+ VALUES (" . $userdata['user_id'] . ", $forum_id, 0)";
+ if ( !($result = $db->sql_query($sql)) )
+ {
+ message_die(GENERAL_ERROR, "Could not insert forum watch information", '', __LINE__, __FILE__, $sql);
+ }
+ }
+
+ $template->assign_vars(array(
+ 'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&start=$start") . '">')
+ );
+
+ $message = $lang['You_are_watching_forum'] . '<br /><br />' . sprintf($lang['Click_return_forum'], '<a href="' . append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&start=$start") . '">', '</a>');
+ message_die(GENERAL_MESSAGE, $message);
+ }
+ else
+ {
+ $is_watching_forum = 0;
+ }
+ }
+ }
+ else
+ {
+ if ( isset($HTTP_GET_VARS['unwatch']) )
+ {
+ if ( $HTTP_GET_VARS['unwatch'] == 'forum' )
+ {
+ $header_location = ( @preg_match("/Microsoft|WebSTAR|Xitami/", getenv("SERVER_SOFTWARE")) ) ? "Refresh: 0; URL=" : "Location: ";
+ header($header_location . append_sid("login.$phpEx?redirect=viewforum.$phpEx&" . POST_FORUM_URL . "=$forum_id&unwatch=forum", true));
+ }
+ }
+ else
+ {
+ $can_watch_forum = 0;
+ $is_watching_forum = 0;
+ }
+ }
+
+ //
// Handle marking posts
//
***************
*** 376,379 ****
--- 482,502 ----
}
+ $s_watching_forum = '';
+ if ( $can_watch_forum )
+ {
+ if ( $is_watching_forum )
+ {
+ $watch_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&unwatch=forum&start=$start");
+ $s_watching_forum = '<a href="' . $watch_url . '">' . $lang['Stop_watching_forum'] . '</a>';
+ $s_watching_forum_img = ( isset($images['Forum_un_watch']) ) ? '<a href="' . $watch_url . '"><img src="' . $images['Forum_un_watch'] . '" alt="' . $lang['Stop_watching_forum'] . '" title="' . $lang['Stop_watching_forum'] . '" border="0"></a>' : '';
+ }
+ else
+ {
+ $watch_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&watch=forum&start=$start");
+ $s_watching_forum = '<a href="' . $watch_url . '">' . $lang['Start_watching_forum'] . '</a>';
+ $s_watching_forum_img = ( isset($images['Forum_watch']) ) ? '<a href="' . $watch_url . '"><img src="' . $images['Forum_watch'] . '" alt="' . $lang['Stop_watching_forum'] . '" title="' . $lang['Start_watching_forum'] . '" border="0"></a>' : '';
+ }
+ }
+
//
// Mozilla navigation bar
***************
*** 433,436 ****
--- 556,560 ----
'S_AUTH_LIST' => $s_auth_can,
+ 'S_WATCH_FORUM' => $s_watching_forum,
'U_VIEW_FORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL ."=$forum_id"),
|