[2.0.19] Advanced Group Color Management

All new MODs released in our MOD Database will be announced in here. All support for released MODs needs to take place in here. No new MODs will be accepted into the MOD Database for phpBB2
Forum rules
READ: phpBB.com Board-Wide Rules and Regulations

On February 1, 2009 this forum will be set to read only as part of retiring of phpBB2.

Rating:

Excellent!
38
64%
Very Good
10
17%
Good
3
5%
Fair
3
5%
Poor
5
8%
 
Total votes: 59

luvz2drv
Registered User
Posts: 47
Joined: Mon Nov 21, 2005 5:31 am

yes

Post by luvz2drv » Fri Dec 08, 2006 4:01 am

yes

rafearcher
Registered User
Posts: 39
Joined: Sun Nov 26, 2006 12:30 am

Post by rafearcher » Fri Dec 08, 2006 4:29 am

I eventually got mine working... im on 2.0.21... the author seems to have halted support for this mod. His website is gone, his update thread on the other forum has been locked, he hasn’t posted in this thread since Oct 12, 2006.

WARNING!
Install this mod at your own risk


*** BEGIN RANT (skip to bypass) ***

I’ve been thinking this since day 1... and I’ve held my tongue, but I’ve got nothing to loose.. So here goes....

This forum is the worst I’ve ever seen for people being ignored. Pretty much every single post in my post count is/was a question about a mod.. Not one.. Lemme repeat, NOT ONE of them was answered either: in a timely manner, without a smart-ass remark or even at all..

This is the only mod that did not install and function perfectly... and I’ve installed 19 mods on my forum... without easy-mod btw...

Im not trying to point at any specific user... its just the general attitude of the forum and it really sucks!


*** END RANT ***

If you take the time to read this threads 25 pages, you’ll eventually learn how to fix almost every error you’re getting with this mod... however, I don’t think it would have been hard at all to go to the first post in the thread, and add little EDITS about quick fixes so that people could instantly find their problem and fix it... but no... 68% of this thread are simply repeat’s of the same questions and error’s(which is prolly why the mods author has vanished). ie: why are my group colors are not showing up(you learn that you have to go into each users profile and click submit so that the color data is populated into the database... ‘course, you don’t hear about that ‘till page 5 or so) ; why are my group colors being set back to default when I add/delete a user to/from a group(on page 6 you finally learn that you can replace some code to fix that) ; what are theses database errors? (You learn that there is a php & sql syntax error that you can fix in order to fix the database errors you got when you ran the install file... but you wont read that ‘till page 8 ) and yet... those same things are poppin’ up again and again.. I don’t blame people for not reading... It took me 4 hours to do this mod.. Even though it says 1 hour... why would I want to go and read 25 pages about something that has only 1 or 2 posts pertaining to my particular problem... if it even mentions my problem... this is a forum... people are supposed to post... I guess the moral of my story is this: stupid minor problems... should be mentioned once.. Then a solution to that should be EDITED into one of the first posts of the thread..

Anywho.. whateva!

User avatar
bonelifer
Community Team Member
Community Team Member
Posts: 3480
Joined: Wed Oct 27, 2004 11:35 pm
Name: William
Contact:

Post by bonelifer » Fri Dec 08, 2006 3:05 pm

Whoa there rafearcher this is a 100% VOLUNTEER(even the official Support Staff) board. So expecting that someone that knows about the specific MOD and error to be on all the time or be able to ANSWER in a "TIMELY" manner is not very realistic. Also I don't see too many people getting ignored unless they are acting like a goon. Smart-ass remarks? Remember some of those "Smart-ass" remarks could be you taking the remark out of context as many people on here don't speak English as a first or even second language.


Now something you might not know is that the FIRST thread is not editable by the AUTHOR of the MOD. It's only editable by board staff. It's not meant as a way of distributing that sort of information. These FIXES should of been applied to the mod and the mod resubmitted by the mod author. To blame this boards staff and members of being rude because you expect IMMEDIATE service is wrong and insulting to the hard work everyone here puts in FREELY.

[Off-topic(to the topic at hand)]
Hmm, 19 mods by hand not bad. Though I have over 115 that I "installed" via EasyMod many of them major. I had to work through them and ADJUST them. I could of installed them purely by hand but I like to make sure that I can just reinstall them later without problem so making them install via EasyMod is worth the extra work(for me) and I still get the practice of working with the code(else how would I be able to make so many mods install via EasyMod).

I'm not trying to be a Smart-Ass, but your post just smacked of ARROGANCE and I can't really say I like those sort of posts. Especially ones which attack good people doing stuff for other people just because they want to help others.
[/Off-Topic]
Knowledge Base | phpBB Board Rules | Search Customisation Database
Image
Please don't contact me via PM or email for phpBB support .

yongkian
Registered User
Posts: 92
Joined: Sat Jul 17, 2004 1:44 pm
Location: Singapore

Post by yongkian » Fri Dec 08, 2006 5:43 pm

will try this tomorrow.

nucsa
Registered User
Posts: 63
Joined: Sat Sep 03, 2005 8:32 pm

