[ABD] Profile Control Panel

A place for MOD Authors to post and receive feedback on MODs still in development. No MODs within this forum should be used within a live environment! No new topics are allowed in this forum.
Forum rules
READ: phpBB.com Board-Wide Rules and Regulations

IMPORTANT: MOD Development Forum rules

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

Rating:

Excellent!
260
60%
Very Good
81
19%
Good
43
10%
Fair
9
2%
Poor
41
9%
 
Total votes: 434

-FN-
Registered User
Posts: 15
Joined: Wed Jun 01, 2005 6:53 pm

Post by -FN- » Tue Sep 20, 2005 4:54 pm

I can't read through 180 pages of posts to see if this has been fixed, sorry...

Any logged in user can edit anyone elses info via editing the URL...

http://your.website.com/phpbb/profile.p ... sub=2&u=37

Just change the variable 'u' to any other user ID and you can edit the fields and save them...

That really sucks 8O

vsag
Registered User
Posts: 3
Joined: Sun Sep 18, 2005 12:07 pm

Post by vsag » Tue Sep 20, 2005 8:34 pm

Hi there. When i go to My Profile / Buddy List, all the tabs (Friend List, Ignore List, All the members) return me the foolowing error
Could not read user informations

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '<> 0 OR 0 <> 1 ) AND ( b.buddy_visible = 1 OR ( u.user_allow_viewonline = 1 OR (' at line 9

