Group ModeratorZ

Hulp nodig bij een modificaties of op zoek naar een MOD? Bekijk ons archief. Support wordt helaas niet meer verleend.
Forumregels

Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
phpBB2.0.x
Gesloten
mandy
Berichten: 13
Lid geworden op: 05 sep 2005, 11:13

Group ModeratorZ

Bericht door mandy » 10 mei 2006, 21:40

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

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20316
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Bericht door Paul » 10 mei 2006, 21:41

Geef groupcp.php eens in een txt file?(NIET HIER DE INHOUD POSTEN!)

cartoontje
Berichten: 1518
Lid geworden op: 29 jun 2003, 10:57
Locatie: Home Sweet Home
Contacteer:

Bericht door cartoontje » 10 mei 2006, 21:41

Post eens lijn 1485 t/m 1510 van groupcp.php! Geef even aan welke 1497 is.

mandy
Berichten: 13
Lid geworden op: 05 sep 2005, 11:13

Bericht door mandy » 10 mei 2006, 21:45

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);

?>

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20316
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Bericht door Paul » 10 mei 2006, 21:46

paul schreef:Geef groupcp.php eens in een txt file?(NIET HIER DE INHOUD POSTEN!)
graag even posten ;)

mandy
Berichten: 13
Lid geworden op: 05 sep 2005, 11:13

Bericht door mandy » 10 mei 2006, 21:52

hoe doe ik dat :shock: heb dit nog nooit gedaan sorry :cry:

cartoontje
Berichten: 1518
Lid geworden op: 29 jun 2003, 10:57
Locatie: Home Sweet Home
Contacteer:

Bericht door cartoontje » 10 mei 2006, 21:59

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]

;)

Nymphy
Berichten: 1504
Lid geworden op: 28 mar 2003, 18:00
Locatie: Grevenbicht

Bericht door Nymphy » 10 mei 2006, 22:07

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

mandy
Berichten: 13
Lid geworden op: 05 sep 2005, 11:13

Bericht door mandy » 10 mei 2006, 22:16

hoop dat ik het goed heb gedaan.


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

Nymphy
Berichten: 1504
Lid geworden op: 28 mar 2003, 18:00
Locatie: Grevenbicht

Bericht door Nymphy » 10 mei 2006, 23:04

volgens mij klopt je link niet ;)

mandy
Berichten: 13
Lid geworden op: 05 sep 2005, 11:13

Bericht door mandy » 11 mei 2006, 07:09


Gesloten