Post by nucsa » Sat Dec 09, 2006 2:34 am

Ok now with all the rants out of the way I have this mod installed and is working great but I have one question and the AUTHOR is no where to be found so I wonder if someone else can answer this?

I want to change the font size of the user name on the viewtopic page.

I tryed puting <font size="+2"> in front of {postrow.POSTER_NAME} in viewtopic_body.tpl as that worked before I installed this mod but it want work now.

Leaving the viewtopic_body.tpl as I stated above I changed this line
'POSTER_NAME' => $colors->get_user_color($postrow[$i]['user_group_id'], $postrow[$i]['user_session_time'], $poster),
in viewtopic.php back to the original and the font size changed like I wanted but the color was gone.

So what ever I have to do has something to do with that line in viewtopic.php

It's no big deal but I would like to increase the font size if I could.

Thanks for any help.

luvz2drv
Registered User
Posts: 47
Joined: Mon Nov 21, 2005 5:31 am

to change the font..

Post by luvz2drv » Sat Dec 09, 2006 3:49 am

Code: Select all

#
#-----[ OPEN ]------------------------------------------------
#
templates/subSilver/subSilver.css

#
#-----[ FIND ]------------------------------------------------
#
.helpline { background-color: #DEE3E7; border-style: none; }

#
#-----[ AFTER, ADD ]------------------------------------------
#
.username_color { font-size : 10px; font-weight : bold; }
a.username_color { font-size : 10px; font-weight : bold; text-decoration : none; }
a.username_color:hover { font-size : 10px; font-weight : bold; color : #DD6900; text-decoration : underline; }

change the 10px to what ever it is that you want .. :)

that is if I understand your question right - but that is the code that you can change everythign with for this mod.

maplehack
Registered User
Posts: 6
Joined: Sun Nov 12, 2006 3:00 am

Post by maplehack » Sat Dec 09, 2006 7:50 pm

I 've installed this MOD and everything seem to be perfect.
On legend bar, groupname's color is ok.

But username's color is same all.
(It suppose to differ as their group color, right?)

You can see my forum here, www.maplehack.org.

ps. my eng is poor, sorry.

=====

I am so sorry man, 25 pages make me mad.

Now, I can solve problem. :lol: Thank you, man.

V
V
V
V
Last edited by maplehack on Sat Dec 09, 2006 8:42 pm, edited 1 time in total.

luvz2drv
Registered User
Posts: 47
Joined: Mon Nov 21, 2005 5:31 am

Color for users

Post by luvz2drv » Sat Dec 09, 2006 8:29 pm

to get the color to show up ------ man I wish ppl would read stuff in this thread before posting -- search works great....


you or yourt users must simply go into and update there profile.. then colors will show...


finds the spoon to dish it out...

maplehack
Registered User
Posts: 6
Joined: Sun Nov 12, 2006 3:00 am

Post by maplehack » Sun Dec 10, 2006 6:10 am

One more problem, Democracy MOD is not support this MOD.

Most reputation name is old color.

Image

Any solution?

Frosty1
Registered User
Posts: 85
Joined: Mon Mar 06, 2006 4:55 pm

Post by Frosty1 » Wed Dec 13, 2006 6:03 am

Ok, I've attempted to installl this mod with easy mod on version .021 and I've got a critical error. I went through all 25 pages and found reference to this problem 3 times, all 3 of which never got a response.

Can someone point me in the right direction?

Code: Select all

Critical Error

FIND FAILED: In file [includes/functions.php] could not find:

if ( $userdata['user_id'] != ANONYMOUS ) 
{ 
if ( !empty($userdata['user_lang'])) 
{ 
$board_config['default_lang'] = $userdata['user_lang']; 

luvz2drv
Registered User
Posts: 47
Joined: Mon Nov 21, 2005 5:31 am

my function works fine heres a copy

Post by luvz2drv » Wed Dec 13, 2006 6:23 am

this is from a .21 production site and work you can copy and replace in yours or use to track down where you have to make edits but should match this.

enjoy

Code: Select all

<?php
/***************************************************************************
 *                               functions.php
 *                            -------------------
 *   begin                : Saturday, Feb 13, 2001
 *   copyright            : (C) 2001 The phpBB Group
 *   email                : support@phpbb.com
 *
 *   $Id: functions.php,v 1.133.2.38 2005/12/19 18:01:36 acydburn Exp $
 *
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 *
 ***************************************************************************/

function get_db_stat($mode)
{
	global $db;

	switch( $mode )
	{
		case 'usercount':
			$sql = "SELECT COUNT(user_id) AS total
				FROM " . USERS_TABLE . "
				WHERE user_id <> " . ANONYMOUS;
			break;

		case 'newestuser':
			$sql = "SELECT user_id, username
				FROM " . USERS_TABLE . "
				WHERE user_id <> " . ANONYMOUS . "
				ORDER BY user_id DESC
				LIMIT 1";
//-- mod : Advanced Group Color Management -------------------------------------
//-- add
			$sql = str_replace('SELECT ', 'SELECT user_group_id, user_session_time, ', $sql);
//-- fin mod : Advanced Group Color Management ---------------------------------

			break;

		case 'postcount':
		case 'topiccount':
			$sql = "SELECT SUM(forum_topics) AS topic_total, SUM(forum_posts) AS post_total
				FROM " . FORUMS_TABLE;
			break;
	}

	if ( !($result = $db->sql_query($sql)) )
	{
		return false;
	}

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

	switch ( $mode )
	{
		case 'usercount':
			return $row['total'];
			break;
		case 'newestuser':
			return $row;
			break;
		case 'postcount':
			return $row['post_total'];
			break;
		case 'topiccount':
			return $row['topic_total'];
			break;
	}

	return false;
}

// added at phpBB 2.0.11 to properly format the username
function phpbb_clean_username($username)
{
	$username = substr(htmlspecialchars(str_replace("\'", "'", trim($username))), 0, 25);
	$username = phpbb_rtrim($username, "\\");
	$username = str_replace("'", "\'", $username);

	return $username;
}

/**
* This function is a wrapper for ltrim, as charlist is only supported in php >= 4.1.0
* Added in phpBB 2.0.18
*/
function phpbb_ltrim($str, $charlist = false)
{
	if ($charlist === false)
	{
		return ltrim($str);
	}
	
	$php_version = explode('.', PHP_VERSION);

	// php version < 4.1.0
	if ((int) $php_version[0] < 4 || ((int) $php_version[0] == 4 && (int) $php_version[1] < 1))
	{
		while ($str{0} == $charlist)
		{
			$str = substr($str, 1);
		}
	}
	else
	{
		$str = ltrim($str, $charlist);
	}

	return $str;
}

// added at phpBB 2.0.12 to fix a bug in PHP 4.3.10 (only supporting charlist in php >= 4.1.0)
function phpbb_rtrim($str, $charlist = false)
{
	if ($charlist === false)
	{
		return rtrim($str);
	}
	
	$php_version = explode('.', PHP_VERSION);

	// php version < 4.1.0
	if ((int) $php_version[0] < 4 || ((int) $php_version[0] == 4 && (int) $php_version[1] < 1))
	{
		while ($str{strlen($str)-1} == $charlist)
		{
			$str = substr($str, 0, strlen($str)-1);
		}
	}
	else
	{
		$str = rtrim($str, $charlist);
	}

	return $str;
}

//
// Get Userdata, $user can be username or user_id. If force_str is true, the username will be forced.
//
function get_userdata($user, $force_str = false)
{
	global $db;

	if (!is_numeric($user) || $force_str)
	{
		$user = phpbb_clean_username($user);
	}
	else
	{
		$user = intval($user);
	}

	$sql = "SELECT *
		FROM " . USERS_TABLE . " 
		WHERE ";
	$sql .= ( ( is_integer($user) ) ? "user_id = $user" : "username = '" .  str_replace("\'", "''", $user) . "'" ) . " AND user_id <> " . ANONYMOUS;
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Tried obtaining data for a non-existent user', '', __LINE__, __FILE__, $sql);
	}

	return ( $row = $db->sql_fetchrow($result) ) ? $row : false;
}

function make_jumpbox($action, $match_forum_id = 0)
{
	global $template, $userdata, $lang, $db, $nav_links, $phpEx, $SID;

//	$is_auth = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata);

	$sql = "SELECT c.cat_id, c.cat_title, c.cat_order
		FROM " . CATEGORIES_TABLE . " c, " . FORUMS_TABLE . " f
		WHERE f.cat_id = c.cat_id
		GROUP BY c.cat_id, c.cat_title, c.cat_order
		ORDER BY c.cat_order";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, "Couldn't obtain category list.", "", __LINE__, __FILE__, $sql);
	}
	
	$category_rows = array();
	while ( $row = $db->sql_fetchrow($result) )
	{
		$category_rows[] = $row;
	}

	if ( $total_categories = count($category_rows) )
	{
		$sql = "SELECT *
			FROM " . FORUMS_TABLE . "
			ORDER BY cat_id, forum_order";
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql);
		}

		$boxstring = '<select name="' . POST_FORUM_URL . '" onchange="if(this.options[this.selectedIndex].value != -1){ forms[\'jumpbox\'].submit() }"><option value="-1">' . $lang['Select_forum'] . '</option>';

		$forum_rows = array();
		while ( $row = $db->sql_fetchrow($result) )
		{
			$forum_rows[] = $row;
		}

		if ( $total_forums = count($forum_rows) )
		{
			for($i = 0; $i < $total_categories; $i++)
			{
				$boxstring_forums = '';
				for($j = 0; $j < $total_forums; $j++)
				{
					if ( $forum_rows[$j]['cat_id'] == $category_rows[$i]['cat_id'] && $forum_rows[$j]['auth_view'] <= AUTH_REG )
					{

//					if ( $forum_rows[$j]['cat_id'] == $category_rows[$i]['cat_id'] && $is_auth[$forum_rows[$j]['forum_id']]['auth_view'] )
//					{
						$selected = ( $forum_rows[$j]['forum_id'] == $match_forum_id ) ? 'selected="selected"' : '';
						$boxstring_forums .=  '<option value="' . $forum_rows[$j]['forum_id'] . '"' . $selected . '>' . $forum_rows[$j]['forum_name'] . '</option>';

						//
						// Add an array to $nav_links for the Mozilla navigation bar.
						// 'chapter' and 'forum' can create multiple items, therefore we are using a nested array.
						//
						$nav_links['chapter forum'][$forum_rows[$j]['forum_id']] = array (
							'url' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=" . $forum_rows[$j]['forum_id']),
							'title' => $forum_rows[$j]['forum_name']
						);
								
					}
				}

				if ( $boxstring_forums != '' )
				{
					$boxstring .= '<option value="-1">&nbsp;</option>';
					$boxstring .= '<option value="-1">' . $category_rows[$i]['cat_title'] . '</option>';
					$boxstring .= '<option value="-1">----------------</option>';
					$boxstring .= $boxstring_forums;
				}
			}
		}

		$boxstring .= '</select>';
	}
	else
	{
		$boxstring .= '<select name="' . POST_FORUM_URL . '" onchange="if(this.options[this.selectedIndex].value != -1){ forms[\'jumpbox\'].submit() }"></select>';
	}

	// Let the jumpbox work again in sites having additional session id checks.
