Server IP : 180.180.241.3 / Your IP : 216.73.216.252 Web Server : Microsoft-IIS/7.5 System : Windows NT NETWORK-NHRC 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 User : IUSR ( 0) PHP Version : 5.3.28 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /AppServ/www/app/webroot/news/forum/Sources/ |
Upload File : |
<?php /** * Simple Machines Forum (SMF) * * @package SMF * @author Simple Machines http://www.simplemachines.org * @copyright 2011 Simple Machines * @license http://www.simplemachines.org/about/smf/license.php BSD * * @version 2.0 */ if (!defined('SMF')) die('Hacking attempt...'); /* This file contains just the functions that turn on and off notifications to topics or boards. The following two functions are included: void Notify() - is called to turn off/on notification for a particular topic. - must be called with a topic specified in the URL. - uses the Notify template (main sub template.) when called with no sa. - the sub action can be 'on', 'off', or nothing for what to do. - requires the mark_any_notify permission. - upon successful completion of action will direct user back to topic. - is accessed via ?action=notify. void BoardNotify() - is called to turn off/on notification for a particular board. - must be called with a board specified in the URL. - uses the Notify template. (notify_board sub template.) - only uses the template if no sub action is used. (on/off) - requires the mark_notify permission. - redirects the user back to the board after it is done. - is accessed via ?action=notifyboard. */ // Turn on/off notifications... function Notify() { global $scripturl, $txt, $topic, $user_info, $context, $smcFunc; // Make sure they aren't a guest or something - guests can't really receive notifications! is_not_guest(); isAllowedTo('mark_any_notify'); // Make sure the topic has been specified. if (empty($topic)) fatal_lang_error('not_a_topic', false); // What do we do? Better ask if they didn't say.. if (empty($_GET['sa'])) { // Load the template, but only if it is needed. loadTemplate('Notify'); // Find out if they have notification set for this topic already. $request = $smcFunc['db_query']('', ' SELECT id_member FROM {db_prefix}log_notify WHERE id_member = {int:current_member} AND id_topic = {int:current_topic} LIMIT 1', array( 'current_member' => $user_info['id'], 'current_topic' => $topic, ) ); $context['notification_set'] = $smcFunc['db_num_rows']($request) != 0; $smcFunc['db_free_result']($request); // Set the template variables... $context['topic_href'] = $scripturl . '?topic=' . $topic . '.' . $_REQUEST['start']; $context['start'] = $_REQUEST['start']; $context['page_title'] = $txt['notification']; return; } elseif ($_GET['sa'] == 'on') { checkSession('get'); // Attempt to turn notifications on. $smcFunc['db_insert']('ignore', '{db_prefix}log_notify', array('id_member' => 'int', 'id_topic' => 'int'), array($user_info['id'], $topic), array('id_member', 'id_topic') ); } else { checkSession('get'); // Just turn notifications off. $smcFunc['db_query']('', ' DELETE FROM {db_prefix}log_notify WHERE id_member = {int:current_member} AND id_topic = {int:current_topic}', array( 'current_member' => $user_info['id'], 'current_topic' => $topic, ) ); } // Send them back to the topic. redirectexit('topic=' . $topic . '.' . $_REQUEST['start']); } function BoardNotify() { global $scripturl, $txt, $board, $user_info, $context, $smcFunc; // Permissions are an important part of anything ;). is_not_guest(); isAllowedTo('mark_notify'); // You have to specify a board to turn notifications on! if (empty($board)) fatal_lang_error('no_board', false); // No subaction: find out what to do. if (empty($_GET['sa'])) { // We're gonna need the notify template... loadTemplate('Notify'); // Find out if they have notification set for this topic already. $request = $smcFunc['db_query']('', ' SELECT id_member FROM {db_prefix}log_notify WHERE id_member = {int:current_member} AND id_board = {int:current_board} LIMIT 1', array( 'current_board' => $board, 'current_member' => $user_info['id'], ) ); $context['notification_set'] = $smcFunc['db_num_rows']($request) != 0; $smcFunc['db_free_result']($request); // Set the template variables... $context['board_href'] = $scripturl . '?board=' . $board . '.' . $_REQUEST['start']; $context['start'] = $_REQUEST['start']; $context['page_title'] = $txt['notification']; $context['sub_template'] = 'notify_board'; return; } // Turn the board level notification on.... elseif ($_GET['sa'] == 'on') { checkSession('get'); // Turn notification on. (note this just blows smoke if it's already on.) $smcFunc['db_insert']('ignore', '{db_prefix}log_notify', array('id_member' => 'int', 'id_board' => 'int'), array($user_info['id'], $board), array('id_member', 'id_board') ); } // ...or off? else { checkSession('get'); // Turn notification off for this board. $smcFunc['db_query']('', ' DELETE FROM {db_prefix}log_notify WHERE id_member = {int:current_member} AND id_board = {int:current_board}', array( 'current_board' => $board, 'current_member' => $user_info['id'], ) ); } // Back to the board! redirectexit('board=' . $board . '.' . $_REQUEST['start']); } ?>