/*********************************************
*	Calendar Lite
*
*	$Author: administrator $
*	$Date: 2003/10/13 12:06:57 $
*	$Revision: 1.1.2.1 $
*
*********************************************/

############################################################## 
## Mod Title: 	Calendar 
## Mod Version: 1.4.2 
## Author: 	WebSnail < Martin Smallridge >
## SUPPORT: 	http://www.snailsource.com/forum/ 
## Description: Add-on, plug-in Calendar for phpBB2 
## 
## Installation Level: moderate) 
## Installation Time: 10 Minutes 
## Files To Edit: 
##		admin/admin_ug_auth.php, 
##		includes/page_header.php
##		includes/functions.php
##		templates/xxx/admin/auth_ug_body.tpl
##		templates/xxx/admin/overall_header.tpl
##
## NOTE: Please read readme.txt
##############################################################
## This MOD is released under the GPL License. 
## Intellectual Property is retained by the MOD Author(s) listed above 
############################################################## 
## Please note that this MOD is NOT listed on phpBB.com's main
## site and should under no circumstances be trusted as secure
## and genuine unless downloaded from the Snailsource.com web
## site.
##############################################################
 
############################################################## 
## Before Adding This MOD To Your Forum, You Should Back Up ALL Files Related To This MOD 
############################################################## 

# 
#-----[ OPEN admin/admin_ug_auth.php]------------------------------------------ 
#

# 
#-----[ FIND ]------------------------------------------ 
# 

