Pagina 1 van 1

Group ModeratorZ

Geplaatst: 10 mei 2006, 21:40
door mandy
Hi wie kan mij helpen met de volgende vraag, ik probeer deze mod te installeren Group ModeratorZ

maar krijg een error. :cry:

Code: Selecteer alles

Parse error: parse error in /var/www/html/phpbb4/groupcp.php on line 1497

Code: Selecteer alles

## can be found at http://www.phpbb.com/mods/
##############################################################
## Author Notes:
##
##	The mod introduces a new notion : the group owner which is the main moderator.
##
##	The group owner is set on the admin panel, as usual. Then the group owner can grant or ungrant
##	the group moderator status to anyone within the group control panel.
##
##	A group moderator will receive the email of pending users, will be able to accept their admittance,
##	but won't be able to grant them (or ungrant) the group moderator status.
##
##
##	Side note regarding upgrades :
##	----------------------------
##	Just undo the modifications of the previous version in groupcp.php (all is commented), and apply the new ones.
##	Regarding the tpl part, restart from an unmoddified groupcp_info_body.tpl, and apply them : they have changed
##	since the previous versions, and are now less intrusive.
##
##############################################################
## MOD History:
##
##   2006-03-14 - Version 1.0.2
## 		- review the mod for phpBB 2.0.19,
## 		- fix a security issue
##
##   2003-10-28 - Version 1.0.1
## 		- fix a bug when group was empty
## 		- add the lang settings tool
##
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################
#
#-----[ SQL ]-------------------------------------------------
#
ALTER TABLE phpbb_user_group ADD group_moderator TINYINT(1) NOT NULL;
#
#-----[ COPY ]------------------------------------------------
#
COPY root/*.* TO *.*
#
#-----[ OPEN ]------------------------------------------------
#
groupcp.php
#
#-----[ FIND ]------------------------------------------------
#
<?php
#
#-----[ AFTER, ADD ]------------------------------------------
#
//-- mod : group moderatorZ ----------------------------------------------------
#
#-----[ FIND ]------------------------------------------------
#
// End session management
//
#
#-----[ AFTER, ADD ]------------------------------------------
#
//-- mod : group moderatorZ ----------------------------------------------------
//-- add
// get lang
$files = array();
if ( $board_config['default_lang'] != 'english' )
{
	$files[] = $phpbb_root_path . 'language/lang_english/lang_extend_group_moderatorz.' . $phpEx;
}
$files[] = $phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_extend_group_moderatorz.' . $phpEx;
foreach ( $files as $file )
{
	if ( @file_exists($file) )
	{
		include($file);
	}
}
//-- fin mod : group moderatorZ ------------------------------------------------
#
#-----[ FIND ]------------------------------------------------
#
	$sql = "SELECT group_moderator 
		FROM " . GROUPS_TABLE . "  
		WHERE group_id = $group_id";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not obtain user and group information', '', __LINE__, __FILE__, $sql);
	}

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

	if ( $row['group_moderator'] != $userdata['user_id'] && $userdata['user_level'] != ADMIN )
	{
#
#-----[ BEFORE, ADD ]-----------------------------------------
#
//-- mod : group moderatorZ ----------------------------------------------------
//-- delete
/*
#
#-----[ AFTER, ADD ]------------------------------------------
#
*/
//-- add
	$sql = 'SELECT ug.user_id
				FROM ' . USER_GROUP_TABLE . ' ug, ' . GROUPS_TABLE . ' g
				WHERE ug.group_id = ' . intval($group_id) . '
					AND g.group_id = ug.group_id
					AND (ug.user_id = g.group_moderator OR ug.group_moderator = 1)';
	if ( !$result = $db->sql_query($sql) )
	{
		message_die(GENERAL_ERROR, 'Could not obtain user and group information', '', __LINE__, __FILE__, $sql);
	}
	$group_moderators = array();
	while ($row = $db->sql_fetchrow($result) )
	{
		$group_moderators[] = intval($row['user_id']);
	}
	$db->sql_freeresult($result);
	if ( (empty($group_moderators) || !in_array($userdata['user_id'], $group_moderators)) && ($userdata['user_level'] != ADMIN) )
	{
//-- fin mod : group moderatorZ ------------------------------------------------
#
#-----[ FIND ]------------------------------------------------
#
	$sql = "SELECT u.user_email, u.username, u.user_lang, g.group_name 
		FROM ".USERS_TABLE . " u, " . GROUPS_TABLE . " g 
		WHERE u.user_id = g.group_moderator 
			AND g.group_id = $group_id";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, "Error getting group moderator data", "", __LINE__, __FILE__, $sql);
	}

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

	include($phpbb_root_path . 'includes/emailer.'.$phpEx);