//	if ( !empty($SID) )
//	{
		$boxstring .= '<input type="hidden" name="sid" value="' . $userdata['session_id'] . '" />';
//	}

	$template->set_filenames(array(
		'jumpbox' => 'jumpbox.tpl')
	);
	$template->assign_vars(array(
		'L_GO' => $lang['Go'],
		'L_JUMP_TO' => $lang['Jump_to'],
		'L_SELECT_FORUM' => $lang['Select_forum'],

		'S_JUMPBOX_SELECT' => $boxstring,
		'S_JUMPBOX_ACTION' => append_sid($action))
	);
	$template->assign_var_from_handle('JUMPBOX', 'jumpbox');

	return;
}

//
// Initialise user settings on page load
function init_userprefs($userdata)
{
	global $board_config, $theme, $images;
	global $template, $lang, $phpEx, $phpbb_root_path;
	global $nav_links;
//-- mod : Advanced Group Color Management -------------------------------------
//-- add
	global $colors;

	$colors->default_lang = $board_config['default_lang'];
//-- fin mod : Advanced Group Color Management ---------------------------------

	if ( $userdata['user_id'] != ANONYMOUS )
	{
		if ( !empty($userdata['user_lang']))
		{
			$board_config['default_lang'] = $userdata['user_lang'];
		}

		if ( !empty($userdata['user_dateformat']) )
		{
			$board_config['default_dateformat'] = $userdata['user_dateformat'];
		}

		if ( isset($userdata['user_timezone']) )
		{
			$board_config['board_timezone'] = $userdata['user_timezone'];
		}
	}

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

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

	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);
	}
