You are totally fit for this professional job lol.
u can make money from it u know
now back to topic.
how ? the problem for the group rank hack? T_T
Code: Select all
#################################################################
## MOD Title: Group Rank Hack - EM Friendly
## MOD Author: Saerdnaer < [email protected] >
## MOD Description: This Hack (MOD) allows you to give different ranks for groups
## MOD Version: 1.0.2
##
## phpBB Version: Tested on 2.0.3
## Download-Site: https://sourceforge.net/project/showfiles.php?group_id=65919
##
## Installation Level: easy
## Installation Time: 15 Minutes
##
## Files To Edit: 6
## viewtopic.php
## admin/admin_groups.php
## admin/admin_ranks.php
## includes/usercp_viewprofile.php
## language/lang_english/lang_admin.php
## templates/subSilver/admin/ranks_edit_body.tpl
##
## Included Files: 2
## admin/admin_group_rank.php
## templates/subSilver/admin/group_rank_order_body.tpl
##
#################################################################
## H I S T O R Y
##
## V 1.0.2:
## - Fixed ddd bug in viewtopic
## - Fixed list errors with mysql4 db-layer
##
## V 1.0.1:
## - Fixed bug in install manual for viewtopic.php
## - Fixed bugs in language-files
##
## V 1.0.0:
## - First relase
##
#################################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files
#################################################################
#
#-----[ DIY INSTRUCTIONS ]------------------------------------------
#
Upload the install_gr_hack.php file to your phpBB folder root and
run it from your browser. The path in your browser could look
something like this:
http://yourdomain.com/phpBB2/install_gr_hack.php
Once the install_gr_hack.php has been successfully run from your
browser, make sure you delete this file from your phpBB folder
root…
#
#-----[ COPY ]------------------------------------------
#
copy install_gr_hack.php to install_gr_hack.php
copy admin_group_rank.php to admin/admin_group_rank.php
copy group_rank_order_body.tpl to templates/subSilver/admin/group_rank_order_body.tpl
#
#-----[ OPEN ]------------------------------------------
#
viewtopic.php
#
#-----[ FIND ]------------------------------------------
#
$postrow = array();
#
#-----[ AFTER, ADD ]------------------------------------------
#
$poster_id_sql = ''; // ADDED BY Group Rank Hack
#
#-----[ FIND ]------------------------------------------
#
$postrow[] = $row;
#
#-----[ AFTER, ADD ]------------------------------------------
#
$poster_id_sql .= ( $row['user_rank'] ) ? '' : ( ',' . $row['user_id'] ); // ADDED BY Group Rank Hack
#
#-----[ FIND ]------------------------------------------
#
$sql = "SELECT *
FROM " . RANKS_TABLE . "
ORDER BY rank_special, rank_min";
if
{
message_die(GENERAL_ERROR,
}
$ranksrow = array();
while ( $row = $db->sql_fetchrow($result) )
{
$ranksrow[] = $row;
}
$db->sql_freeresult($result);
#
#-----[ REPLACE WITH ]------------------------------------------
#
$sql = "SELECT *
FROM " . RANKS_TABLE . "
ORDER BY rank_special, rank_min DESC"; // ADDED ' DESC' BY Group Rank Hack
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "Could not obtain ranks information.", '', __LINE__, __FILE__, $sql);
}
$ranksrow = array();
$rank_group_id_sql = ''; // ADDED BY Group Rank Hack
while ( $row = $db->sql_fetchrow($result) )
{
// BEGIN Group Rank Hack
if ( $row['rank_special'] )
{
$ranksrow[-1][$row['rank_id']] = $row;
}
else
{
$ranksrow[$row['rank_group']][] = $row;
$rank_group_id_sql .= $row['rank_group'] > 0 ? ( ',' . $row['rank_group'] ) : '';
$ranksrow[$row['rank_group']]['count']++;
}
// END Group Rank Hack
// $ranksrow[] = $row; // COMMENTED BY Group Rank Hack
}
$db->sql_freeresult($result);
// BEGIN Group Rank Hack
$poster_group = array();
if ( !empty($poster_id_sql) && !empty($rank_group_id_sql) )
{
$rank_group_id_sql = substr($rank_group_id_sql, 1);
$poster_id_sql = substr($poster_id_sql, 1);
$sql = "SELECT ug.user_id, ug.group_id
FROM " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g
WHERE ug.user_id IN ( $poster_id_sql )
AND ug.group_id IN ( $rank_group_id_sql )
AND g.group_id = ug.group_id
AND g.group_single_user = 0
ORDER BY g.group_order DESC";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "Could not obtain poster group information.", '', __LINE__, __FILE__, $sql);
}
while ( $row = $db->sql_fetchrow($result) )
{
$poster_group[$row['user_id']] = $row['group_id'];
}
$db->sql_freeresult($result);
}
// END Group Rank Hack
#
#-----[ FIND ]------------------------------------------
#
else if ( $postrow[$i]['user_rank']
#
#-----[ BEFORE, ADD ]------------------------------------------
#
// BEGIN Group Rank Hack
else if ( $postrow[$i]['user_rank'] )
{
$poster_rank = $ranksrow[-1][$postrow[$i]['user_rank']]['rank_title'];
$rank_image = ( $ranksrow[-1][$postrow[$i]['user_rank']]['rank_image'] ) ? '<img src="' . $ranksrow[-1][$postrow[$i]['user_rank']]['rank_image'] . '" alt="' . $poster_rank . '" title="' . $poster_rank . '" border="0" /><br />' : '';
}
else if ( isset($poster_group[$postrow[$i]['user_id']]) )
{
$g = $poster_group[$postrow[$i]['user_id']];
for($j = 0; $j < $ranksrow[$g]['count']; $j++)
{
if ( $postrow[$i]['user_posts'] >= $ranksrow[$g][$j]['rank_min'] )
{
$poster_rank = $ranksrow[$g][$j]['rank_title'];
$rank_image = ( $ranksrow[$g][$j]['rank_image'] ) ? '<img src="' . $ranksrow[$g][$j]['rank_image'] . '" alt="' . $poster_rank . '" title="' . $poster_rank . '" border="0" /><br />' : '';
break;
}
}
}
else
{
for($j = 0; $j < $ranksrow[0]['count']; $j++)
{
if ( $postrow[$i]['user_posts'] >= $ranksrow[0][$j]['rank_min'] )
{
$poster_rank = $ranksrow[0][$j]['rank_title'];
$rank_image = ( $ranksrow[0][$j]['rank_image'] ) ? '<img src="' . $ranksrow[0][$j]['rank_image'] . '" alt="' . $poster_rank . '" title="' . $poster_rank . '" border="0" /><br />' : '';
break;
}
}
}
// END Group Rank Hack
/* COMMENTED BY Group Rank Hack
#
#-----[ FIND ]------------------------------------------
#
//
// Handle anon users posting with usernames
#
#-----[ BEFORE, ADD ]------------------------------------------
#
*/
#
#-----[ OPEN ]------------------------------------------
#
includes/usercp_viewprofile.php
#
#-----[ FIND ]------------------------------------------
#
$sql = "SELECT *
FROM " . RANKS_TABLE . "
ORDER BY
if (
{
message_die(GENERAL_ERROR,
}
while (
{
$ranksrow[] = $row;
}
$db->sql_freeresult($result);
#
#-----[ BEFORE, ADD ]------------------------------------------
#
/* COMMENTED BY Group Rank Hack
#
#-----[ AFTER, ADD ]------------------------------------------
#
*/
#
#-----[ FIND ]------------------------------------------
#
if ( $profiledata['user_rank']
#
#-----[ BEFORE, ADD ]------------------------------------------
#
// BEGIN Group Rank Hack
if ( $profiledata['user_rank'] )
{
$sql = "SELECT *
FROM " . RANKS_TABLE . "
WHERE rank_id = " . $profiledata['user_rank'];
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain user speical rank ', '', __LINE__, __FILE__, $sql);
}
if ( $row = $db->sql_fetchrow($result) )
{
$poster_rank = $row['rank_title'];
$rank_image = ( $row['rank_image'] ) ? '<img src="' . $row['rank_image'] . '" alt="' . $poster_rank . '" title="' . $poster_rank . '" border="0" /><br />' : '';
}
$db->sql_freeresult($result);
}
else
{
$sql = "SELECT *
FROM " . RANKS_TABLE . "
WHERE rank_special = 0
ORDER BY rank_min DESC";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain ranks information', '', __LINE__, __FILE__, $sql);
}
$ranksrow = array();
while ( $row = $db->sql_fetchrow($result) )
{
$ranksrow[$row['rank_group']][] = $row;
$ranksrow[$row['rank_group']]['count']++;
}
$db->sql_freeresult($result);
$sql = "SELECT ug.group_id
FROM " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g
WHERE ug.user_id = " . $profiledata['user_id'] . "
AND g.group_id = ug.group_id
AND g.group_single_user = 0
ORDER BY g.group_order ASC";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "Could not obtain user group information.", '', __LINE__, __FILE__, $sql);
}
$rank_group_id = 0;
while ( $row = $db->sql_fetchrow($result) )
{
if ( isset($ranksrow[$row['group_id']]) )
{
$rank_group_id = $row['group_id'];
break;
}
}
$db->sql_freeresult($result);
for($i = 0; $i < $ranksrow[$rank_group_id]['count']; $i++)
{
if ( $profiledata['user_posts'] >= $ranksrow[$rank_group_id][$i]['rank_min'] )
{
$poster_rank = $ranksrow[$rank_group_id][$i]['rank_title'];
$rank_image = ( $ranksrow[$rank_group_id][$i]['rank_image'] ) ? '<img src="' . $ranksrow[$rank_group_id][$i]['rank_image'] . '" alt="' . $poster_rank . '" title="' . $poster_rank . '" border="0" /><br />' : '';
break;
}
}
}
// END Group Rank Hack
/* COMMENTED BY Group Rank Hack
#
#-----[ FIND ]------------------------------------------
#
$temp_url = append_sid("privmsg.$phpEx
#
#-----[ BEFORE, ADD ]------------------------------------------
#
*/
#
#-----[ OPEN ]------------------------------------------
#
admin/admin_groups.php
#
#-----[ FIND ]------------------------------------------
#
else if( $mode == 'newgroup' )
{
#
#-----[ AFTER, ADD ]------------------------------------------
#
// BEGIN Group Rank Hack
$sql = "SELECT MAX(group_order) AS max_order
FROM " . GROUPS_TABLE . "
WHERE group_single_user = 0";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not insert new group', '', __LINE__, __FILE__, $sql);
}
$group_order = $db->sql_fetchrow($result);
$group_order = $group_order['max_order'] + 1;
// END Group Rank Hack
#-----[ FIND ]------------------------------------------
#
$sql = "INSERT INTO " . GROUPS_TABLE
VALUES ($group_type
#
#-----[ IN-LINE FIND ]------------------------------------------
#
group_single_user
#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
, group_order
#
#-----[ IN-LINE FIND ]------------------------------------------
#
'0'
#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
, $group_order
#
#-----[ AFTER, ADD ]------------------------------------------
#
// ADDED ', group_order' AND ', $group_order' BY Group Rank Hack
#
#-----[ OPEN ]------------------------------------------
#
admin/admin_ranks.php
#
#-----[ FIND ]------------------------------------------
#
$rank_info['rank_special'] = 0;
#
#-----[ AFTER, ADD ]------------------------------------------
#
$rank_info['rank_group'] = 0; // ADDED BY Group Rank Hack
#
#-----[ FIND ]------------------------------------------
#
$rank_is_not_special = ( !$rank_info['rank_special']
#
#-----[ AFTER, ADD ]------------------------------------------
#
// BEGIN Group Rank Hack
$sql = "SELECT group_id, group_name
FROM " . GROUPS_TABLE . "
WHERE group_single_user = 0
ORDER BY group_name";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain group list', '', __LINE__, __FILE__, $sql);
}
$group_select = '';
if ( $row = $db->sql_fetchrow($result) )
{
$group_select .= '<select name="group">';
$group_select .= '<option value="0">' . $lang['No'] . '</option>';
do
{
$selected = ( $rank_info['rank_group'] == $row['group_id'] ) ? ' selected="selected"' : '';
$group_select .= '<option value="' . $row['group_id'] . '"' . $selected . '>' . $row['group_name'] . '</option>';
}
while ( $row = $db->sql_fetchrow($result) );
$group_select .= '</select>';
}
if ( !empty($group_select) )
{
$template->assign_block_vars('switch_group_rank', array(
'L_GROUP_RANK' => $lang['Group_rank'],
'L_GROUP_RANK_EXPLAIN' => $lang['Group_rank_explain'],
'GROUP_RANK_SELECT' => $group_select)
);
}
// END Group Rank Hack
#
#-----[ FIND ]------------------------------------------
#
$special_rank = ( $HTTP_POST_VARS['special_rank']
#
#-----[ AFTER, ADD ]------------------------------------------
#
$group = ( $HTTP_POST_VARS['group'] > 0 ) ? intval($HTTP_POST_VARS['group']) : 0; // ADDED BY Group Rank Hack
#
#-----[ FIND ]------------------------------------------
#
$min_posts = -1;
#
#-----[ AFTER, ADD ]------------------------------------------
#
$group = 0; // ADDED BY Group Rank Hack
#
#-----[ FIND ]------------------------------------------
#
$sql = "UPDATE " . RANKS_TABLE . "
SET rank_title
WHERE rank_id
#
#-----[ IN-LINE FIND ]------------------------------------------
#
str_replace("\'", "''", $rank_image) . "'
#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
, rank_group = $group
#
#-----[ AFTER, ADD ]------------------------------------------
#
// ADDED ', rank_group = $group' BY Group Rank Hack
#
#-----[ FIND ]------------------------------------------
#
$sql = "INSERT INTO " . RANKS_TABLE
VALUES
#
#-----[ IN-LINE FIND ]------------------------------------------
#
rank_image
#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
, rank_group
#
#-----[ IN-LINE FIND ]------------------------------------------
#
str_replace("\'", "''", $rank_image) . "'
#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
, $group
#
#-----[ AFTER, ADD ]------------------------------------------
#
// ADDED ', rank_group' ', $group' BY Group Rank Hack
#
#-----[ FIND ]------------------------------------------
#
$sql = "SELECT * FROM " . RANKS_TABLE . "
ORDER BY
#
#-----[ REPLACE WITH ]------------------------------------------
#
$sql = "SELECT r.*, g.group_name
FROM " . RANKS_TABLE . " r
LEFT JOIN " . GROUPS_TABLE . " g ON g.group_id = r.rank_group
ORDER BY r.rank_special DESC, rank_group ASC, r.rank_min ASC"; // ADDED 'r.' AND ', g.group_name' AND 'r LEFT JOIN " . GROUPS_TABLE . " g ON g.group_id = r.rank_group' AND 'rank_group ASC, ' BY Group Rank Hack
#
#-----[ FIND ]------------------------------------------
#
"L_SPECIAL_RANK" => $lang['Special_rank'],
#
#-----[ REPLACE WITH ]------------------------------------------
#
"L_SPECIAL_RANK" => $lang['Group_Rank_special'], // ADDED 'Group_' BY Group Rank Hack
#
#-----[ FIND ]------------------------------------------
#
$rank_is_special = ( $special_rank ) ? $lang['Yes'] : $lang['No'];
#
#-----[ AFTER, ADD ]------------------------------------------
#
$rank_is_special = ( $special_rank ) ? $lang['Yes'] : ( $rank_rows[$i]['rank_group'] > 0 ? $rank_rows[$i]['group_name'] : $lang['No'] ); // ADDED BY Group Rank Hack
#
#-----[ FIND ]------------------------------------------
#
"SPECIAL_RANK" => ( $special_rank == 1 ) ? $lang['Yes'] : $lang['No'],
#
#-----[ REPLACE WITH ]------------------------------------------
#
"SPECIAL_RANK" => $rank_is_special, // REPLACED '( $special_rank == 1 ) ? $lang['Yes'] : $lang['No']' WITH '$rank_is_special' BY Group Rank Hack
#
#-----[ FIND ]------------------------------------------
#
$sql = "SELECT * FROM " . RANKS_TABLE . "
ORDER BY rank_min, rank_title";
#
#-----[ REPLACE WITH ]------------------------------------------
#
$sql = "SELECT r.*, g.group_name
FROM " . RANKS_TABLE . " r
LEFT JOIN " . GROUPS_TABLE . " g ON g.group_id = r.rank_group
ORDER BY r.rank_special DESC, rank_group ASC, r.rank_min ASC"; // ADDED 'r.' AND ', g.group_name' AND 'r LEFT JOIN " . GROUPS_TABLE . " g ON g.group_id = r.rank_group' AND 'rank_group ASC, ' BY Group Rank Hack
#
#-----[ FIND ]------------------------------------------
#
"L_SPECIAL_RANK" => $lang['Special_rank'],
#
#-----[ REPLACE WITH ]------------------------------------------
#
"L_SPECIAL_RANK" => $lang['Group_Rank_special'], // ADDED 'Group_' BY Group Rank Hack
#
#-----[ FIND ]------------------------------------------
#
$rank_is_special = ( $special_rank ) ? $lang['Yes'] : $lang['No'];
#
#-----[ REPLACE WITH ]------------------------------------------
#
$rank_is_special = ( $special_rank ) ? $lang['Yes'] : ( $rank_rows[$i]['rank_group'] > 0 ? $rank_rows[$i]['group_name'] : $lang['No'] ); // ADDED '( $rank_rows[$i]['rank_title'] > 0 ? $rank_rows[$i]['group_name'] :' AND ')' BY Group Rank Hack
#
#-----[ OPEN ]------------------------------------------
#
language/lang_english/lang_admin.php
#
#-----[ FIND ]------------------------------------------
#
?>
#
#-----[ BEFORE, ADD ]------------------------------------------
#
// Group Rank Hack
$lang['Group_rank'] = "Grouprank";
$lang['Group_rank_explain'] = "Here you can say that this rank only can be used by the selected group. This rank is disabled, if this rank is a special rank.";
$lang['Group_Rank_special'] = "Special- / Grouprank";
$lang['Group_rank_order'] = "Grouprank order";
$lang['Group_rank_order_moved'] = "Group moved successfully.";
$lang['Group_rank_order_alreay_moved'] = "Group already moved.";
$lang['Group_rank_order_could_not_moved'] = "These Group couldn't moved because it is already at the top / bottom.";
$lang['Group_rank_resynced'] = "Grouporder was resynced succesfully.";
$lang['Group_rank_order_title'] = "Groupranks - Order";
$lang['Group_rank_order_explain'] = "If a user is a member of two or more groups with own groupranks, the grouprank of the group, witch is higher in this list, will be shown.";
#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/admin/ranks_edit_body.tpl
#
#-----[ FIND ]------------------------------------------
#
{SPECIAL_RANK}
</tr>
#
#-----[ AFTER, ADD ]------------------------------------------
#
<!-- BEGIN switch_group_rank -->
<tr>
<td class="row1"><span class="gen">{switch_group_rank.L_GROUP_RANK}:</span><br />
<span class="gensmall">{switch_group_rank.L_GROUP_RANK_EXPLAIN}</span></td>
<td class="row2">{switch_group_rank.GROUP_RANK_SELECT}</td>
</tr>
<!-- END switch_group_rank -->
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
Code: Select all
Error Detail
Critical Error
COPY FAILED: The target file to be copied [./mods/Group_Rank_Hack/admin_group_rank.php] could not be found.
copy admin_group_rank.php to admin/admin_group_rank.php
MOD script line #56 :: FAQ :: Report
Error Detail
Critical Error
COPY FAILED: The target file to be copied [./mods/Group_Rank_Hack/group_rank_order_body.tpl] could not be found.
copy group_rank_order_body.tpl to templates/subSilver/admin/group_rank_order_body.tpl
MOD script line #56 :: FAQ :: Report
Code: Select all
Error Detail
Critical Error
FIND FAILED: In file [includes/usercp_viewprofile.php] could not find:
$sql = "SELECT *
FROM " . RANKS_TABLE . "
ORDER BY
if (
{
message_die(GENERAL_ERROR,
}
while (
{
$ranksrow[] = $row;
}
$db->sql_freeresult($result);
MOD script line #210 :: FAQ :: Report
Code: Select all
#
#-----[ FIND ]------------------------------------------
#
$sql = "SELECT *
FROM " . RANKS_TABLE . "
ORDER BY
if (
{
message_die(GENERAL_ERROR,
}
while (
{
$ranksrow[] = $row;
}
$db->sql_freeresult($result);
Code: Select all
#
#-----[ FIND ]------------------------------------------
#
$sql = "SELECT *
FROM " . RANKS_TABLE . "
ORDER BY
if (
{
message_die(GENERAL_ERROR,
}
$ranksrow = array();
while (
{
$ranksrow[] = $row;
}
$db->sql_freeresult($result);
Code: Select all
Error Detail
Critical Error
FIND FAILED: In file [includes/usercp_viewprofile.php] could not find:
$sql = "SELECT *
FROM " . RANKS_TABLE . "
ORDER BY
if (
{
message_die(GENERAL_ERROR,
}
while (
{
$ranksrow[] = $row;
}
$db->sql_freeresult($result);
MOD script line #210 :: FAQ :: Report