#
#-----[ BEFORE, ADD ]-----------------------------------------
#
//-- mod : group moderatorZ ----------------------------------------------------
//-- delete
/*
#
#-----[ AFTER, ADD ]------------------------------------------
#
*/
//-- add
	// include the mailer api
	include($phpbb_root_path . 'includes/emailer.'.$phpEx);

	$sql = 'SELECT g.group_name, u.user_email, u.username, u.user_lang
				FROM ' . USER_GROUP_TABLE . ' ug, ' . GROUPS_TABLE . ' g, ' . USERS_TABLE . ' u
				WHERE ug.group_id = ' . intval($group_id) . '
					AND g.group_id = ug.group_id
					AND (ug.user_id = g.group_moderator OR ug.group_moderator = 1)
					AND u.user_id = ug.user_id';
	if ( !$result = $db->sql_query($sql) )
	{
		message_die(GENERAL_ERROR, "Error getting group moderator data", "", __LINE__, __FILE__, $sql);
	}
	$moderators = array();
	while ( $row = $db->sql_fetchrow($result) )
	{
		$group_moderators[] = $row;
	}
	$db->sql_freeresult($result);

	// loop with group moderators
	$count_group_moderators = count($group_moderators);
	for ( $i = 0; $i < $count_group_moderators; $i++ )
	{
		$moderator = $group_moderators[$i];
#
#-----[ FIND ]------------------------------------------------
#
		'GROUP_MODERATOR' => $moderator['username'],
		'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']) : '', 

		'U_GROUPCP' => $server_url . '?' . POST_GROUPS_URL . "=$group_id&validate=true")
	);
	$emailer->send();
	$emailer->reset();
#
#-----[ AFTER, ADD ]------------------------------------------
#
//-- mod : group moderatorZ ----------------------------------------------------
//-- add
	}
	unset($group_moderators);
//-- fin mod : group moderatorZ ------------------------------------------------
#
#-----[ FIND ]------------------------------------------------
#
		$group_moderator = $group_info['group_moderator'];
	
		if ( $group_moderator == $userdata['user_id'] || $userdata['user_level'] == ADMIN )
		{
			$is_moderator = TRUE;
		}
#
#-----[ BEFORE, ADD ]-----------------------------------------
#
//-- mod : group moderatorZ ----------------------------------------------------
//-- delete
/*
#
#-----[ AFTER, ADD ]------------------------------------------
#
*/
//-- add
		$sql = 'SELECT *
					FROM ' . USER_GROUP_TABLE . ' ug, ' . GROUPS_TABLE . ' g
					WHERE ug.group_id = ' . intval($group_id) . '
						AND g.group_id = ug.group_id
						AND (ug.user_id = g.group_moderator OR ug.group_moderator = 1)';
		if ( !$result = $db->sql_query($sql) )
		{
			message_die(GENERAL_ERROR, 'Could not obtain user and group information', '', __LINE__, __FILE__, $sql);
		}
		$group_moderators = array();
		while ($row = $db->sql_fetchrow($result) )
		{
			$group_moderators[] = $row['user_id'];
		}
		$db->sql_freeresult($result);

		$is_moderator = (!empty($group_moderators) && in_array($userdata['user_id'], $group_moderators)) || ($userdata['user_level'] == ADMIN);