//-- mod : Advanced Group Color Management -------------------------------------
//-- add
	$colors->lang();
//-- fin mod : Advanced Group Color Management ---------------------------------


	include_attach_lang();

	//
	// Set up style
	//
	if ( !$board_config['override_user_style'] )
	{
		if ( $userdata['user_id'] != ANONYMOUS && $userdata['user_style'] > 0 )
		{
			if ( $theme = setup_style($userdata['user_style']) )
			{
				return;
			}
		}
	}

	$theme = setup_style($board_config['default_style']);

	//
	// Mozilla navigation bar
	// Default items that should be valid on all pages.
	// Defined here to correctly assign the Language Variables
	// and be able to change the variables within code.
	//
	$nav_links['top'] = array ( 
		'url' => append_sid($phpbb_root_path . 'index.' . $phpEx),
		'title' => sprintf($lang['Forum_Index'], $board_config['sitename'])
	);
	$nav_links['search'] = array ( 
		'url' => append_sid($phpbb_root_path . 'search.' . $phpEx),
		'title' => $lang['Search']
	);
	$nav_links['help'] = array ( 
		'url' => append_sid($phpbb_root_path . 'faq.' . $phpEx),
		'title' => $lang['FAQ']
	);
	$nav_links['author'] = array ( 
		'url' => append_sid($phpbb_root_path . 'memberlist.' . $phpEx),
		'title' => $lang['Memberlist']
	);

	return;
}

function setup_style($style)
{
	global $db, $board_config, $template, $images, $phpbb_root_path;

	$sql = "SELECT *
		FROM " . THEMES_TABLE . "
		WHERE themes_id = $style";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(CRITICAL_ERROR, 'Could not query database for theme info');
	}

	if ( !($row = $db->sql_fetchrow($result)) )
	{
		message_die(CRITICAL_ERROR, "Could not get theme data for themes_id [$style]");
	}

	$template_path = 'templates/' ;
	$template_name = $row['template_name'] ;

	$template = new Template($phpbb_root_path . $template_path . $template_name);

	if ( $template )
	{
		$current_template_path = $template_path . $template_name;
		@include($phpbb_root_path . $template_path . $template_name . '/' . $template_name . '.cfg');

		if ( !defined('TEMPLATE_CONFIG') )
		{
			message_die(CRITICAL_ERROR, "Could not open $template_name template config file", '', __LINE__, __FILE__);
		}

		$img_lang = ( file_exists(@phpbb_realpath($phpbb_root_path . $current_template_path . '/images/lang_' . $board_config['default_lang'])) ) ? $board_config['default_lang'] : 'english';

		while( list($key, $value) = @each($images) )
		{
			if ( !is_array($value) )
			{
				$images[$key] = str_replace('{LANG}', 'lang_' . $img_lang, $value);
			}
		}
	}

	return $row;
}

