?
Path : /home/admin/public_html/old/happyezystyle/board/Sources/ |
Current File : /home/admin/public_html/old/happyezystyle/board/Sources/Notify.php |
<?php /********************************************************************************** * Notify.php * *********************************************************************************** * SMF: Simple Machines Forum * * Open-Source Project Inspired by Zef Hemel (zef@zefhemel.com) * * =============================================================================== * * Software Version: SMF 2.0 RC1 * * Software by: Simple Machines (http://www.simplemachines.org) * * Copyright 2006-2009 by: Simple Machines LLC (http://www.simplemachines.org) * * 2001-2006 by: Lewis Media (http://www.lewismedia.com) * * Support, News, Updates at: http://www.simplemachines.org * *********************************************************************************** * This program is free software; you may redistribute it and/or modify it under * * the terms of the provided license as published by Simple Machines LLC. * * * * This program is distributed in the hope that it is and will be useful, but * * WITHOUT ANY WARRANTIES; without even any implied warranty of MERCHANTABILITY * * or FITNESS FOR A PARTICULAR PURPOSE. * * * * See the "license.txt" file for details of the Simple Machines license. * * The latest version can always be found at http://www.simplemachines.org. * **********************************************************************************/ 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']); } ?>