//-- fin mod : group moderatorZ ------------------------------------------------
#
#-----[ FIND ]------------------------------------------------
#
		if ( !empty($HTTP_POST_VARS['add']) || !empty($HTTP_POST_VARS['remove']) || isset($HTTP_POST_VARS['approve']) || isset($HTTP_POST_VARS['deny']) )
#
#-----[ BEFORE, ADD ]-----------------------------------------
#
//-- mod : group moderatorZ ----------------------------------------------------
//-- delete
/*
#
#-----[ AFTER, ADD ]------------------------------------------
#
*/
//-- add
		if ( !empty($HTTP_POST_VARS['add']) || !empty($HTTP_POST_VARS['remove']) || isset($HTTP_POST_VARS['approve']) || isset($HTTP_POST_VARS['deny']) || isset($HTTP_POST_VARS['grant_ungrant']) )
//-- fin mod : group moderatorZ ------------------------------------------------
#
#-----[ FIND ]------------------------------------------------
#
# this is a partial search : the full lines are longer
#
					$message = $lang['User_is_member_group']

					message_die(GENERAL_MESSAGE, $message);
				}
			}
#
#-----[ AFTER, ADD ]------------------------------------------
#
//-- mod : group moderatorZ ----------------------------------------------------
//-- add
			else if ( isset($HTTP_POST_VARS['grant_ungrant']) )
			{
				$selected_members = array();
				$count_post_members = count($HTTP_POST_VARS['members']);
				for ( $i = 0; $i < $count_post_members; $i++ )
				{
					if ( intval($HTTP_POST_VARS['members'][$i]) )
					{
						$selected_members[] = intval($HTTP_POST_VARS['members'][$i]);
					}
				}
				if ( count($selected_members) > 0 )
				{
					$sql = 'SELECT user_id
								FROM ' . USER_GROUP_TABLE . '
								WHERE group_id = ' . intval($group_id) . '
									AND group_moderator = 1
									AND user_id IN(' . implode(', ', $selected_members) . ')
									AND user_id <> ' . intval($group_info['group_moderator']);
					if ( !$result = $db->sql_query($sql) )
					{
						message_die(GENERAL_ERROR, 'Could not get user/group information', '', __LINE__, __FILE__, $sql);
					}
					$group_moderators = array();
					while ( $row = $db->sql_fetchrow($result) )
					{
						$group_moderators[] = $row['user_id'];
					}
					$db->sql_freeresult($result);

					if ( count($group_moderators) > 0)
					{
						$sql = 'UPDATE ' . USER_GROUP_TABLE . '
									SET group_moderator = 0
									WHERE group_id = ' . intval($group_id) . '
										AND user_id <> ' . intval($group_info['group_moderator']) . '
										AND user_id IN(' . implode(', ', $group_moderators) . ')';
						if ( !$db->sql_query($sql) )
						{
							message_die(GENERAL_ERROR, 'Could not ungrant user/group mod status', '', __LINE__, __FILE__, $sql);
						}
					}
					$sql = 'UPDATE ' . USER_GROUP_TABLE . '
								SET group_moderator = 1
								WHERE group_id = ' . intval($group_id) . '
									AND user_id <> ' . intval($group_info['group_moderator']) . '
									AND user_id IN(' . implode(', ', $selected_members) . ')' . (empty($group_moderators) ? '' : '
									AND user_id NOT IN(' . implode(', ', $group_moderators) . ')');
					if ( !$db->sql_query($sql) )
					{
						message_die(GENERAL_ERROR, 'Could not ungrant user/group mod status', '', __LINE__, __FILE__, $sql);
					}

					// return message
					$template->assign_vars(array(
						'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=$group_id") . '">')
					);
					$message = $lang['Group_grant_ungrant_mod_ok'] . '<br /><br />' . sprintf($lang['Click_return_group'], '<a href="' . append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=$group_id") . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
					message_die(GENERAL_MESSAGE, $message);
				}
			}
//-- fin mod : group moderatorZ ------------------------------------------------
#
#-----[ FIND ]------------------------------------------------
#
	//
	// Get user information for this group
	//
	$sql = "SELECT u.username, u.user_id, u.user_viewemail, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_msnm, ug.user_pending 
		FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug
		WHERE ug.group_id = $group_id
			AND u.user_id = ug.user_id
			AND ug.user_pending = 0 
			AND ug.user_id <> " . $group_moderator['user_id'] . " 
		ORDER BY u.username";
#
#-----[ AFTER, ADD ]------------------------------------------
#
//-- mod : group moderatorZ ----------------------------------------------------
//-- add
	$sql = str_replace(', ug.user_pending', ', ug.group_moderator, ug.user_pending', $sql);
	$sql = str_replace('ORDER BY', 'ORDER BY ug.group_moderator DESC,', $sql);
//-- fin mod : group moderatorZ ------------------------------------------------
#
#-----[ FIND ]------------------------------------------------
#
		'S_GROUPCP_ACTION' => append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=$group_id"))
	);
#
#-----[ AFTER, ADD ]------------------------------------------
#
//-- mod : group moderatorZ ----------------------------------------------------
//-- add
	$template->assign_vars(array(
		'L_GROUP_OWNER' => $lang['Group_owner'],
		'L_GRANT_UNGRANT_SELECTED' => $lang['Group_grant_mod_status'],
	));
	$last_member_type = -1;
	$color = false;
//-- fin mod : group moderatorZ ------------------------------------------------
#
#-----[ FIND ]------------------------------------------------
#
		if ( $group_info['group_type'] != GROUP_HIDDEN || $is_group_member || $is_moderator )
		{
			$row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
			$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
#
#-----[ AFTER, ADD ]------------------------------------------
#
//-- mod : group moderatorZ ----------------------------------------------------
//-- add
			$color &= $last_member_type == $group_members[$i]['group_moderator'];
			$color = !$color;
			$row_color = $color ? $theme['td_color1'] : $theme['td_color2'];
			$row_class = $color ? $theme['td_class1'] : $theme['td_class2'];
//-- fin mod : group moderatorZ ------------------------------------------------
#
#-----[ FIND ]------------------------------------------------
#
			if ( $is_moderator )
			{
				$template->assign_block_vars('member_row.switch_mod_option', array());
			}
#
#-----[ BEFORE, ADD ]-----------------------------------------
#
//-- mod : group moderatorZ ----------------------------------------------------
//-- delete
/*
#
#-----[ AFTER, ADD ]------------------------------------------
#
*/
//-- add
			if ( $last_member_type != $group_members[$i]['group_moderator'] )
			{
				$template->assign_block_vars('member_row.member_type', array(
					'L_TYPE' => ( $group_members[$i]['group_moderator'] ) ? $lang['Group_Moderator'] : $lang['Group_Members'],
				));
				$last_member_type = $group_members[$i]['group_moderator'];
			}
			if ( $is_moderator && (!$group_members[$i]['group_moderator'] || ($group_moderator['user_id'] == $userdata['user_id']) || ($userdata['user_level'] == ADMIN)) )
			{
				$template->assign_block_vars('member_row.switch_mod_option', array());
			}
//-- fin mod : group moderatorZ ------------------------------------------------
#
#-----[ FIND ]------------------------------------------------
#
		$template->assign_block_vars('switch_add_member', array());
#
#-----[ AFTER, ADD ]------------------------------------------
#
//-- mod : group moderatorZ ----------------------------------------------------
//-- add
		if ( ($group_moderator['user_id'] == $userdata['user_id']) || ($userdata['user_level'] == ADMIN) )
		{
			$template->assign_block_vars('switch_mod_option.switch_owner_option', array());
		}
//-- fin mod : group moderatorZ ------------------------------------------------
#
#-----[ OPEN ]------------------------------------------------
#
templates/subSilver/groupcp_info_body.tpl
#
#-----[ FIND ]------------------------------------------------
#
# this is a partial search : the full line is longer
#
{L_GROUP_MODERATOR}
#
#----------[ IN-LINE FIND ]-----------------------------------
#
{L_GROUP_MODERATOR}
#
#----------[ IN-LINE REPLACE WITH ]---------------------------
#
{L_GROUP_OWNER}
#
#-----[ FIND ]------------------------------------------------
#
# this is a partial search : the full line is longer
#
<tr>
{L_GROUP_MEMBERS}
</tr>
<!-- BEGIN member_row -->
#
#-----[ REPLACE WITH ]----------------------------------------
#
	<!-- BEGIN member_row -->
	<!-- BEGIN member_type -->
	<tr>
		<td class="catSides" colspan="8" height="28"><span class="cattitle">{member_row.member_type.L_TYPE}</span></td>
	</tr>
	<!-- END member_type -->
#
#-----[ FIND ]------------------------------------------------
#
	<!-- BEGIN switch_no_members -->
#
#-----[ AFTER, ADD ]------------------------------------------
#
	<tr>
		<td class="catSides" colspan="8" height="28"><span class="cattitle">{L_GROUP_MEMBERS}</span></td>
	</tr>
#
#-----[ FIND ]------------------------------------------------
#
# here we need to split the <input...> onto a new line, to allow to add our own with switch, so let's replace the whole thing
#
		<td class="catBottom" colspan="8" align="right">
			<span class="cattitle"><input type="submit" name="remove" value="{L_REMOVE_SELECTED}" class="mainoption" /></span>
		</td>
#
#-----[ REPLACE WITH ]----------------------------------------
#
		<td class="catBottom" colspan="8" align="right"><span class="cattitle">&nbsp;
			<input type="submit" name="remove" value="{L_REMOVE_SELECTED}" class="mainoption" />
			<!-- BEGIN switch_owner_option -->
			<input type="submit" name="grant_ungrant" value="{L_GRANT_UNGRANT_SELECTED}" class="liteoption" />
			<!-- END switch_owner_option -->
		</span></td>
#
#-----[ SAVE/CLOSE ALL FILES ]--------------------------------
#
# EoM

Geplaatst: 10 mei 2006, 21:41
door Paul
Geef groupcp.php eens in een txt file?(NIET HIER DE INHOUD POSTEN!)

Geplaatst: 10 mei 2006, 21:41
door cartoontje
Post eens lijn 1485 t/m 1510 van groupcp.php! Geef even aan welke 1497 is.

Geplaatst: 10 mei 2006, 21:45
door mandy
dit is begin regel 1485 tot met 1497, meer staat er niet

Code: Selecteer alles

		$template->pparse('user');
	}
	else
	{
		message_die(GENERAL_MESSAGE, $lang['No_groups_exist']);
	}

}