function encode_ip($dotquad_ip)
{
	$ip_sep = explode('.', $dotquad_ip);
	return sprintf('%02x%02x%02x%02x', $ip_sep[0], $ip_sep[1], $ip_sep[2], $ip_sep[3]);
}

function decode_ip($int_ip)
{
	$hexipbang = explode('.', chunk_split($int_ip, 2, '.'));
	return hexdec($hexipbang[0]). '.' . hexdec($hexipbang[1]) . '.' . hexdec($hexipbang[2]) . '.' . hexdec($hexipbang[3]);
}

//
// Create date/time from format and timezone
//
function create_date($format, $gmepoch, $tz)
{
	global $board_config, $lang;
	static $translate;

	if ( empty($translate) && $board_config['default_lang'] != 'english' )
	{
		@reset($lang['datetime']);
		while ( list($match, $replace) = @each($lang['datetime']) )
		{
			$translate[$match] = $replace;
		}
	}

	return ( !empty($translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * $tz)), $translate) : @gmdate($format, $gmepoch + (3600 * $tz));
}

//
// Pagination routine, generates
// page number sequence
//
function generate_pagination($base_url, $num_items, $per_page, $start_item, $add_prevnext_text = TRUE)
{
	global $lang;

	$total_pages = ceil($num_items/$per_page);

	if ( $total_pages == 1 )
	{
		return '';
	}

	$on_page = floor($start_item / $per_page) + 1;

	$page_string = '';
	if ( $total_pages > 10 )
	{
		$init_page_max = ( $total_pages > 3 ) ? 3 : $total_pages;

		for($i = 1; $i < $init_page_max + 1; $i++)
		{
			$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . append_sid($base_url . "&start=" . ( ( $i - 1 ) * $per_page ) ) . '">' . $i . '</a>';
			if ( $i <  $init_page_max )
			{
				$page_string .= ", ";
			}
		}

		if ( $total_pages > 3 )
		{
			if ( $on_page > 1  && $on_page < $total_pages )
			{
				$page_string .= ( $on_page > 5 ) ? ' ... ' : ', ';

				$init_page_min = ( $on_page > 4 ) ? $on_page : 5;
				$init_page_max = ( $on_page < $total_pages - 4 ) ? $on_page : $total_pages - 4;

				for($i = $init_page_min - 1; $i < $init_page_max + 2; $i++)
				{
					$page_string .= ($i == $on_page) ? '<b>' . $i . '</b>' : '<a href="' . append_sid($base_url . "&start=" . ( ( $i - 1 ) * $per_page ) ) . '">' . $i . '</a>';
					if ( $i <  $init_page_max + 1 )
					{
						$page_string .= ', ';
					}
				}

				$page_string .= ( $on_page < $total_pages - 4 ) ? ' ... ' : ', ';
			}
			else
			{
				$page_string .= ' ... ';
			}

			for($i = $total_pages - 2; $i < $total_pages + 1; $i++)
			{
				$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>'  : '<a href="' . append_sid($base_url . "&start=" . ( ( $i - 1 ) * $per_page ) ) . '">' . $i . '</a>';
				if( $i <  $total_pages )
				{
					$page_string .= ", ";
				}
			}
		}
	}
	else
	{
		for($i = 1; $i < $total_pages + 1; $i++)
		{
			$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . append_sid($base_url . "&start=" . ( ( $i - 1 ) * $per_page ) ) . '">' . $i . '</a>';
			if ( $i <  $total_pages )
			{
				$page_string .= ', ';
			}
		}
	}

	if ( $add_prevnext_text )
	{
		if ( $on_page > 1 )
		{
			$page_string = ' <a href="' . append_sid($base_url . "&start=" . ( ( $on_page - 2 ) * $per_page ) ) . '">' . $lang['Previous'] . '</a>&nbsp;&nbsp;' . $page_string;
		}

		if ( $on_page < $total_pages )
		{
			$page_string .= '&nbsp;&nbsp;<a href="' . append_sid($base_url . "&start=" . ( $on_page * $per_page ) ) . '">' . $lang['Next'] . '</a>';
		}

	}

	$page_string = $lang['Goto_page'] . ' ' . $page_string;

	return $page_string;
}

//
// This does exactly what preg_quote() does in PHP 4-ish
// If you just need the 1-parameter preg_quote call, then don't bother using this.
//
function phpbb_preg_quote($str, $delimiter)
{
	$text = preg_quote($str);
	$text = str_replace($delimiter, '\\' . $delimiter, $text);
	
	return $text;
}