$params = array('mode' => 'mode', 'user_id' => POST_USERS_URL, 'group_id' => POST_GROUPS_URL, 


# 
#-----[ AFTER, INSERT IN LINE ]------------------------------------------ 
# 

'callevel' => 'callevel'


#####--------------------
# NOTE:
#
#	So the line should look something like this:
#	--------------------------------------------
#
#	$params = array('mode' => 'mode', 'user_id' => POST_USERS_URL, 'group_id' => POST_GROUPS_URL, 'adv' => 'adv', 'callevel' => 'callevel');
#


# 
#-----[ FIND ]------------------------------------------ 
# 

while( list($var, $param) = @each($params) )
{
	if ( !empty($HTTP_POST_VARS[$param]) || !empty($HTTP_GET_VARS[$param]) )
	{
		$$var = ( !empty($HTTP_POST_VARS[$param]) ) ? $HTTP_POST_VARS[$param] : $HTTP_GET_VARS[$param];
	}
	else
	{
		$$var = "";
	}
}

# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 

while( list($var, $param) = @each($params) )
{
	if ( isset($HTTP_POST_VARS[$param]) || isset($HTTP_GET_VARS[$param]) )
	{
		$$var = ( isset($HTTP_POST_VARS[$param]) ) ? $HTTP_POST_VARS[$param] : $HTTP_GET_VARS[$param];
	}
	else
	{
		$$var = "";
	}
}



# 
#-----[ FIND ]------------------------------------------ 
# 

if ( isset($HTTP_POST_VARS['submit']) && ( ( $mode == 'user' && $user_id ) || ( $mode == 'group' && $group_id ) ) )
{
	$user_level = '';
	if ( $mode == 'user' )
	{
		//
		// Get group_id for this user_id
		//
		$sql = "SELECT g.group_id, u.user_level
			FROM " . USER_GROUP_TABLE . " ug, " . USERS_TABLE . " u, " . GROUPS_TABLE . " g
			WHERE u.user_id = $user_id 
				AND ug.user_id = u.user_id 
				AND g.group_id = ug.group_id 
				AND g.group_single_user = " . TRUE;
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not select info from user/user_group table', '', __LINE__, __FILE__, $sql);
		}

		$row = $db->sql_fetchrow($result);

		$group_id = $row['group_id'];
		$user_level = $row['user_level'];

		$db->sql_freeresult($result);
	}

# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 

	// 
	// MOD Calendar
	// Carry out update request for calendar
	if ( $mode == 'user' && ($callevel || $callevel == '0')) {
		$sql = "UPDATE ". USERS_TABLE ." SET user_calendar_perm = ". $callevel
			." WHERE user_id = $user_id";
		}
	if ( $mode == 'group' && ($callevel || $callevel == '0')) {
		$sql = "UPDATE ". GROUPS_TABLE ." SET group_calendar_perm = ". $callevel
			." WHERE group_id = $group_id";
		}
	if ( !($result = $db->sql_query($sql)) ) {
		message_die(GENERAL_ERROR, 'Could not update Calendar level', '', __LINE__, __FILE__, $sql);
		}
	// END Mod Calendar



# 
#-----[ FIND ]------------------------------------------ 
# 

	if ( $mode == 'user' )
	{
		$t_username = $ug_info[0]['username'];
		$s_user_type = ( $is_admin ) ? '<select name="userlevel"><option value="admin" selected="selected">' . $lang['Auth_Admin'] . '</option><option value="user">' . $lang['Auth_User'] . '</option></select>' : '<select name="userlevel"><option value="admin">' . $lang['Auth_Admin'] . '</option><option value="user" selected="selected">' . $lang['Auth_User'] . '</option></select>';
	}
	else
	{
		$t_groupname = $ug_info[0]['group_name'];
	}

# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 

	// MOD Calendar
	// Query the appropriate table database re: group or user permissions.

	if ( $mode == 'user' )
	{
		// Check the Users record
		$sql = "SELECT user_calendar_perm FROM ". $table_prefix ."users WHERE user_id = $user_id";
	}
	else {
		// Check Group
		$sql = "SELECT group_calendar_perm FROM ". $table_prefix ."groups WHERE group_id = $group_id";
	}
	$result = $db->sql_query($sql);
	if (!$result) { 
	   message_die(GENERAL_MESSAGE, 'Could not access the Calendar Permission for User'); 
	} 
	$user_temp = $db->sql_fetchrow($result);
	if ($mode == 'user') {
		$cal_perm = $user_temp['user_calendar_perm'];
		}
	else {
		$cal_perm = $user_temp['group_calendar_perm'];
		}
	if (!$cal_perm && $cal_perm !='0')	{
		message_die(GENERAL_MESSAGE, 'Calendar Permissions Unavailable (ERR: ug_auth)');
		}
	$cal_levels[0] = 'No public access';
	$cal_levels[1] = 'View only';
	$cal_levels[2] = 'View,Suggest Events';
	$cal_levels[3] = 'View,Add Events';
	$cal_levels[4] = 'View,Add (Edit/Delete own)';
	$cal_levels[5] = 'Calendar Admin';
	$s_cal_type = "<select name='callevel'>";
	for ($i=0; $i<=5; $i++) {
		$s_cal_type .="<option value='". $i;
		if ($i == $cal_perm) {
			$s_cal_type .="' selected='selected'>";
			}
		else {
			$s_cal_type .="'>";
			}
		$s_cal_type .= $cal_levels[$i] ."</option>";
		}
	$s_cal_type .="</select>";
	// End MOD Calendar



# 
#-----[ FIND ]------------------------------------------ 
# 

		$template->assign_vars(array(
			'USERNAME' => $t_username,
			'USER_LEVEL' => $lang['User_Level'] . " : " . $s_user_type,

# 
#-----[ AFTER ADD ]------------------------------------------ 
# 


			'USER_CAL_LEVEL' => "Calendar Level : " . $s_cal_type,

# 
#-----[ FIND ]------------------------------------------ 
# 

		$template->assign_vars(array(
			'USERNAME' => $t_groupname,


# 
#-----[ AFTER ADD ]------------------------------------------ 
# 


			'USER_CAL_LEVEL' => "Calendar Level : " . $s_cal_type,



# 
#-----[ OPEN admin/admin_db_utilities.php]------------------------------------------ 
#

# 
#-----[ FIND ]----------------------------------------------------------------------
# 

$tables = array('auth_access', 'banlist', 

# 
#-----[ AFTER, INSERT IN LINE]------------------------------------------ 
# 

'cal_config', 'calendar',


#####--------------------
# NOTE:
#
#	So the line should look something like this:
#	--------------------------------------------
#
#	$tables = array('auth_access', 'banlist', 'cal_config', 'calendar', 'categories', 'config', 'disallow', 'forums', 'forum_prune', 'groups', 'posts', 'posts_text', 'privmsgs', 'privmsgs_text', 'ranks', 'search_results', 'search_wordlist', 'search_wordmatch', 'sessions', 'smilies', 'themes', 'themes_name', 'topics', 'topics_watch', 'user_group', 'users', 'vote_desc', 'vote_results', 'vote_voters', 'words');
#
#####--------------------




# 
#-----[ OPEN templates/xxx/admin/auth_ug_body.tpl]------------------------------------------ 
#

# 
#-----[ FIND ]------------------------------------------ 
# 

<!-- BEGIN switch_user_auth -->
<p>{USER_LEVEL}</p>


# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 

<p>{USER_CAL_LEVEL}</p>	<!-- MOD Calendar -->


# 
#-----[ FIND ]------------------------------------------ 
# 

<!-- BEGIN switch_group_auth -->


# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 

<p>{USER_CAL_LEVEL}</p>	<!-- MOD Calendar -->



# 
#-----[ OPEN includes/functions.php]------------------------------------------ 
#

#############################
#### VERSION PHPBB 2.0.3 ####
#
#
# 
#-----[ (VERSION PHPBB 2.0.3) FIND ]------------------------------------------ 
# 

	if ( defined('IN_ADMIN') )
	{
		if( !file_exists($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_admin.'.$phpEx) )
		{
			$board_config['default_lang'] = 'english';
		}

		include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_admin.' . $phpEx);
	}

# 
#-----[ (VERSION PHPBB 2.0.3) AFTER, ADD ]------------------------------------------ 
# 

//
// MOD Load Calendar Language File
//
	if ( !file_exists($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_calendar.'.$phpEx) ) 
	{ 
		$board_config['default_lang'] = 'english'; 
	} 

	include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_calendar.' . $phpEx);

// End MOD


####################################
#### VERSION PHPBB 2.0.4 - 2.0.6####
#
#
# 
#-----[ (VERSION PHPBB 2.0.4 - 2.0.6) FIND ]------------------------------------------ 
# 

	if ( defined('IN_ADMIN') )
	{
		if( !file_exists(@phpbb_realpath($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_admin.'.$phpEx)) )
		{
			$board_config['default_lang'] = 'english';
		}

		include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_admin.' . $phpEx);
	}

# 
#-----[ (VERSION PHPBB 2.0.4 - 2.0.6) AFTER, ADD ]------------------------------------------ 
# 

//
// MOD Load Calendar Language File
//
	if ( !file_exists(@phpbb_realpath($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_calendar.'.$phpEx)) ) 
	{ 
		$board_config['default_lang'] = 'english'; 
	} 

	include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_calendar.' . $phpEx);

// End MOD
#
#############################



# 
#-----[ OPEN includes/page_header.php]------------------------------------------ 
#

# 
#-----[ FIND ]------------------------------------------ 
# 

else
{
	$u_login_logout = 'login.'.$phpEx;
	$l_login_logout = $lang['Login'];
}

# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 

else
{
	// Mod Calendar
	if (isset($caluser)) {
		$u_login_logout = 'login.'.$phpEx.'?redirect=calendar.'.$phpEx;
		}
	else {
		$u_login_logout = 'login.'.$phpEx;
		}
	// End Mod for Calendar
	$l_login_logout = $lang['Login'];
}

# 
#-----[ FIND ]------------------------------------------ 
# 

	'L_WHOSONLINE_MOD' => sprintf($lang['Mod_online_color'], '<span style="color:#' . $theme['fontcolor2'] . '">', '</span>'), 

# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 

	'L_CALENDAR' => $lang['Calendar'],

# 
#-----[ FIND ]------------------------------------------ 
# 

	'U_MEMBERSLIST' => append_sid('memberlist.'.$phpEx),
	'U_GROUP_CP' => append_sid('groupcp.'.$phpEx),

# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 

	'U_CALENDAR' => append_sid('calendar.'.$phpEx),


# 
#-----[ OPEN templates/xxx/overall_header.tpl]------------------------------------------ 
#

# 
#-----[ FIND ]------------------------------------------ 
# 

<img src="templates/subSilver/images/icon_mini_groups.gif" width="12" height="13" border="0" alt="{L_USERGROUPS}" hspace="3" />{L_USERGROUPS}</a>

# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 

&nbsp; &nbsp;<a href="{U_CALENDAR}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_calendar.gif" width="12" height="13" border="0" alt="{L_CALENDAR}" hspace="3" />{L_CALENDAR}</a>



# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 
# EoM