<?php
/**
*
* @package Icy Phoenix
* @version $Id: forum.php 101 2009-05-16 16:03:40Z Mighty Gorgon $
* @copyright (c) 2008 Icy Phoenix
* @license
http://opensource.org/licenses/GPL-license.php GNU Public License
*
*/
/**
*
* @Icy Phoenix is based on phpBB
* @copyright (c) 2008 phpBB Group
*
*/
define('IN_ICYPHOENIX', true);
if (!defined('IP_ROOT_PATH')) define('IP_ROOT_PATH', './');
if (!defined('PHP_EXT')) define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
include(IP_ROOT_PATH . 'common.' . PHP_EXT);
include_once(IP_ROOT_PATH . 'includes/functions_groups.' . PHP_EXT);
// Start session management
$userdata = session_pagestart($user_ip);
init_userprefs($userdata);
// End session management
// Activity - BEGIN
//if (defined('ACTIVITY_MOD'))
if (defined('ACTIVITY_MOD') && (ACTIVITY_MOD == true))
{
include(IP_ROOT_PATH . ACTIVITY_MOD_PATH . 'includes/functions_amod_index.' . PHP_EXT);
}
// Activity - END
//<!-- BEGIN Unread Post Information to Database Mod -->
$mark_always_read = request_var('always_read', '');
$mark_forum_id = request_var('forum_id', 0);
if($userdata['upi2db_access'])
{
$always_read_topics_string = explode(',', $unread['always_read']['topics']);
$always_read_forums_string = explode(',', $unread['always_read']['forums']);
if (!empty($mark_always_read))
{
$mark_always_read_text = always_read_forum($mark_forum_id, $mark_always_read);
$redirect_url = append_sid(FORUM_MG);
meta_refresh(3, $redirect_url);
$message = $mark_always_read_text . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid(FORUM_MG) . '">', '</a> ');
message_die(GENERAL_MESSAGE, $message);
}
}
//<!-- END Unread Post Information to Database Mod -->
$cms_page_id = 'forum';
$cms_page_nav = (!empty($cms_config_layouts[$cms_page_id]['page_nav']) ? true : false);
$cms_global_blocks = (!empty($cms_config_layouts[$cms_page_id]['global_blocks']) ? true : false);
$cms_auth_level = (isset($cms_config_layouts[$cms_page_id]['view']) ? $cms_config_layouts[$cms_page_id]['view'] : AUTH_ALL);
check_page_auth($cms_page_id, $cms_auth_level);
require(IP_ROOT_PATH . 'language/lang_' . $board_config['default_lang'] . '/lang_main_link.' . PHP_EXT);
$viewcat = (!empty($_GET[POST_CAT_URL])) ? $_GET[POST_CAT_URL] : -1;
$viewcat = intval($viewcat);
if ($viewcat <= 0) $viewcat = -1;
$viewcatkey = ($viewcat < 0) ? 'Root' : POST_CAT_URL . $viewcat;
if(isset($_GET['mark']) || isset($_POST['mark']))
{
$mark_read = (isset($_POST['mark'])) ? $_POST['mark'] : $_GET['mark'];
}
else
{
$mark_read = '';
}
// Handle marking posts
if($mark_read == 'forums')
{
if ($viewcat < 0)
{
if($userdata['session_logged_in'])
{
// 60 days limit
if ($userdata['user_lastvisit'] < (time() - 5184000))
{
$userdata['user_lastvisit'] = time() - 5184000;
}
//setcookie($board_config['cookie_name'] . '_f_all', time(), 0, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']);
//<!-- BEGIN Unread Post Information to Database Mod -->
if(!$userdata['upi2db_access'])
{
setcookie($board_config['cookie_name'] . '_f_all', time(), 0, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']);
}
else
{
marking_posts();
}
//<!-- END Unread Post Information to Database Mod -->
}
$redirect_url = append_sid(FORUM_MG);
meta_refresh(3, $redirect_url);
}
else
{
if($userdata['session_logged_in'])
{
// get the list of object authorized
$keys = array();
$keys = get_auth_keys($viewcatkey);
// mark each forums
for ($i = 0; $i < count($keys['id']); $i++) if ($tree['type'][ $keys['idx'][$i] ] == POST_FORUM_URL)
{
$forum_id = $tree['id'][ $keys['idx'][$i] ];
$sql = "SELECT MAX(post_time) AS last_post FROM " . POSTS_TABLE . " WHERE forum_id = '" . $forum_id . "'";
if (!($result = $db->sql_query($sql)))
{
message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql);
}
if ($row = $db->sql_fetchrow($result))
{
$tracking_forums = (isset($_COOKIE[$board_config['cookie_name'] . '_f'])) ? unserialize($_COOKIE[$board_config['cookie_name'] . '_f']) : array();
$tracking_topics = (isset($_COOKIE[$board_config['cookie_name'] . '_t'])) ? unserialize($_COOKIE[$board_config['cookie_name'] . '_t']) : array();
if ((count($tracking_forums) + count($tracking_topics)) >= 150 && empty($tracking_forums[$forum_id]))
{
asort($tracking_forums);
unset($tracking_forums[key($tracking_forums)]);
}
if ($row['last_post'] > $userdata['user_lastvisit'])
{
$tracking_forums[$forum_id] = time();
setcookie($board_config['cookie_name'] . '_f', serialize($tracking_forums), 0, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']);
}
}
}
}
$redirect_url = append_sid(FORUM_MG . '?' . POST_CAT_URL . '=' . $viewcat);
meta_refresh(3, $redirect_url);
}
$message = $lang['Forums_marked_read'] . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid(FORUM_MG) . '">', '</a> ');
message_die(GENERAL_MESSAGE, $message);
}
// End handle marking posts