//
// Obtain list of naughty words and build preg style replacement arrays for use by the
// calling script, note that the vars are passed as references this just makes it easier
// to return both sets of arrays
//
function obtain_word_list(&$orig_word, &$replacement_word)
{
	global $db;

	//
	// Define censored word matches
	//
	$sql = "SELECT word, replacement
		FROM  " . WORDS_TABLE;
	if( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not get censored words from database', '', __LINE__, __FILE__, $sql);
	}

	if ( $row = $db->sql_fetchrow($result) )
	{
		do 
		{
			$orig_word[] = '#\b(' . str_replace('\*', '\w*?', preg_quote($row['word'], '#')) . ')\b#i';
			$replacement_word[] = $row['replacement'];
		}
		while ( $row = $db->sql_fetchrow($result) );
	}

	return true;
}

//
// This is general replacement for die(), allows templated
// output in users (or default) language, etc.
//
// $msg_code can be one of these constants:
//
// GENERAL_MESSAGE : Use for any simple text message, eg. results 
// of an operation, authorisation failures, etc.
//
// GENERAL ERROR : Use for any error which occurs _AFTER_ the 
// common.php include and session code, ie. most errors in 
// pages/functions
//
// CRITICAL_MESSAGE : Used when basic config data is available but 
// a session may not exist, eg. banned users
//
// CRITICAL_ERROR : Used when config data cannot be obtained, eg
// no database connection. Should _not_ be used in 99.5% of cases
//
function message_die($msg_code, $msg_text = '', $msg_title = '', $err_line = '', $err_file = '', $sql = '')
{
	global $db, $template, $board_config, $theme, $lang, $phpEx, $phpbb_root_path, $nav_links, $gen_simple_header, $images;
	global $userdata, $user_ip, $session_length;
	global $starttime;
//-- mod : Advanced Group Color Management -------------------------------------
//-- add
	global $colors;
//-- fin mod : Advanced Group Color Management ---------------------------------


	if(defined('HAS_DIED'))
	{
		die("message_die() was called multiple times. This isn't supposed to happen. Was message_die() used in page_tail.php?");
	}
	
	define('HAS_DIED', 1);
	

	$sql_store = $sql;
	
	//
	// Get SQL error if we are debugging. Do this as soon as possible to prevent 
	// subsequent queries from overwriting the status of sql_error()
	//
	if ( DEBUG && ( $msg_code == GENERAL_ERROR || $msg_code == CRITICAL_ERROR ) )
	{
		$sql_error = $db->sql_error();

		$debug_text = '';

		if ( $sql_error['message'] != '' )
		{
			$debug_text .= '<br /><br />SQL Error : ' . $sql_error['code'] . ' ' . $sql_error['message'];
		}

		if ( $sql_store != '' )
		{
			$debug_text .= "<br /><br />$sql_store";
		}

		if ( $err_line != '' && $err_file != '' )
		{
			$debug_text .= '</br /><br />Line : ' . $err_line . '<br />File : ' . basename($err_file);
		}
	}

	if( empty($userdata) && ( $msg_code == GENERAL_MESSAGE || $msg_code == GENERAL_ERROR ) )
	{
		$userdata = session_pagestart($user_ip, PAGE_INDEX);
		init_userprefs($userdata);
	}

	//
	// If the header hasn't been output then do it
	//
	if ( !defined('HEADER_INC') && $msg_code != CRITICAL_ERROR )
	{
		if ( empty($lang) )
		{
			if ( !empty($board_config['default_lang']) )
			{
				include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_main.'.$phpEx);
			}
			else
			{
				include($phpbb_root_path . 'language/lang_english/lang_main.'.$phpEx);
			}
		}

		if ( empty($template) )
		{
			$template = new Template($phpbb_root_path . 'templates/' . $board_config['board_template']);
		}
		if ( empty($theme) )
		{
			$theme = setup_style($board_config['default_style']);
		}

		//
		// Load the Page Header
		//
		if ( !defined('IN_ADMIN') )
		{
			include($phpbb_root_path . 'includes/page_header.'.$phpEx);
		}
		else
		{
			include($phpbb_root_path . 'admin/page_header_admin.'.$phpEx);
		}
	}

	switch($msg_code)
	{
		case GENERAL_MESSAGE:
			if ( $msg_title == '' )
			{
				$msg_title = $lang['Information'];
			}
			break;

		case CRITICAL_MESSAGE:
			if ( $msg_title == '' )
			{
				$msg_title = $lang['Critical_Information'];
			}
			break;

		case GENERAL_ERROR:
			if ( $msg_text == '' )
			{
				$msg_text = $lang['An_error_occured'];
			}

			if ( $msg_title == '' )
			{
				$msg_title = $lang['General_Error'];
			}
			break;

		case CRITICAL_ERROR:
			//
			// Critical errors mean we cannot rely on _ANY_ DB information being
			// available so we're going to dump out a simple echo'd statement
			//
			include($phpbb_root_path . 'language/lang_english/lang_main.'.$phpEx);

			if ( $msg_text == '' )
			{
				$msg_text = $lang['A_critical_error'];
			}

			if ( $msg_title == '' )
			{
				$msg_title = 'phpBB : <b>' . $lang['Critical_Error'] . '</b>';
			}
			break;
	}

	//
	// Add on DEBUG info if we've enabled debug mode and this is an error. This
	// prevents debug info being output for general messages should DEBUG be
	// set TRUE by accident (preventing confusion for the end user!)
	//
	if ( DEBUG && ( $msg_code == GENERAL_ERROR || $msg_code == CRITICAL_ERROR ) )
	{
		if ( $debug_text != '' )
		{
			$msg_text = $msg_text . '<br /><br /><b><u>DEBUG MODE</u></b>' . $debug_text;
		}
	}

	if ( $msg_code != CRITICAL_ERROR )
	{
		if ( !empty($lang[$msg_text]) )
		{
			$msg_text = $lang[$msg_text];
		}

		if ( !defined('IN_ADMIN') )
		{
			$template->set_filenames(array(
				'message_body' => 'message_body.tpl')
			);
		}
		else
		{
			$template->set_filenames(array(
				'message_body' => 'admin/admin_message_body.tpl')
			);
		}

		$template->assign_vars(array(
			'MESSAGE_TITLE' => $msg_title,
			'MESSAGE_TEXT' => $msg_text)
		);
		$template->pparse('message_body');

		if ( !defined('IN_ADMIN') )
		{
			include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
		}
		else
		{
			include($phpbb_root_path . 'admin/page_footer_admin.'.$phpEx);
		}
	}
	else
	{
		echo "<html>\n<body>\n" . $msg_title . "\n<br /><br />\n" . $msg_text . "</body>\n</html>";
	}

	exit;
}