SELECT DISTINCT
u.*,
(CASE WHEN i.buddy_ignore = 0 THEN 1 ELSE 0 END) AS user_my_friend_virt,
i.buddy_visible AS user_my_visible_virt,
(CASE WHEN i.buddy_ignore = 1 THEN 1 ELSE 0 END) AS user_my_ignore_virt,
(CASE WHEN b.buddy_ignore = 0 THEN 1 ELSE 0 END) AS user_friend_virt,
b.buddy_visible AS user_visible_virt,
(CASE WHEN b.buddy_ignore = 1 THEN 1 ELSE 0 END) AS user_ignore_virt,
(CASE WHEN (u.user_id = 290 OR ( ( i.buddy_ignore <> 1 OR i.buddy_ignore IS NULL ) AND ( <> 0 OR 0 <> 1 ) AND ( b.buddy_visible = 1 OR ( u.user_allow_viewonline = 1 OR ( = 1 AND 0 = 1) ) OR ( b.buddy_ignore = 0 AND ( u.user_allow_viewonline = 2 OR ( = 2 AND 0 = 1) ) ) ) )) THEN (CASE WHEN u.user_session_time >= (1127248123-300) THEN 1 ELSE 0 END) ELSE '' END) AS user_online_virt,
u.username AS username_virt,
(CASE WHEN (u.user_id = 290 OR ( ( i.buddy_ignore <> 1 OR i.buddy_ignore IS NULL ) AND ( <> 0 OR 0 <> 1 ) AND ( b.buddy_visible = 1 OR ( u.user_allow_viewonline = 1 OR ( = 1 AND 0 = 1) ) OR ( b.buddy_ignore = 0 AND ( u.user_allow_viewonline = 2 OR ( = 2 AND 0 = 1) ) ) ) )) THEN u.user_regdate ELSE '' END) AS user_regdate_virt,
(CASE WHEN (u.user_id = 290 OR ( ( i.buddy_ignore <> 1 OR i.buddy_ignore IS NULL ) AND ( <> 0 OR 0 <> 1 ) AND ( b.buddy_visible = 1 OR ( u.user_allow_viewonline = 1 OR ( = 1 AND 0 = 1) ) OR ( b.buddy_ignore = 0 AND ( u.user_allow_viewonline = 2 OR ( = 2 AND 0 = 1) ) ) ) )) THEN u.user_lastvisit ELSE '' END) AS user_lastvisit_virt,
(CASE WHEN (u.user_id = 290 OR ( ( i.buddy_ignore <> 1 OR i.buddy_ignore IS NULL ) AND ( <> 0 OR 0 <> 1 ) AND ( b.buddy_visible = 1 OR ( u.user_allow_viewonline = 1 OR ( = 1 AND 0 = 1) ) OR ( b.buddy_ignore = 0 AND ( u.user_allow_viewonline = 2 OR ( = 2 AND 0 = 1) ) ) ) )) THEN u.user_posts ELSE '' END) AS user_posts_virt,
(CASE WHEN (u.user_id = 290 OR ( ( i.buddy_ignore <> 1 OR i.buddy_ignore IS NULL ) AND ( <> 0 OR 0 <> 1 ) AND u.user_allow_website = 1 AND ( b.buddy_visible = 1 OR ( u.user_viewwebsite = 1 OR ( = 1 AND 0 = 1) ) OR ( b.buddy_ignore = 0 AND ( u.user_viewwebsite = 2 OR ( = 2 AND 0 = 1) ) ) ) )) THEN r.rank_title ELSE '' END) AS user_rank_title_virt,
1 AS user_generic_display,
(CASE WHEN (u.user_id = 290 OR ( ( i.buddy_ignore <> 1 OR i.buddy_ignore IS NULL ) AND ( <> 0 OR 0 <> 1 ) AND ( b.buddy_visible = 1 OR ( u.user_allow_viewonline = 1 OR ( = 1 AND 0 = 1) ) OR ( b.buddy_ignore = 0 AND ( u.user_allow_viewonline = 2 OR ( = 2 AND 0 = 1) ) ) ) )) THEN 1 ELSE '' END) AS user_viewonline_display,
(CASE WHEN (u.user_id = 290 OR ( ( i.buddy_ignore <> 1 OR i.buddy_ignore IS NULL ) AND ( <> 0 OR 0 <> 1 ) AND u.user_allow_website = 1 AND ( b.buddy_visible = 1 OR ( u.user_viewwebsite = 1 OR ( = 1 AND 0 = 1) ) OR ( b.buddy_ignore = 0 AND ( u.user_viewwebsite = 2 OR ( = 2 AND 0 = 1) ) ) ) )) THEN 1 ELSE '' END) AS user_webdisplay_display
FROM ((((
phpbb_users AS u)
LEFT JOIN phpbb_buddy AS i ON i.user_id=290 AND i.buddy_id=u.user_id)
LEFT JOIN phpbb_buddy AS b ON b.user_id=u.user_id AND b.buddy_id=290)
LEFT JOIN phpbb_ranks AS r ON (u.user_rank > 0 AND r.rank_special <> 0 AND r.rank_id = u.user_rank) OR (u.user_rank = 0 AND r.rank_special = 0 AND u.user_posts >= r.rank_min AND u.user_posts < r.rank_max))
WHERE u.user_id <> -1 AND i.buddy_ignore = 0
ORDER BY username_virt ASC



Line : 906
File : profilcp_buddy.php


It doesnt happen to me who I am an admin, only to simple users! It's really weird, help me someone please :(

alexge
Registered User
Posts: 11
Joined: Tue Sep 20, 2005 8:23 am

Post by alexge » Wed Sep 21, 2005 1:57 am

This works only for administrator, which is OK. If you log in as a normal user, the link will only allow you to view the public profile of the user, you cannot change anything.
-FN- wrote: I can't read through 180 pages of posts to see if this has been fixed, sorry...

Any logged in user can edit anyone elses info via editing the URL...

http://your.website.com/phpbb/profile.p ... sub=2&u=37

Just change the variable 'u' to any other user ID and you can edit the fields and save them...

That really sucks 8O

alexge
Registered User
Posts: 11
Joined: Tue Sep 20, 2005 8:23 am

Re: After installation, system hangs

Post by alexge » Wed Sep 21, 2005 1:59 am

I have uploaded the files to my online server (linux), and it works! Strange. Does that mean it does not work on a windows platform?
alexge wrote: Hi Gurus,

I have been trying to install this mod, without any success.