include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

?>

Geplaatst: 10 mei 2006, 21:46
door Paul
paul schreef:Geef groupcp.php eens in een txt file?(NIET HIER DE INHOUD POSTEN!)
graag even posten ;)

Geplaatst: 10 mei 2006, 21:52
door mandy
hoe doe ik dat :shock: heb dit nog nooit gedaan sorry :cry:

Geplaatst: 10 mei 2006, 21:59
door cartoontje
Kopieer de inhoud van groupcp.php even naar kladblok en sla het op als een .txt bestand. Upload dit naar je server. Vervolgens plaats je hier een link door middel van de volgende code:

[url]http://www.mijnsite.nl/groupcp.txt[/url]

;)

Geplaatst: 10 mei 2006, 22:07
door Nymphy
je kan ook gewoon simpelweg .txt achter groupcp.php zetten ;)

wel het bestandje eerst even naar je bureaublad o.i.d. kopieren ;)

dan idd uploaden naar je server en dan de link ernaartoe hier plaatsen

Geplaatst: 10 mei 2006, 22:16
door mandy
hoop dat ik het goed heb gedaan.


http://www.bluemoon-planet.com/phpbb4/index.php

Geplaatst: 10 mei 2006, 23:04
door Nymphy
volgens mij klopt je link niet ;)

Geplaatst: 11 mei 2006, 07:09
door mandy