//
// This function is for compatibility with PHP 4.x's realpath()
// function.  In later versions of PHP, it needs to be called
// to do checks with some functions.  Older versions of PHP don't
// seem to need this, so we'll just return the original value.
// dougk_ff7 <October 5, 2002>
function phpbb_realpath($path)
{
	global $phpbb_root_path, $phpEx;

	return (!@function_exists('realpath') || !@realpath($phpbb_root_path . 'includes/functions.'.$phpEx)) ? $path : @realpath($path);
}

function redirect($url)
{
	global $db, $board_config;

	if (!empty($db))
	{
		$db->sql_close();
	}

	if (strstr(urldecode($url), "\n") || strstr(urldecode($url), "\r"))
	{
		message_die(GENERAL_ERROR, 'Tried to redirect to potentially insecure url.');
	}

	$server_protocol = ($board_config['cookie_secure']) ? 'https://' : 'http://';
	$server_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim($board_config['server_name']));
	$server_port = ($board_config['server_port'] <> 80) ? ':' . trim($board_config['server_port']) : '';
	$script_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim($board_config['script_path']));
	$script_name = ($script_name == '') ? $script_name : '/' . $script_name;
	$url = preg_replace('#^\/?(.*?)\/?$#', '/\1', trim($url));

	// Redirect via an HTML form for PITA webservers
	if (@preg_match('/Microsoft|WebSTAR|Xitami/', getenv('SERVER_SOFTWARE')))
	{
		header('Refresh: 0; URL=' . $server_protocol . $server_name . $server_port . $script_name . $url);
		echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><meta http-equiv="refresh" content="0; url=' . $server_protocol . $server_name . $server_port . $script_name . $url . '"><title>Redirect</title></head><body><div align="center">If your browser does not support meta redirection please click <a href="' . $server_protocol . $server_name . $server_port . $script_name . $url . '">HERE</a> to be redirected</div></body></html>';
		exit;
	}

	// Behave as per HTTP/1.1 spec for others
	header('Location: ' . $server_protocol . $server_name . $server_port . $script_name . $url);
	exit;
}

function lw_convert_period_basis($pbasis)
{
	$grp_period_basis = '';
	if(strcasecmp($pbasis, 'D') == 0 )
	{
		$grp_period_basis = 'Day(s)';
	}
	if(strcasecmp($pbasis, 'W') == 0 )
	{
		$grp_period_basis = 'Week(s)';
	}
	if(strcasecmp($pbasis, 'M') == 0 )
	{
		$grp_period_basis = 'Month(s)';
	}
	if(strcasecmp($pbasis, 'Y') == 0 )
	{
		$grp_period_basis = 'Year(s)';
	}
	return $grp_period_basis;
}
function lw_check_membership(&$userinfo)
{
	global $db;

	$result = 0;
	if($userinfo['user_level'] != ADMIN && $userinfo['user_level'] != MOD )
	{
		$sql = "SELECT * FROM " . GROUPS_TABLE . " WHERE group_type = " . GROUP_PAYMENT . " AND group_amount > 0 AND group_moderator <> " . $userinfo['user_id'];
		if ( !($result = $db->sql_query($sql)) )
		{
			return $result;
		}
		$group_infos = array();
		if( ($group_info = $db->sql_fetchrow($result)) )
		{
			do
			{
				$group_infos[] = $group_info;
			}
			while( $group_info = $db->sql_fetchrow($result) );
		}
		$groupwhere = '';
		for($i = 0; $i < count($group_infos); $i++)
		{
			if($i == 0)
			{
				$groupwhere .= "(";
			}
			$groupwhere .= "group_id = " . $group_infos[$i]['group_id'];
			if($i < (count($group_infos) - 1))
			{
				$groupwhere .= " OR ";
			}
			else
			{
				$groupwhere .= ") AND user_id = " . $userinfo['user_id'] . " AND ug_expire_date < " . time();
			}
		}
		if(strlen($groupwhere) > 0)
		{
			$sql = "DELETE FROM " . USER_GROUP_TABLE . " WHERE $groupwhere";
			if( !($result = $db->sql_query($sql)) )
			{
				//do nothing
				return $result;
			}
		}



	}
	$result = 1;

	return $result;
}
function lw_grap_sys_paypal_acct()
{

	global $board_config;

		//get payment account, use business account first, if not exist, then choose personal account
		$paypalaccount = "";
		if(strlen($board_config['paypal_p_acct']) <= 0 && strlen($board_config['paypal_b_acct']) <= 0)
		{
			return $paypalaccount;
		}
		if(isset($board_config['paypal_b_acct']) && strlen($board_config['paypal_b_acct']) > 0)
		{
			$paypalaccount = $board_config['paypal_b_acct'];
		}
		else
		{
			$paypalaccount = $board_config['paypal_p_acct'];
		}
		return $paypalaccount;
}