Tried a few times already. with clean installation of phpBB 2.0.17, tried with manual installation and also tried with EasyMOD(SQL commands manually executed). After installtion, when visit the site, the Apache.exe process takes 100% CPU and memory goes up, until system hangs. This same thing happened every time. No error msg, no output, just hangs.

I'm running on my WinXP home, installed XAMPP for Windows Version 1.4.13.
Apache/2.0.53 (Win32) mod_ssl/2.0.53 OpenSSL/0.9.7f PHP/5.0.4 mod_jk2/2.0.4
MySQL 4.1.11-nt

Has anyone encountered this kind of problem before? Any advice on how to troubleshoot?

Thanks a million

Riamus
Registered User
Posts: 886
Joined: Tue Jun 21, 2005 7:40 pm

Post by Riamus » Wed Sep 21, 2005 2:09 pm

No, it works on Windows. Most likely, you have some error in your home setup (either with apache or php or mysql).
Kakkoii Translation Team
格好いい 翻訳

User avatar
mattlech
Registered User
Posts: 201
Joined: Thu Jan 20, 2005 6:15 am
Location: New Hampton/Cedar Rapids, Iowa
Contact:

Post by mattlech » Sun Sep 25, 2005 8:40 am

I hope its ok that I can post on here as I'm having problems with this mod. I installed it and it says well you have to read to believe it. http://vincemedia.net/index.php and I know it says something about the functions file. I looked that over and over but can't find one thing wrong. Can someone help me? Here's what the inside that file looks like

thanks in advance!

include/functions.php

Code: Select all