function lw_cal_cash_exchange_rate($currency, $configuration)
{
	$convertor = 1.0;
	if(strcasecmp($currency, 'USD') == 0)
	{
		$convertor = $configuration['usd_to_primary'];
	}
	else if(strcasecmp($currency, 'EUR') == 0)
	{
		$convertor = $configuration['eur_to_primary'];
	}
	else if(strcasecmp($currency, 'GBP') == 0)
	{
		$convertor = $configuration['gbp_to_primary'];
	}
	else if(strcasecmp($currency, 'CAD') == 0)
	{
		$convertor = $configuration['cad_to_primary'];
	}
	else if(strcasecmp($currency, 'JPY') == 0)
	{
		$convertor = $configuration['jpy_to_primary'];
	}
	if($convertor <= 0)
	{
		$convertor = 1.0;
	}
	return $convertor;
}


?>

Frosty1
Registered User
Posts: 85
Joined: Mon Mar 06, 2006 4:55 pm

Post by Frosty1 » Wed Dec 13, 2006 6:36 am

So are the only code blocks I need to concern myself with, the ones that have the --advanced color-- comment tags?

I have mods that have been installed and modified the functions.php file, so I think it would be best if I just make the additions. If that's the case and I just need to add the required code blocks, can I then run easymod again to finish the rest?

After trying just that, the changes to the functions.php file crash the forum. This looks to be a long and painful manual install.

This block crashes the forums:

Code: Select all

//-- mod : Advanced Group Color Management ------------------------------------- 
//-- add 
   $colors->lang(); 
//-- fin mod : Advanced Group Color Management --------------------------------- 
thanks for the response.

luvz2drv
Registered User
Posts: 47
Joined: Mon Nov 21, 2005 5:31 am

yes that is the only block you have to worry about...

Post by luvz2drv » Wed Dec 13, 2006 7:04 am

yes that is the only code that is inserted in there -- but it is there a few times...

hope this helps

Seria
Registered User
Posts: 137
Joined: Thu Dec 14, 2006 8:14 am
Location: out havin’ fun

Post by Seria » Sun Dec 17, 2006 5:08 am

Hey guys ^_^
I have installed this mod and it worked perfectly ^_^

I just have something that can’t figure out that im sure all you geniuses could help me with.

I would love to have someone help me add the following 4 simple things:

:arrow: inside viewtopic_body.tpl, I would like to have the post’s author’s name be its repsective color.

:arrow: In overall_header.tpl, when a user is logged in and their name is up at the top of the page, I would like to be its respective color

:arrow: and while we’re at it, I’ve installed the ‘Admin-user list MOD’ and I would like to be able to have those names be shown in their respective colors as well.

and finally, the last one

:arrow: how can I change the style of the username’s? Before I installed this mod, the username’s where not underlined, now they are. I’ve tried playing around with the css file, but it doesn’t do anything.

Please help me guys, I know you can do it. ^_^
¿What do you call it when a blond dies her hair brunette?
Artificial intelligence ^_~ ...yes, im blond :P

I will offer as much help I can on mods that I have installed, just PM me. (i don't use easymod, so I can't help with that.)
Mods installed so far:48 {all manually and on 2.0.22}

Seria
Registered User
Posts: 137
Joined: Thu Dec 14, 2006 8:14 am
Location: out havin’ fun

Post by Seria » Mon Dec 18, 2006 12:45 am

is there anyone who can offer some help?
¿What do you call it when a blond dies her hair brunette?
Artificial intelligence ^_~ ...yes, im blond :P

I will offer as much help I can on mods that I have installed, just PM me. (i don't use easymod, so I can't help with that.)
Mods installed so far:48 {all manually and on 2.0.22}

Post Reply

Return to “[2.0.x] MOD Database Releases”