<?php
//-- mod : language settings -----------------------------------------------------------------------
//-- mod : mods settings ---------------------------------------------------------------------------
//-- mod : profile cp ------------------------------------------------------------------------------
/***************************************************************************
 *                               functions.php
 *                            -------------------
 *   begin                : Saturday, Feb 13, 2001
 *   copyright            : (C) 2001 The phpBB Group
 *   email                : support@phpbb.com
 *
 *   $Id: functions.php,v 1.133.2.34 2005/02/21 18:37:33 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";
			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;
}

// 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 (intval($user) == 0 || $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 = '" .  $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 : profile cp ------------------------------------------------------------------------------
//-- add
	global $admin_level, $level_prior, $level_desc;
	global $values_list, $tables_linked, $classes_fields, $user_maps, $user_fields;
	global $list_yes_no;

	include_once( $phpbb_root_path . './profilcp/functions_profile.' . $phpEx);
//-- fin mod : profile cp --------------------------------------------------------------------------
//-- mod : mods settings ---------------------------------------------------------------------------
//-- add
	global $db, $mods, $userdata;

	//	get all the mods settings
	$dir = @opendir($phpbb_root_path . 'includes/mods_settings');
	while( $file = @readdir($dir) )
	{
		if( preg_match("/^mod_.*?\." . $phpEx . "$/", $file) )
		{
			include_once($phpbb_root_path . 'includes/mods_settings/' . $file);
		}
	}
	@closedir($dir);
//-- fin mod : mods settings -----------------------------------------------------------------------	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 : language settings -----------------------------------------------------------------------
//-- add
	include($phpbb_root_path . './includes/lang_extend_mac.' . $phpEx);
//-- fin mod : language settings -------------------------------------------------------------------
	//
	// 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;
}

//
// START MOD: Avatar On Index  - AbelaJohnB
//
//
// Get Template Value
//
function get_template_name($style)
{
	global $db, $board_config, $template, $images, $phpbb_root_path;

	$sql = "SELECT template_name 
		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_name = $row['template_name'] ;

	return $template_name;
}
//
// END MOD: Avatar On Index  - AbelaJohnB
//
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;//-- mod : profile cp ------------------------------------------------------------------------------
//-- add
	global $userdata, $db;

	if ( !isset($board_config['summer_time']) )
	{
		$board_config['summer_time'] = false;
		$sql = "INSERT INTO " . CONFIG_TABLE . " (config_name,config_value) VALUES('summer_time','0')";
		if ( !($result = $db->sql_query($sql)) ) message_die(GENERAL_ERROR, 'Could not add key summer_time in config table', '', __LINE__, __FILE__, $sql);
	}
	$switch_summer_time = ( $userdata['user_summer_time'] && $board_config['summer_time'] ) ? true : false;
	if ($switch_summer_time) $tz++;
//-- fin mod : profile cp --------------------------------------------------------------------------

	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
//
//-- mod : profile cp ------------------------------------------------------------------------------
// here we added
//	, $start_field='start'
//-- modifyfunction generate_pagination($base_url, $num_items, $per_page, $start_item, $add_prevnext_text = TRUE , $start_field='start'//-- fin mod : profile cp --------------------------------------------------------------------------)
{
	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++)
		{
//-- mod : profile cp ------------------------------------------------------------------------------
// here we replaced
//	start
// with
//	$start_field
//-- modify
			$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . append_sid($base_url . "&$start_field=" . ( ( $i - 1 ) * $per_page ) ) . '">' . $i . '</a>';
//-- fin mod : profile cp --------------------------------------------------------------------------
			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++)
				{
//-- mod : profile cp ------------------------------------------------------------------------------
// here we replaced
//	start
// with
//	$start_field
//-- modify
					$page_string .= ($i == $on_page) ? '<b>' . $i . '</b>' : '<a href="' . append_sid($base_url . "&$start_field=" . ( ( $i - 1 ) * $per_page ) ) . '">' . $i . '</a>';
//-- fin mod : profile cp --------------------------------------------------------------------------
					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++)
			{
//-- mod : profile cp ------------------------------------------------------------------------------
// here we replaced
//	start
// with
//	$start_field
//-- modify
				$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>'  : '<a href="' . append_sid($base_url . "&$start_field=" . ( ( $i - 1 ) * $per_page ) ) . '">' . $i . '</a>';
//-- fin mod : profile cp --------------------------------------------------------------------------
				if( $i <  $total_pages )
				{
					$page_string .= ", ";
				}
			}
		}
	}
	else
	{
		for($i = 1; $i < $total_pages + 1; $i++)
		{
//-- mod : profile cp ------------------------------------------------------------------------------
// here we replaced
//	start
// with
//	$start_field
//-- modify
			$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . append_sid($base_url . "&$start_field=" . ( ( $i - 1 ) * $per_page ) ) . '">' . $i . '</a>';
//-- fin mod : profile cp --------------------------------------------------------------------------
			if ( $i <  $total_pages )
			{
				$page_string .= ', ';
			}
		}
	}

	if ( $add_prevnext_text )
	{
		if ( $on_page > 1 )
		{
//-- mod : profile cp ------------------------------------------------------------------------------
// here we replaced
//	start
// with
//	$start_field
//-- modify
			$page_string = ' <a href="' . append_sid($base_url . "&$start_field=" . ( ( $on_page - 2 ) * $per_page ) ) . '">' . $lang['Previous'] . '</a>&nbsp;&nbsp;' . $page_string;
//-- fin mod : profile cp --------------------------------------------------------------------------
		}

		if ( $on_page < $total_pages )
		{
//-- mod : profile cp ------------------------------------------------------------------------------
// here we replaced
//	start
// with
//	$start_field
//-- modify
			$page_string .= '&nbsp;&nbsp;<a href="' . append_sid($base_url . "&$start_field=" . ( $on_page * $per_page ) ) . '">' . $lang['Next'] . '</a>';
//-- fin mod : profile cp --------------------------------------------------------------------------
		}

	}

	$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*?', phpbb_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 : profile cp ------------------------------------------------------------------------------
//-- add
	global $admin_level, $level_prior;
//-- fin mod : profile cp --------------------------------------------------------------------------

	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);
			}
//-- mod : language settings -----------------------------------------------------------------------
//-- add
			include($phpbb_root_path . './includes/lang_extend_mac.' . $phpEx);
//-- fin mod : language settings -------------------------------------------------------------------		}

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

// MOD - AIM ONLINE/OFFLINE - AbelaJohnB
function real_path($url)
{
	global $board_config;
        $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']));
    return $server_protocol . $server_name . $server_port . '/' . $script_name . '/' . $url;
}
// MOD - AIM ONLINE/OFFLINE - AbelaJohnB
?>
Matthew lechtenberg
http://vincemedia.com

lilfade
Registered User
Posts: 1
Joined: Sun Sep 25, 2005 6:25 pm

i got a problem with this pcp mod need help

Post by lilfade » Sun Sep 25, 2005 7:05 pm

like i said i need help. when i goto view a topic it doesn't show the text or anything also it moves personal information above the topic view itself.

if you dont get what im saying here is my site so u can see for ur self
http://lilfade.hindsights2020.com/forum/index.php

if u need to login do so as
account: test
password: OURFORUMS

also if u need to see my modded files there here
http://lilfade.hindsights2020.com/zip/p ... _files.zip

User avatar
PaperShark
Registered User
Posts: 43
Joined: Fri Nov 05, 2004 1:06 am
Location: Somewhere in the Pacific Ocean
Contact:

Post by PaperShark » Mon Sep 26, 2005 5:17 am

Hi All;

Could you send a me a few links to where I can see this in action?

Thanks!

User avatar
mattlech
Registered User
Posts: 201
Joined: Thu Jan 20, 2005 6:15 am
Location: New Hampton/Cedar Rapids, Iowa
Contact:

Post by mattlech » Mon Sep 26, 2005 5:27 am

Well mine is http://vincemedia.net/index.php and if its ok I did to private messege this. thanks! :)
Matthew lechtenberg
http://vincemedia.com

PencilWarrior
Registered User
Posts: 16
Joined: Tue Aug 23, 2005 12:47 am

Post by PencilWarrior » Mon Sep 26, 2005 11:29 am

Question :

I am the primary admin (Board Founder). Does this mod grant me any extra protection? Can other Admins still demote me and delete my account?

If so, what is a recommended mod that can add this kind of protection?

Riamus
Registered User
Posts: 886
Joined: Tue Jun 21, 2005 7:40 pm

Post by Riamus » Mon Sep 26, 2005 7:30 pm

mattlech: I am guessing you should look into that AIM mod that you're using.

lilfade: I'm not sure what you're seeing, but the topics look fine to me. I just checked your announcements.

PaperShark: You can look on my forum, but you need to be registered to view the PCP stuff. If you want to, the link is in my WWW link below my post.

PencilWarrior: This mod isn't really a protection mod for admins, so no. Your best protection from such things is to not allow anyone you can't trust to be an admin. For that matter, most boards don't need more than one admin. Moderators can do most of the things that would be necessary. If you lose your account, there are a couple mods to regain your admin abilities, though I don't know the names of them. I'm sure if you search the mods forum for protection, you'll find some protection mods.
Kakkoii Translation Team
格好いい 翻訳

User avatar
mattlech
Registered User
Posts: 201
Joined: Thu Jan 20, 2005 6:15 am
Location: New Hampton/Cedar Rapids, Iowa
Contact:

Post by mattlech » Mon Sep 26, 2005 10:02 pm

Cool. thanks.
Matthew lechtenberg
http://vincemedia.com

PencilWarrior
Registered User
Posts: 16
Joined: Tue Aug 23, 2005 12:47 am

Post by PencilWarrior » Tue Sep 27, 2005 1:06 am

Another question ...

Is there anyway to have this mod recognize two "Board Founder" user_ids?

lunara
Registered User
Posts: 51
Joined: Mon May 24, 2004 3:42 am

Post by lunara » Tue Sep 27, 2005 2:17 am

I've tried in vain to search for this but keep getting a blank page. I have keep unread mod installed and half of what it says to mod in the functions.php is not there. Any help would be greatly appreciated from anyone who has run into this problem already.

Thanks!

officeralien
Registered User
Posts: 142
Joined: Mon Mar 29, 2004 11:22 pm

Post by officeralien » Wed Sep 28, 2005 12:43 am

EDIT:

Locked

Return to “[2.0.x] MODs in Development”

Who is online

Users browsing this forum: No registered users and 19 guests