aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul S. Owen <psotfx@users.sourceforge.net>2001-10-11 22:05:36 +0000
committerPaul S. Owen <psotfx@users.sourceforge.net>2001-10-11 22:05:36 +0000
commitdd2033ace0ccbb711406114777dc97a34c996bdc (patch)
treed2fe2aeaa57c15e78d037af5966dbd605cec1040
parente2c755710fa55e69af45827c87547c687fefc1a4 (diff)
downloadforums-dd2033ace0ccbb711406114777dc97a34c996bdc.tar
forums-dd2033ace0ccbb711406114777dc97a34c996bdc.tar.gz
forums-dd2033ace0ccbb711406114777dc97a34c996bdc.tar.bz2
forums-dd2033ace0ccbb711406114777dc97a34c996bdc.tar.xz
forums-dd2033ace0ccbb711406114777dc97a34c996bdc.zip
Preliminary avatar gallery support
git-svn-id: file:///svn/phpbb/trunk@1173 89ea8834-ac86-4346-8a33-228a782c2dd0
-rw-r--r--phpBB/admin/admin_board.php1
-rw-r--r--phpBB/admin/admin_users.php142
-rw-r--r--phpBB/db/mssql_schema.sql6
-rw-r--r--phpBB/db/mysql_schema.sql1
-rw-r--r--phpBB/db/postgres_schema.sql3
-rw-r--r--phpBB/develop/convert_avatars.php51
-rw-r--r--phpBB/includes/constants.php7
-rw-r--r--phpBB/language/lang_english/lang_main.php7
-rw-r--r--phpBB/profile.php843
-rw-r--r--phpBB/templates/subSilver/admin/admin_config_body.tpl4
-rw-r--r--phpBB/templates/subSilver/profile_add_body.tpl5
-rw-r--r--phpBB/templates/subSilver/profile_avatar_gallery.tpl37
-rw-r--r--phpBB/viewtopic.php17
13 files changed, 727 insertions, 397 deletions
diff --git a/phpBB/admin/admin_board.php b/phpBB/admin/admin_board.php
index 5c70130d0e..e89e6aeb84 100644
--- a/phpBB/admin/admin_board.php
+++ b/phpBB/admin/admin_board.php
@@ -153,6 +153,7 @@ $template->assign_vars(array(
"AVATAR_MAX_HEIGHT" => $new['avatar_max_height'],
"AVATAR_MAX_WIDTH" => $new['avatar_max_width'],
"AVATAR_PATH" => $new['avatar_path'],
+ "AVATAR_GALLERY_PATH" => $new['avatar_gallery_path'],
"SMILIES_PATH" => $new['smilies_path'],
"INBOX_PRIVMSGS" => $new['max_inbox_privmsgs'],
"SENTBOX_PRIVMSGS" => $new['max_sentbox_privmsgs'],
diff --git a/phpBB/admin/admin_users.php b/phpBB/admin/admin_users.php
index ec01a8ed6a..54bc94c77d 100644
--- a/phpBB/admin/admin_users.php
+++ b/phpBB/admin/admin_users.php
@@ -34,6 +34,8 @@ if($setmodules == 1)
$phpbb_root_path = "./../";
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
+include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
+include($phpbb_root_path . 'includes/post.'.$phpEx);
//
@@ -138,45 +140,46 @@ if ( isset($HTTP_GET_VARS['submit']) ) {
//
// Let's find out a little about them...
//
- $userdata = get_userdata_from_id($HTTP_GET_VARS[POST_USERS_URL]);
+ $this_userdata = get_userdata_from_id($HTTP_GET_VARS[POST_USERS_URL]);
//
// Now parse and display it as a template
//
- $user_id = $userdata['user_id'];
- $username = $userdata['username'];
- $email = $userdata['user_email'];
+ $user_id = $this_userdata['user_id'];
+ $username = $this_userdata['username'];
+ $email = $this_userdata['user_email'];
$password = "";
$password_confirm = "";
- $icq = $userdata['user_icq'];
- $aim = $userdata['user_aim'];
- $msn = $userdata['user_msnm'];
- $yim = $userdata['user_yim'];
-
- $website = $userdata['user_website'];
- $location = $userdata['user_from'];
- $occupation = $userdata['user_occ'];
- $interests = $userdata['user_interests'];
- $signature = $userdata['user_sig'];
-
- $viewemail = $userdata['user_viewemail'];
- $notifypm = $userdata['user_notify_pm'];
- $attachsig = $userdata['user_attachsig'];
- $allowhtml = $userdata['user_allowhtml'];
- $allowbbcode = $userdata['user_allowbbcode'];
- $allowsmilies = $userdata['user_allowsmile'];
- $allowviewonline = $userdata['user_allow_viewonline'];
-
- $user_avatar = $userdata['user_avatar'];
- $user_style = $userdata['user_style'];
- $user_lang = $userdata['user_lang'];
- $user_timezone = $userdata['user_timezone'];
- $user_dateformat = $userdata['user_dateformat'];
+ $icq = $this_userdata['user_icq'];
+ $aim = $this_userdata['user_aim'];
+ $msn = $this_userdata['user_msnm'];
+ $yim = $this_userdata['user_yim'];
+
+ $website = $this_userdata['user_website'];
+ $location = $this_userdata['user_from'];
+ $occupation = $this_userdata['user_occ'];
+ $interests = $this_userdata['user_interests'];
+ $signature = $this_userdata['user_sig'];
+
+ $viewemail = $this_userdata['user_viewemail'];
+ $notifypm = $this_userdata['user_notify_pm'];
+ $attachsig = $this_userdata['user_attachsig'];
+ $allowhtml = $this_userdata['user_allowhtml'];
+ $allowbbcode = $this_userdata['user_allowbbcode'];
+ $allowsmilies = $this_userdata['user_allowsmile'];
+ $allowviewonline = $this_userdata['user_allow_viewonline'];
+
+ $user_avatar = $this_userdata['user_avatar'];
+ $user_avatar_type = $this_userdata['user_avatar_type'];
+ $user_style = $this_userdata['user_style'];
+ $user_lang = $this_userdata['user_lang'];
+ $user_timezone = $this_userdata['user_timezone'];
+ $user_dateformat = $this_userdata['user_dateformat'];
- $user_status = $userdata['user_active'];
- $user_allowavatar = $userdata['user_allowavatar'];
- $user_allowpm = $userdata['user_allow_pm'];
+ $user_status = $this_userdata['user_active'];
+ $user_allowavatar = $this_userdata['user_allowavatar'];
+ $user_allowpm = $this_userdata['user_allow_pm'];
$COPPA = false;
@@ -185,18 +188,30 @@ if ( isset($HTTP_GET_VARS['submit']) ) {
$smilies_status = ($board_config['allow_smilies']) ? $lang['ON'] : $lang['OFF'];
$s_hidden_fields = '<input type="hidden" name="mode" value="' . $mode . '" /><input type="hidden" name="agreed" value="true" /><input type="hidden" name="coppa" value="' . $coppa . '" />';
- $s_hidden_fields .= '<input type="hidden" name="user_id" value="' . $userdata['user_id'] . '" />';
+ $s_hidden_fields .= '<input type="hidden" name="user_id" value="' . $this_userdata['user_id'] . '" />';
- if( $user_avatar != "" )
+ if( $user_avatar_type )
{
- $avatar = (strstr($user_avatar, 'http') && $board_config['allow_avatar_remote']) ? "<br /><img src=\"" . $user_avatar . "\"><br />" : "<br /><img src=\"../" . $board_config['avatar_path'] . "/" . $user_avatar . "\" alt=\"\" /><br />";
- $s_hidden_fields .= '<input type="hidden" name="user_avatar" value="' . $user_avatar . '" />';
+ switch( $user_avatar_type )
+ {
+ case USER_AVATAR_UPLOAD:
+ $avatar = "<img src=\"" . $board_config['avatar_path'] . "/" . $user_avatar . "\" alt=\"\" />";
+ break;
+ case USER_AVATAR_REMOTE:
+ $avatar = "<img src=\"$user_avatar\" alt=\"\" />";
+ break;
+ case USER_AVATAR_GALLERY:
+ $avatar = "<img src=\"" . $board_config['avatar_gallery_path'] . "/" . $user_avatar . "\" alt=\"\" />";
+ break;
+ }
}
else
{
$avatar = "";
}
+ $signature = preg_replace("/\:[0-9a-z\:]*?\]/si", "]", $signature);
+
$template->set_filenames(array(
"body" => "admin/user_edit_body.tpl")
);
@@ -333,26 +348,24 @@ else if($HTTP_POST_VARS[submit] && $HTTP_POST_VARS['user_id'])
validate_optional_fields($icq, $aim, $msn, $yim, $website, $location, $occupation, $interests, $signature);
- $viewemail = (isset($HTTP_POST_VARS['viewemail'])) ? $HTTP_POST_VARS['viewemail'] : 0;
+ $viewemail = (isset($HTTP_POST_VARS['viewemail'])) ? intval($HTTP_POST_VARS['viewemail']) : 0;
$allowviewonline = (isset($HTTP_POST_VARS['hideonline'])) ? ( ($HTTP_POST_VARS['hideonline']) ? 0 : 1 ) : 1;
- $notifypm = (isset($HTTP_POST_VARS['notifypm'])) ? $HTTP_POST_VARS['notifypm'] : 1;
- $attachsig = (isset($HTTP_POST_VARS['attachsig'])) ? $HTTP_POST_VARS['attachsig'] : 0;
+ $notifypm = (isset($HTTP_POST_VARS['notifypm'])) ? intval($HTTP_POST_VARS['notifypm']) : 1;
+ $attachsig = (isset($HTTP_POST_VARS['attachsig'])) ? intval($HTTP_POST_VARS['attachsig']) : 0;
- $allowhtml = (isset($HTTP_POST_VARS['allowhtml'])) ? $HTTP_POST_VARS['allowhtml'] : $board_config['allow_html'];
- $allowbbcode = (isset($HTTP_POST_VARS['allowbbcode'])) ? $HTTP_POST_VARS['allowbbcode'] : $board_config['allow_bbcode'];
- $allowsmilies = (isset($HTTP_POST_VARS['allowsmilies'])) ? $HTTP_POST_VARS['allowsmilies'] : $board_config['allow_smilies'];
+ $allowhtml = (isset($HTTP_POST_VARS['allowhtml'])) ? intval($HTTP_POST_VARS['allowhtml']) : $board_config['allow_html'];
+ $allowbbcode = (isset($HTTP_POST_VARS['allowbbcode'])) ? intval($HTTP_POST_VARS['allowbbcode']) : $board_config['allow_bbcode'];
+ $allowsmilies = (isset($HTTP_POST_VARS['allowsmilies'])) ? intval($HTTP_POST_VARS['allowsmilies']) : $board_config['allow_smilies'];
- $user_style = ($HTTP_POST_VARS['style']) ? $HTTP_POST_VARS['style'] : $board_config['default_style'];
+ $user_style = ($HTTP_POST_VARS['style']) ? intval($HTTP_POST_VARS['style']) : $board_config['default_style'];
$user_lang = ($HTTP_POST_VARS['language']) ? $HTTP_POST_VARS['language'] : $board_config['default_lang'];
- $user_timezone = (isset($HTTP_POST_VARS['timezone'])) ? $HTTP_POST_VARS['timezone'] : $board_config['board_timezone'];
+ $user_timezone = (isset($HTTP_POST_VARS['timezone'])) ? doubleval($HTTP_POST_VARS['timezone']) : $board_config['board_timezone'];
$user_template = ($HTTP_POST_VARS['template']) ? $HTTP_POST_VARS['template'] : $board_config['board_template'];
$user_dateformat = ($HTTP_POST_VARS['dateformat']) ? trim($HTTP_POST_VARS['dateformat']) : $board_config['default_dateformat'];
- $user_avatar = ( isset($HTTP_POST_VARS['user_avatar']) ) ? $HTTP_POST_VARS['user_avatar'] : "";
-
- $user_status = (!empty($HTTP_POST_VARS['user_status'])) ? $HTTP_POST_VARS['user_status'] : 0;
- $user_allowpm = (!empty($HTTP_POST_VARS['user_allowpm'])) ? $HTTP_POST_VARS['usr_allowpm'] : 0;
- $user_allowavatar = (!empty($HTTP_POST_VARS['usr_allowavatar'])) ? $HTTP_POST_VARS['user_allowavatar'] : 0;
+ $user_status = (!empty($HTTP_POST_VARS['user_status'])) ? intval($HTTP_POST_VARS['user_status']) : 0;
+ $user_allowpm = (!empty($HTTP_POST_VARS['user_allowpm'])) ? intval($HTTP_POST_VARS['user_allowpm']) : 0;
+ $user_allowavatar = (!empty($HTTP_POST_VARS['usr_allowavatar'])) ? intval($HTTP_POST_VARS['user_allowavatar']) : 0;
if(isset($HTTP_POST_VARS['submit']))
{
@@ -379,17 +392,40 @@ else if($HTTP_POST_VARS[submit] && $HTTP_POST_VARS['user_id'])
$error = TRUE;
$error_msg = $lang['Password_mismatch'];
}
+ else if(!$password && $password_confirm)
+ {
+ $error = TRUE;
+ $error_msg = $lang['Password_mismatch'];
+ }
+
+ if( $signature != "" )
+ {
+ if( strlen($signature) > $board_config['max_sig_chars'] )
+ {
+ $error = TRUE;
+ if(isset($error_msg))
+ {
+ $error_msg .= "<br />";
+ }
+ $error_msg .= $lang['Signature_too_long'];
+ }
+ else
+ {
+ $signature_bbcode_uid = ( $allowbbcode ) ? make_bbcode_uid() : "";
+ $signature = prepare_message($signature, $allowhtml, $allowbbcode, $allowsmilies, $signature_bbcode_uid);
+ }
+ }
if( isset($HTTP_POST_VARS['avatardel']) )
{
- if( !eregi("http", $user_avatar) )
+ if( $user_avatar_type == USER_AVATAR_UPLOAD )
{
- if(file_exists("./../" . $board_config['avatar_path'] . "/" . $user_avatar))
+ if( file_exists("./../" . $board_config['avatar_path'] . "/" . $user_avatar) )
{
@unlink("./../" . $board_config['avatar_path'] . "/" . $user_avatar);
}
}
- $avatar_sql = ", user_avatar = ''";
+ $avatar_sql = ", user_avatar = '', user_avatar_type = " . USER_AVATAR_NONE;
}
if(!$error)
@@ -457,8 +493,8 @@ else if($HTTP_POST_VARS[submit] && $HTTP_POST_VARS['user_id'])
}
else
{
- $sql = "UPDATE " . USERS_TABLE . "
- SET " . $username_sql . $passwd_sql . "user_email = '$email', user_icq = '$icq', user_website = '$website', user_occ = '$occupation', user_from = '$location', user_interests = '$interests', user_sig = '$signature', user_viewemail = $viewemail, user_aim = '$aim', user_yim = '$yim', user_msnm = '$msn', user_attachsig = $attachsig, user_allowsmile = $allowsmilies, user_allowhtml = $allowhtml, user_allowavatar = $user_allowavatar, user_allowbbcode = $allowbbcode, user_allow_viewonline = $allowviewonline, user_allow_pm = $user_allowpm user_notify_pm = $notifypm, user_lang = '$user_lang', user_style = $user_style, user_timezone = $user_timezone, user_dateformat = '$user_dateformat', user_active = $user_status, user_actkey = '$user_actkey'" . $avatar_sql . "
+ echo $sql = "UPDATE " . USERS_TABLE . "
+ SET " . $username_sql . $passwd_sql . "user_email = '$email', user_icq = '$icq', user_website = '$website', user_occ = '$occupation', user_from = '$location', user_interests = '$interests', user_sig = '$signature', user_viewemail = $viewemail, user_aim = '$aim', user_yim = '$yim', user_msnm = '$msn', user_attachsig = $attachsig, user_allowsmile = $allowsmilies, user_allowhtml = $allowhtml, user_allowavatar = $user_allowavatar, user_allowbbcode = $allowbbcode, user_allow_viewonline = $allowviewonline, user_allow_pm = $user_allowpm, user_notify_pm = $notifypm, user_lang = '$user_lang', user_style = $user_style, user_timezone = $user_timezone, user_dateformat = '$user_dateformat', user_active = $user_status, user_actkey = '$user_actkey'" . $avatar_sql . "
WHERE user_id = $user_id";
if($result = $db->sql_query($sql))
{
diff --git a/phpBB/db/mssql_schema.sql b/phpBB/db/mssql_schema.sql
index e0e4fdcb0d..8cc34abcdb 100644
--- a/phpBB/db/mssql_schema.sql
+++ b/phpBB/db/mssql_schema.sql
@@ -433,7 +433,8 @@ CREATE TABLE [phpbb_users] (
[user_notify_pm] [smallint] NOT NULL ,
[user_regdate] [int] NOT NULL ,
[user_rank] [int] NULL ,
- [user_avatar] [varchar] (100) NULL ,
+ [user_avatar] [varchar] (100) NULL ,
+ [user_avatar_type] [smallint] NOT NULL,
[user_email] [varchar] (25) NULL ,
[user_icq] [varchar] (15) NULL ,
[user_website] [varchar] (50) NULL ,
@@ -652,7 +653,8 @@ ALTER TABLE [phpbb_users] WITH NOCHECK ADD
CONSTRAINT [DF_phpbb_users_user_allow_pm] DEFAULT (1) FOR [user_allow_pm],
CONSTRAINT [DF_phpbb_users_user_allow_viewonline] DEFAULT (1) FOR [user_allow_viewonline],
CONSTRAINT [DF_phpbb_users_user_notify] DEFAULT (1) FOR [user_notify],
- CONSTRAINT [DF_phpbb_users_user_notify_pm] DEFAULT (1) FOR [user_notify_pm]
+ CONSTRAINT [DF_phpbb_users_user_notify_pm] DEFAULT (1) FOR [user_notify_pm],
+ CONSTRAINT [DF_phpbb_users_user_avatar_type] DEFAULT (0) FOR [user_avatar_type]
GO
CREATE INDEX [IX_phpbb_auth_access] ON [phpbb_auth_access]([group_id], [forum_id]) ON [PRIMARY]
diff --git a/phpBB/db/mysql_schema.sql b/phpBB/db/mysql_schema.sql
index 6cba16d5d0..9efe409650 100644
--- a/phpBB/db/mysql_schema.sql
+++ b/phpBB/db/mysql_schema.sql
@@ -471,6 +471,7 @@ CREATE TABLE phpbb_users (
user_regdate int(11) DEFAULT '0' NOT NULL,
user_rank int(11) DEFAULT '0',
user_avatar varchar(100),
+ user_avatar_type tinyint(4) DEFAULT '0' NOT NULL,
user_email varchar(255),
user_icq varchar(15),
user_website varchar(100),
diff --git a/phpBB/db/postgres_schema.sql b/phpBB/db/postgres_schema.sql
index 17e5237494..f91f01d1c7 100644
--- a/phpBB/db/postgres_schema.sql
+++ b/phpBB/db/postgres_schema.sql
@@ -448,7 +448,8 @@ CREATE TABLE phpbb_users (
user_allowavatar int2 DEFAULT '1' NOT NULL,
user_allow_viewonline int2 DEFAULT '1' NOT NULL,
user_rank int4 DEFAULT '0',
- user_avatar varchar(100),
+ user_avatar varchar(100),
+ user_avatar_type int2 DEFAULT '0' NOT NULL,
user_level int4 DEFAULT '1',
user_lang varchar(255),
user_timezone int4 DEFAULT '0' NOT NULL,
diff --git a/phpBB/develop/convert_avatars.php b/phpBB/develop/convert_avatars.php
new file mode 100644
index 0000000000..f6069a1e4a
--- /dev/null
+++ b/phpBB/develop/convert_avatars.php
@@ -0,0 +1,51 @@
+<?php
+
+$phpbb_root_path = "../";
+
+include($phpbb_root_path . 'extension.inc');
+include($phpbb_root_path . 'config.'.$phpEx);
+include($phpbb_root_path . 'includes/constants.'.$phpEx);
+include($phpbb_root_path . 'includes/db.'.$phpEx);
+
+
+$sql = "ALTER TABLE " . USERS_TABLE . "
+ ADD user_avatar_type TINYINT(4) DEFAULT '0' NOT NULL";
+if( !$result = $db->sql_query($sql) )
+{
+ die("Couldn't alter users table");
+}
+
+$sql = "SELECT user_id, user_avatar
+ FROM " . USERS_TABLE;
+if( $result = $db->sql_query($sql) )
+{
+ $rowset = $db->sql_fetchrowset($result);
+
+ for($i = 0; $i < count($rowset); $i++)
+ {
+ if( ereg("^http", $rowset[$i]['user_avatar']))
+ {
+ $sql_type = USER_AVATAR_REMOTE;
+ }
+ else if( $rowset[$i]['user_avatar'] != "" )
+ {
+ $sql_type = USER_AVATAR_UPLOAD;
+ }
+ else
+ {
+ $sql_type = USER_AVATAR_NONE;
+ }
+
+ $sql = "UPDATE " . USERS_TABLE . "
+ SET user_avatar_type = $sql_type
+ WHERE user_id = " . $rowset[$i]['user_id'];
+ if( !$result = $db->sql_query($sql) )
+ {
+ die("Couldn't update users table- " . $i);
+ }
+ }
+}
+
+echo "<BR><BR>COMPLETE<BR>";
+
+?>
diff --git a/phpBB/includes/constants.php b/phpBB/includes/constants.php
index 14b86d640f..d2a59fc801 100644
--- a/phpBB/includes/constants.php
+++ b/phpBB/includes/constants.php
@@ -36,11 +36,16 @@ define(USER, 0);
define(ADMIN, 1);
-// User Activation
+// User related
define(USER_ACTIVATION_NONE, 0);
define(USER_ACTIVATION_SELF, 1);
define(USER_ACTIVATION_ADMIN, 2);
+define(USER_AVATAR_NONE, 0);
+define(USER_AVATAR_UPLOAD, 1);
+define(USER_AVATAR_REMOTE, 2);
+define(USER_AVATAR_GALLERY, 3);
+
// Forum state
define(FORUM_UNLOCKED, 0);
diff --git a/phpBB/language/lang_english/lang_main.php b/phpBB/language/lang_english/lang_main.php
index 95791eb9e8..0f6a37321c 100644
--- a/phpBB/language/lang_english/lang_main.php
+++ b/phpBB/language/lang_english/lang_main.php
@@ -408,6 +408,7 @@ $lang['Registration_info'] = "Registration Information";
$lang['Profile_info'] = "Profile Information";
$lang['Profile_info_warn'] = "This information will be publicly viewable";
$lang['Avatar_panel'] = "Avatar control panel";
+$lang['Avatar_gallery'] = "Avatar gallery";
$lang['Website'] = "Website";
$lang['From'] = "From";
@@ -471,7 +472,11 @@ $lang['Link_remote_Avatar'] = "Link to off-site Avatar";
$lang['Link_remote_Avatar_explain'] = "Enter the URL of the location containing the Avatar image you wish to link to.";
$lang['Avatar_URL'] = "URL of Avatar Image";
$lang['Select_from_gallery'] = "Select Avatar from gallery";
-$lang['Avatar_gallery'] = "Show gallery";
+$lang['View_avatar_gallery'] = "Show gallery";
+
+$lang['Select_avatar'] = "Select avatar";
+$lang['Return_profile'] = "Cancel avatar";
+$lang['Select_category'] = "Select category";
$lang['Delete_Image'] = "Delete Image";
$lang['Current_Image'] = "Current Image";
diff --git a/phpBB/profile.php b/phpBB/profile.php
index 0eaf73ccc7..29627ec6d7 100644
--- a/phpBB/profile.php
+++ b/phpBB/profile.php
@@ -271,13 +271,24 @@ if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
$email_img = "";
}
- if( $profiledata['user_avatar'] != "" && $profiledata['user_id'] != ANONYMOUS )
+ if( $profiledata['user_avatar_type'] )
{
- $avatar_img = (eregi("http", $profiledata['user_avatar']) && $board_config['allow_avatar_remote']) ? "<img src=\"" . $profiledata['user_avatar'] . "\">" : "<img src=\"" . $board_config['avatar_path'] . "/" . $profiledata['user_avatar'] . "\" alt=\"\" />";;
+ switch( $profiledata['user_avatar_type'] )
+ {
+ case USER_AVATAR_UPLOAD:
+ $avatar_img = "<img src=\"" . $board_config['avatar_path'] . "/" . $profiledata['user_avatar'] . "\" alt=\"\" />";
+ break;
+ case USER_AVATAR_REMOTE:
+ $avatar_img = "<img src=\"" . $profiledata['user_avatar'] . "\" alt=\"\" />";
+ break;
+ case USER_AVATAR_GALLERY:
+ $avatar_img = "<img src=\"" . $board_config['avatar_gallery_path'] . "/" . $profiledata['user_avatar'] . "\" alt=\"\" />";
+ break;
+ }
}
else
{
- $avatar_img = "&nbsp;";
+ $avatar_img = "";
}
$poster_rank = "";
@@ -405,7 +416,7 @@ if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
if( !$userdata['session_logged_in'] && $mode == "editprofile" )
{
- header(append_sid("Location: login.$phpEx?forward_page=$PHP_SELF&mode=editprofile"));
+ header(append_sid("Location: login.$phpEx?forward_page=profile.$phpEx&mode=editprofile"));
}
$page_title = ($mode == "editprofile") ? $lang['Edit_profile'] : $lang['Register'];
@@ -450,7 +461,7 @@ if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
}
}
- else if( isset($HTTP_POST_VARS['submit']) || $mode == "register" )
+ else if( isset($HTTP_POST_VARS['submit']) || isset($HTTP_POST_VARS['avatargallery']) || isset($HTTP_POST_VARS['submitavatar']) || isset($HTTP_POST_VARS['cancelavatar']) || $mode == "register" )
{
if( $mode == "editprofile" )
{
@@ -492,19 +503,23 @@ if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
$user_style = ( isset($HTTP_POST_VARS['style']) ) ? intval($HTTP_POST_VARS['style']) : $board_config['default_style'];
$user_lang = ($HTTP_POST_VARS['language']) ? $HTTP_POST_VARS['language'] : $board_config['default_lang'];
- $user_timezone = (isset($HTTP_POST_VARS['timezone'])) ? intval($HTTP_POST_VARS['timezone']) : $board_config['board_timezone'];
+ $user_timezone = (isset($HTTP_POST_VARS['timezone'])) ? doubleval($HTTP_POST_VARS['timezone']) : $board_config['board_timezone'];
$user_dateformat = ($HTTP_POST_VARS['dateformat']) ? trim($HTTP_POST_VARS['dateformat']) : $board_config['default_dateformat'];
+ $user_avatar_local = ( isset($HTTP_POST_VARS['avatarselect']) && !empty($HTTP_POST_VARS['submitavatar']) && $board_config['allow_avatar_local'] ) ? $HTTP_POST_VARS['avatarselect'] : ( ( isset($HTTP_POST_VARS['avatarlocal']) ) ? $HTTP_POST_VARS['avatarlocal'] : "" );
+
$user_avatar_remoteurl = (!empty($HTTP_POST_VARS['avatarremoteurl'])) ? $HTTP_POST_VARS['avatarremoteurl'] : "";
$user_avatar_url = (!empty($HTTP_POST_VARS['avatarurl'])) ? $HTTP_POST_VARS['avatarurl'] : "";
$user_avatar_loc = ($HTTP_POST_FILES['avatar']['tmp_name'] != "none") ? $HTTP_POST_FILES['avatar']['tmp_name'] : "";
$user_avatar_name = (!empty($HTTP_POST_FILES['avatar']['name'])) ? $HTTP_POST_FILES['avatar']['name'] : "";
$user_avatar_size = (!empty($HTTP_POST_FILES['avatar']['size'])) ? $HTTP_POST_FILES['avatar']['size'] : 0;
- $user_avatar_type = (!empty($HTTP_POST_FILES['avatar']['type'])) ? $HTTP_POST_FILES['avatar']['type'] : "";
+ $user_avatar_filetype = (!empty($HTTP_POST_FILES['avatar']['type'])) ? $HTTP_POST_FILES['avatar']['type'] : "";
+
$user_avatar = (empty($user_avatar_loc) && $mode == "editprofile") ? $userdata['user_avatar'] : "";
+ $user_avatar_type = (empty($user_avatar_loc) && $mode == "editprofile") ? $userdata['user_avatar_type'] : "";
}
- if(isset($HTTP_POST_VARS['submit']))
+ if( isset($HTTP_POST_VARS['submit']) )
{
$error = FALSE;
@@ -667,13 +682,13 @@ if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
}
$avatar_sql = "";
- if($board_config['allow_avatar_upload'] && !$error)
+ if( $board_config['allow_avatar_upload'] && !$error )
{
//
// Only allow one type of upload, either a
// filename or a URL
//
- if(!empty($user_avatar_loc) && !empty($user_avatar_url))
+ if( !empty($user_avatar_loc) && !empty($user_avatar_url) )
{
$error = TRUE;
if(isset($error_msg))
@@ -685,221 +700,215 @@ if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
if( isset($HTTP_POST_VARS['avatardel']) && $mode == "editprofile" )
{
- if(file_exists("./".$board_config['avatar_path']."/".$userdata['user_avatar']))
+ if( @file_exists("./" . $board_config['avatar_path'] . "/" . $userdata['user_avatar']) )
{
- @unlink("./".$board_config['avatar_path']."/".$userdata['user_avatar']);
- $avatar_sql = ", user_avatar = ''";
+ @unlink("./" . $board_config['avatar_path'] . "/" . $userdata['user_avatar']);
}
+ $avatar_sql = ", user_avatar = '', user_avatar_type = " . USER_AVATAR_NONE;
}
- else if( $user_avatar_loc != "" )
+ else if( $user_avatar_loc != "" && $board_config['allow_avatar_upload'] )
{
- if($board_config['allow_avatar_upload'])
+ if(file_exists($user_avatar_loc) && ereg(".jpg$|.gif$|.png$", $user_avatar_name))
{
- if(file_exists($user_avatar_loc) && ereg(".jpg$|.gif$|.png$", $user_avatar_name))
+ if($user_avatar_size <= $board_config['avatar_filesize'] && $avatar_size > 0)
{
- if($user_avatar_size <= $board_config['avatar_filesize'] && $avatar_size > 0)
+ $error_type = false;
+
+ //
+ // Opera appends the image name after the type, not big, not clever!
+ //
+ preg_match("'image\/[x\-]*([a-z]+)'", $user_avatar_filetype, $user_avatar_filetype);
+ $user_avatar_filetype = $user_avatar_filetype[1];
+
+ switch($user_avatar_filetype)
{
- $error_type = false;
+ case "jpeg":
+ case "pjpeg":
+ $imgtype = '.jpg';
+ break;
+ case "gif":
+ $imgtype = '.gif';
+ break;
+ case "png":
+ $imgtype = '.png';
+ break;
+ default:
+ $error = true;
+ $error_msg = (!empty($error_msg)) ? $error_msg . "<br />" . $lang['Avatar_filetype'] : $lang['Avatar_filetype'];
+ break;
+ }
- //
- // Opera appends the image name after the type, not big, not clever!
- //
- preg_match("'image\/[x\-]*([a-z]+)'", $user_avatar_type, $user_avatar_type);
- $user_avatar_type = $user_avatar_type[1];
+ if(!$error)
+ {
+ list($width, $height) = @getimagesize($user_avatar_loc);
- switch($user_avatar_type)
+ if( $width <= $board_config['avatar_max_width'] &&
+ $height <= $board_config['avatar_max_height'] )
{
- case "jpeg":
- case "pjpeg":
- $imgtype = '.jpg';
- break;
- case "gif":
- $imgtype = '.gif';
- break;
- case "png":
- $imgtype = '.png';
- break;
- default:
- $error = true;
- $error_msg = (!empty($error_msg)) ? $error_msg . "<br />" . $lang['Avatar_filetype'] : $lang['Avatar_filetype'];
- break;
- }
+ $user_id = ($mode == "register") ? $new_user_id : $userdata['user_id'];
- if(!$error)
- {
- list($width, $height) = @getimagesize($user_avatar_loc);
+ $avatar_filename = $user_id . $imgtype;
- if( $width <= $board_config['avatar_max_width'] &&
- $height <= $board_config['avatar_max_height'] )
+ if($mode == "editprofile")
{
- $user_id = ($mode == "register") ? $new_user_id : $userdata['user_id'];
-
- $avatar_filename = $user_id . $imgtype;
-
- if($mode == "editprofile")
+ if(file_exists("./" . $board_config['avatar_path'] . "/" . $user_id))
{
- if(file_exists("./" . $board_config['avatar_path'] . "/" . $user_id))
- {
- @unlink("./" . $board_config['avatar_path'] . "/" . $user_id);
- }
+ @unlink("./" . $board_config['avatar_path'] . "/" . $user_id);
}
- @copy($user_avatar_loc, "./" . $board_config['avatar_path'] . "/$avatar_filename");
-
- $avatar_sql = ", user_avatar = '$avatar_filename'";
- }
- else
- {
- $error = true;
- $error_msg = (!empty($error_msg)) ? $error_msg . "<br />" . $lang['Avatar_imagesize'] : $lang['Avatar_imagesize'];
}
+ @copy($user_avatar_loc, "./" . $board_config['avatar_path'] . "/$avatar_filename");
+
+ $avatar_sql = ", user_avatar = '$avatar_filename', user_avatar_type = " . USER_AVATAR_UPLOAD;
+ }
+ else
+ {
+ $error = true;
+ $error_msg = (!empty($error_msg)) ? $error_msg . "<br />" . $lang['Avatar_imagesize'] : $lang['Avatar_imagesize'];
}
- }
- else
- {
- $error = true;
- $error_filesize = $lang['Avatar_filesize'] . " " . round($board_config['avatar_filesize'] / 1024) . " " . $lang['kB'];
- $error_msg = (!empty($error_msg)) ? $error_msg . "<br />" . $error_filesize : $error_filesize;
}
}
else
{
$error = true;
- $error_msg = (!empty($error_msg)) ? $error_msg . "<br />" . $lang['Avatar_filetype'] : $lang['Avatar_filetype'];
+ $error_filesize = $lang['Avatar_filesize'] . " " . round($board_config['avatar_filesize'] / 1024) . " " . $lang['kB'];
+ $error_msg = (!empty($error_msg)) ? $error_msg . "<br />" . $error_filesize : $error_filesize;
}
- } // if ... allow_avatar_upload
+ }
+ else
+ {
+ $error = true;
+ $error_msg = (!empty($error_msg)) ? $error_msg . "<br />" . $lang['Avatar_filetype'] : $lang['Avatar_filetype'];
+ }
}
- else if(!empty($user_avatar_url))
+ else if( !empty($user_avatar_url) && $board_config['allow_avatar_upload'] )
{
- if($board_config['allow_avatar_upload'])
+ //
+ // First check what port we should connect
+ // to, look for a :[xxxx]/ or, if that doesn't
+ // exist assume port 80 (http)
+ //
+ preg_match("/^(http:\/\/)?([a-z0-9\.]+)\:?([0-9]*)\/(.*)$/", $user_avatar_url, $url_ary);
+
+ if( !empty($url_ary[4]) )
{
- //
- // First check what port we should connect
- // to, look for a :[xxxx]/ or, if that doesn't
- // exist assume port 80 (http)
- //
- preg_match("/^(http:\/\/)?([a-z0-9\.]+)\:?([0-9]*)\/(.*)$/", $user_avatar_url, $url_ary);
+ $port = (!empty($url_ary[3])) ? $url_ary[3] : 80;
- if( !empty($url_ary[4]) )
+ $fsock = @fsockopen($url_ary[2], $port, $errno, $errstr);
+ if($fsock)
{
- $port = (!empty($url_ary[3])) ? $url_ary[3] : 80;
+ $base_get = "/" . $url_ary[4];
- $fsock = @fsockopen($url_ary[2], $port, $errno, $errstr);
- if($fsock)
+ //
+ // Uses HTTP 1.1, could use HTTP 1.0 ...
+ //
+ @fputs($fsock, "GET $base_get HTTP/1.1\r\n");
+ @fputs($fsock, "HOST: " . $url_ary[2] . "\r\n");
+ @fputs($fsock, "Connection: close\r\n\r\n");
+
+ unset($avatar_data);
+ while(!@feof($fsock))
{
- $base_get = "/" . $url_ary[4];
+ $avatar_data .= @fread($fsock, $board_config['avatar_filesize']);
+ }
+ @fclose($fsock);
- //
- // Uses HTTP 1.1, could use HTTP 1.0 ...
- //
- @fputs($fsock, "GET $base_get HTTP/1.1\r\n");
- @fputs($fsock, "HOST: " . $url_ary[2] . "\r\n");
- @fputs($fsock, "Connection: close\r\n\r\n");
+ if(preg_match("/Content-Length\: ([0-9]+)[^\/]+Content-Type\: image\/[x\-]*([a-z]+)[\s]+/i", $avatar_data, $file_data))
+ {
+ $file_size = $file_data[1];
+ $file_type = $file_data[2];
- unset($avatar_data);
- while(!@feof($fsock))
+ switch($file_type)
{
- $avatar_data .= @fread($fsock, $board_config['avatar_filesize']);
+ case "jpeg":
+ case "pjpeg":
+ $imgtype = '.jpg';
+ break;
+ case "gif":
+ $imgtype = '.gif';
+ break;
+ case "png":
+ $imgtype = '.png';
+ break;
+ default:
+ $error = true;
+ $error_msg = (!empty($error_msg)) ? $error_msg . "<br />" . $lang['Avatar_filetype'] : $lang['Avatar_filetype'];
+ break;
}
- @fclose($fsock);
- if(preg_match("/Content-Length\: ([0-9]+)[^\/]+Content-Type\: image\/[x\-]*([a-z]+)[\s]+/i", $avatar_data, $file_data))
+ if(!$error && $file_size > 0 && $file_size < $board_config['avatar_filesize'])
{
- $file_size = $file_data[1];
- $file_type = $file_data[2];
+ $avatar_data = substr($avatar_data, strlen($avatar_data) - $file_size, $file_size);
- switch($file_type)
- {
- case "jpeg":
- case "pjpeg":
- $imgtype = '.jpg';
- break;
- case "gif":
- $imgtype = '.gif';
- break;
- case "png":
- $imgtype = '.png';
- break;
- default:
- $error = true;
- $error_msg = (!empty($error_msg)) ? $error_msg . "<br />" . $lang['Avatar_filetype'] : $lang['Avatar_filetype'];
- break;
- }
+ $tmp_filename = tempnam ("/tmp", $userdata['user_id'] . "-");
+ $fptr = @fopen($tmp_filename, "wb");
+ $bytes_written = @fwrite($fptr, $avatar_data, $file_size);
+ @fclose($fptr);
- if(!$error && $file_size > 0 && $file_size < $board_config['avatar_filesize'])
+ if($bytes_written == $file_size)
{
- $avatar_data = substr($avatar_data, strlen($avatar_data) - $file_size, $file_size);
-
- $tmp_filename = tempnam ("/tmp", $userdata['user_id'] . "-");
- $fptr = @fopen($tmp_filename, "wb");
- $bytes_written = @fwrite($fptr, $avatar_data, $file_size);
- @fclose($fptr);
+ list($width, $height) = @getimagesize($tmp_filename);
- if($bytes_written == $file_size)
+ if( $width <= $board_config['avatar_max_width'] && $height <= $board_config['avatar_max_height'] )
{
- list($width, $height) = @getimagesize($tmp_filename);
-
- if( $width <= $board_config['avatar_max_width'] && $height <= $board_config['avatar_max_height'] )
- {
- $user_id = ($mode == "register") ? $new_user_id : $userdata['user_id'];
+ $user_id = ($mode == "register") ? $new_user_id : $userdata['user_id'];
- $avatar_filename = $user_id . $imgtype;
+ $avatar_filename = $user_id . $imgtype;
- if($mode == "editprofile")
+ if($mode == "editprofile")
+ {
+ if(file_exists("./" . $board_config['avatar_path'] . "/" . $user_id))
{
- if(file_exists("./" . $board_config['avatar_path'] . "/" . $user_id))
- {
- @unlink("./" . $board_config['avatar_path'] . "/" . $user_id);
- }
+ @unlink("./" . $board_config['avatar_path'] . "/" . $user_id);
}
- @copy($tmp_filename, "./" . $board_config['avatar_path'] . "/$avatar_filename");
- @unlink($tmp_filename);
-
- $avatar_sql = ", user_avatar = '$avatar_filename'";
- }
- else
- {
- //
- // Image too large
- //
- @unlink($tmp_filename);
- $error = true;
- $error_msg = (!empty($error_msg)) ? $error_msg . "<br />" . $lang['Avatar_imagesize'] : $lang['Avatar_imagesize'];
}
+ @copy($tmp_filename, "./" . $board_config['avatar_path'] . "/$avatar_filename");
+ @unlink($tmp_filename);
+
+ $avatar_sql = ", user_avatar = '$avatar_filename', user_avatar_type = " . USER_AVATAR_UPLOAD;
}
else
{
//
- // Error writing file
+ // Image too large
//
@unlink($tmp_filename);
- message_die(GENERAL_ERROR, "Could not write avatar file to local storage. Please contact the board administrator with this message", "", __LINE__, __FILE__);
+ $error = true;
+ $error_msg = (!empty($error_msg)) ? $error_msg . "<br />" . $lang['Avatar_imagesize'] : $lang['Avatar_imagesize'];
}
}
- }
- else
- {
- //
- // No data
- //
- $error = true;
- $error_msg = (!empty($error_msg)) ? $error_msg . "<br />" . $lang['File_no_data'] : $lang['File_no_data'];
+ else
+ {
+ //
+ // Error writing file
+ //
+ @unlink($tmp_filename);
+ message_die(GENERAL_ERROR, "Could not write avatar file to local storage. Please contact the board administrator with this message", "", __LINE__, __FILE__);
+ }
}
}
else
{
//
- // No connection
+ // No data
//
$error = true;
- $error_msg = (!empty($error_msg)) ? $error_msg . "<br />" . $lang['No_connection_URL'] : $lang['No_connection_URL'];
+ $error_msg = (!empty($error_msg)) ? $error_msg . "<br />" . $lang['File_no_data'] : $lang['File_no_data'];
}
}
else
{
+ //
+ // No connection
+ //
$error = true;
- $error_msg = (!empty($error_msg)) ? $error_msg . "<br />" . $lang['Incomplete_URL'] : $lang['Incomplete_URL'];
+ $error_msg = (!empty($error_msg)) ? $error_msg . "<br />" . $lang['No_connection_URL'] : $lang['No_connection_URL'];
}
- } // if ... allow_avatar_upload
+ }
+ else
+ {
+ $error = true;
+ $error_msg = (!empty($error_msg)) ? $error_msg . "<br />" . $lang['Incomplete_URL'] : $lang['Incomplete_URL'];
+ }
}
else if( !empty($user_avatar_name) )
{
@@ -909,7 +918,7 @@ if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
}
}
- if($board_config['allow_avatar_remote'] && !$error)
+ if( $board_config['allow_avatar_remote'] && !$error )
{
if($user_avatar_remoteurl != "" && $avatar_sql == "")
{
@@ -917,7 +926,15 @@ if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
{
$user_avatar_remoteurl = "http://" . $user_avatar_remoteurl;
}
- $avatar_sql = ", user_avatar = '$user_avatar_remoteurl'";
+ $avatar_sql = ", user_avatar = '$user_avatar_remoteurl', user_avatar_type = " . USER_AVATAR_REMOTE;
+ }
+ }
+
+ if( $board_config['allow_avatar_local'] && !$error )
+ {
+ if( $user_avatar_local != "" && $avatar_sql == "" )
+ {
+ $avatar_sql = ", user_avatar = '$user_avatar_local', user_avatar_type = " . USER_AVATAR_GALLERY;
}
}
@@ -1169,7 +1186,7 @@ if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
$user_dateformat = stripslashes($user_dateformat);
}
- else if($mode == "editprofile")
+ else if( $mode == "editprofile" && !isset($HTTP_POST_VARS['avatargallery']) && !isset($HTTP_POST_VARS['submitavatar']) && !isset($HTTP_POST_VARS['cancelavatar']) )
{
$user_id = $userdata['user_id'];
$username = $userdata['username'];
@@ -1199,207 +1216,371 @@ if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
$allowviewonline = $userdata['user_allow_viewonline'];
$user_avatar = $userdata['user_avatar'];
+ $user_avatar_type = $userdata['user_avatar_type'];
$user_style = $userdata['user_style'];
$user_lang = $userdata['user_lang'];
$user_timezone = $userdata['user_timezone'];
$user_dateformat = $userdata['user_dateformat'];
}
- if( !isset($coppa) )
+ if( isset($HTTP_POST_VARS['avatargallery']) )
{
- $coppa = FALSE;
- }
+ if($mode == "editprofile")
+ {
+ if( $user_id != $userdata['user_id'] )
+ {
+ $error = TRUE;
+ $error_msg = $lang['Wrong_Profile'];
+ }
+ }
- if( !isset($user_template) )
- {
- $selected_template = $board_config['system_template'];
- }
+ if( !$error )
+ {
+ include($phpbb_root_path . 'includes/page_header.'.$phpEx);
- $html_status = ($userdata['user_allowhtml']) ? $lang['ON'] : $lang['OFF'];
- $bbcode_status = ($userdata['user_allowbbcode']) ? $lang['ON'] : $lang['OFF'];
- $smilies_status = ($userdata['user_allowsmile']) ? $lang['ON'] : $lang['OFF'];
+ $template->set_filenames(array(
+ "body" => "profile_avatar_gallery.tpl",
+ "jumpbox" => "jumpbox.tpl")
+ );
- $signature = preg_replace("/\:[0-9a-z\:]*?\]/si", "]", $signature);
+ $jumpbox = make_jumpbox();
+ $template->assign_vars(array(
+ "L_GO" => $lang['Go'],
+ "L_JUMP_TO" => $lang['Jump_to'],
+ "L_SELECT_FORUM" => $lang['Select_forum'],
- if($user_avatar != "")
- {
- $avatar_img = (eregi("^http", $user_avatar) && $board_config['allow_avatar_remote']) ? "<img src=\"" . $user_avatar . "\">" : "<img src=\"" . $board_config['avatar_path'] . "/" . $user_avatar . "\" alt=\"\" />";
- }
- else
- {
- $avatar_img = "";
- }
+ "S_JUMPBOX_LIST" => $jumpbox,
+ "S_JUMPBOX_ACTION" => append_sid("viewforum.$phpEx"))
+ );
+ $template->assign_var_from_handle("JUMPBOX", "jumpbox");
- $s_hidden_fields = '<input type="hidden" name="mode" value="' . $mode . '" /><input type="hidden" name="agreed" value="true" /><input type="hidden" name="coppa" value="' . $coppa . '" />';
- if( $mode == "editprofile" )
- {
- $s_hidden_fields .= '<input type="hidden" name="user_id" value="' . $userdata['user_id'] . '" />';
- //
- // Send the users current email address. If they change it, and account activation is turned on
- // the user account will be disabled and the user will have to reactivate their account.
- //
- $s_hidden_fields .= '<input type="hidden" name="current_email" value="' . $userdata['user_email'] . '" />';
- }
+ $dir = @opendir($board_config['avatar_gallery_path']);
- include($phpbb_root_path . 'includes/page_header.'.$phpEx);
+ $avatar_images = array();
+ while( $file = @readdir($dir) )
+ {
+ if( @filetype($file) == "dir" && !preg_match("/\.\.|\./", $file) )
+ {
+ $sub_dir = @opendir($board_config['avatar_gallery_path'] . "/" . $file);
- if( $error )
- {
- $template->set_filenames(array(
- "reg_header" => "error_body.tpl")
- );
- $template->assign_vars(array(
- "ERROR_MESSAGE" => $error_msg)
- );
- $template->pparse("reg_header");
- }
+ $avatar_row_count = 0;
+ $avatar_col_count = 0;
+ while( $sub_file = @readdir($sub_dir) )
+ {
+ if( preg_match("/(\.gif$|\.png$|\.jpg)$/is", $sub_file) )
+ {
+ $avatar_images[$file][$avatar_row_count][$avatar_col_count] = $file . "/" . $sub_file;
- $template->set_filenames(array(
- "body" => "profile_add_body.tpl",
- "jumpbox" => "jumpbox.tpl")
- );
+ $avatar_col_count++;
+ if( $avatar_col_count == 5 )
+ {
+ $avatar_row_count++;
+ $avatar_col_count = 0;
+ }
+ }
+ }
+ }
+ else
+ {
- $jumpbox = make_jumpbox();
- $template->assign_vars(array(
- "L_GO" => $lang['Go'],
- "L_JUMP_TO" => $lang['Jump_to'],
- "L_SELECT_FORUM" => $lang['Select_forum'],
+ }
+ }
+
+ @closedir($dir);
- "S_JUMPBOX_LIST" => $jumpbox,
- "S_JUMPBOX_ACTION" => append_sid("viewforum.$phpEx"))
- );
- $template->assign_var_from_handle("JUMPBOX", "jumpbox");
+ if( isset($HTTP_POST_VARS['avatarcategory']) )
+ {
+ $category = $HTTP_POST_VARS['avatarcategory'];
+ }
+ else
+ {
+ list($category, ) = each($avatar_images);
+ }
+ @reset($avatar_images);
- if( $mode == "editprofile" )
- {
- $template->assign_block_vars("edit_profile", array());
- }
+ $s_categories = "";
+ while( list($key) = each($avatar_images) )
+ {
+ $selected = ( $key == $category ) ? "selected=\"selected\"" : "";
+ if( count($avatar_images[$key]) )
+ {
+ $s_categories .= '<option value="' . $key . '"' . $selected . '>' . ucfirst($key) . '</option>';
+ }
+ }
- $template->assign_vars(array(
- "USERNAME" => $username,
- "EMAIL" => $email,
- "YIM" => $yim,
- "ICQ" => $icq,
- "MSN" => $msn,
- "AIM" => $aim,
- "OCCUPATION" => $occupation,
- "INTERESTS" => $interests,
- "LOCATION" => $location,
- "WEBSITE" => $website,
- "SIGNATURE" => str_replace("<br />", "\n", $signature),
- "VIEW_EMAIL_YES" => ($viewemail) ? "checked=\"checked\"" : "",
- "VIEW_EMAIL_NO" => (!$viewemail) ? "checked=\"checked\"" : "",
- "HIDE_USER_YES" => (!$allowviewonline) ? "checked=\"checked\"" : "",
- "HIDE_USER_NO" => ($allowviewonline) ? "checked=\"checked\"" : "",
- "NOTIFY_PM_YES" => ($notifypm) ? "checked=\"checked\"" : "",
- "NOTIFY_PM_NO" => (!$notifypm) ? "checked=\"checked\"" : "",
- "ALWAYS_ADD_SIGNATURE_YES" => ($attachsig) ? "checked=\"checked\"" : "",
- "ALWAYS_ADD_SIGNATURE_NO" => (!$attachsig) ? "checked=\"checked\"" : "",
- "NOTIFY_REPLY_YES" => ($notifyreply) ? "checked=\"checked\"" : "",
- "NOTIFY_REPLY_NO" => (!$notifyreply) ? "checked=\"checked\"" : "",
- "ALWAYS_ALLOW_BBCODE_YES" => ($allowbbcode) ? "checked=\"checked\"" : "",
- "ALWAYS_ALLOW_BBCODE_NO" => (!$allowbbcode) ? "checked=\"checked\"" : "",
- "ALWAYS_ALLOW_HTML_YES" => ($allowhtml) ? "checked=\"checked\"" : "",
- "ALWAYS_ALLOW_HTML_NO" => (!$allowhtml) ? "checked=\"checked\"" : "",
- "ALWAYS_ALLOW_SMILIES_YES" => ($allowsmilies) ? "checked=\"checked\"" : "",
- "ALWAYS_ALLOW_SMILIES_NO" => (!$allowsmilies) ? "checked=\"checked\"" : "",
- "ALLOW_AVATAR" => $board_config['allow_avatar_upload'],
- "AVATAR" => $avatar_img,
- "AVATAR_SIZE" => $board_config['avatar_filesize'],
- "LANGUAGE_SELECT" => language_select($user_lang, 'language'),
- "STYLE_SELECT" => style_select($user_style, 'style'),
- "TIMEZONE_SELECT" => tz_select($user_timezone, 'timezone'),
- "DATE_FORMAT" => $user_dateformat,
- "HTML_STATUS" => $html_status,
- "BBCODE_STATUS" => $bbcode_status,
- "SMILIES_STATUS" => $smilies_status,
-
- "L_CURRENT_PASSWORD" => $lang['Current_password'],
- "L_NEW_PASSWORD" => ( $mode == "register" ) ? $lang['Password'] : $lang['New_password'],
- "L_CONFIRM_PASSWORD" => $lang['Confirm_password'],
- "L_PASSWORD_IF_CHANGED" => ($mode == "editprofile") ? $lang['password_if_changed'] : "",
- "L_PASSWORD_CONFIRM_IF_CHANGED" => ($mode == "editprofile") ? $lang['password_confirm_if_changed'] : "",
- "L_SUBMIT" => $lang['Submit'],
- "L_RESET" => $lang['Reset'],
- "L_ICQ_NUMBER" => $lang['ICQ'],
- "L_MESSENGER" => $lang['MSNM'],
- "L_YAHOO" => $lang['YIM'],
- "L_WEBSITE" => $lang['Website'],
- "L_AIM" => $lang['AIM'],
- "L_LOCATION" => $lang['From'],
- "L_OCCUPATION" => $lang['Occupation'],
- "L_BOARD_LANGUAGE" => $lang['Board_lang'],
- "L_BOARD_STYLE" => $lang['Board_style'],
- "L_TIMEZONE" => $lang['Timezone'],
- "L_DATE_FORMAT" => $lang['Date_format'],
- "L_DATE_FORMAT_EXPLAIN" => $lang['Date_format_explain'],
- "L_YES" => $lang['Yes'],
- "L_NO" => $lang['No'],
- "L_INTERESTS" => $lang['Interests'],
- "L_ALWAYS_ALLOW_SMILIES" => $lang['Always_smile'],
- "L_ALWAYS_ALLOW_BBCODE" => $lang['Always_bbcode'],
- "L_ALWAYS_ALLOW_HTML" => $lang['Always_html'],
- "L_HIDE_USER" => $lang['Hide_user'],
- "L_ALWAYS_ADD_SIGNATURE" => $lang['Always_add_sig'],
-
- "L_AVATAR_PANEL" => $lang['Avatar_panel'],
- "L_AVATAR_EXPLAIN" => $lang['Avatar_explain'],
- "L_UPLOAD_AVATAR_FILE" => $lang['Upload_Avatar_file'],
- "L_UPLOAD_AVATAR_URL" => $lang['Upload_Avatar_URL'],
- "L_UPLOAD_AVATAR_URL_EXPLAIN" => $lang['Upload_Avatar_URL_explain'],
- "L_AVATAR_GALLERY" => $lang['Select_from_gallery'],
- "L_SHOW_GALLERY" => $lang['Avatar_gallery'],
- "L_LINK_REMOTE_AVATAR" => $lang['Link_remote_Avatar'],
- "L_LINK_REMOTE_AVATAR_EXPLAIN" => $lang['Link_remote_Avatar_explain'],
- "L_DELETE_AVATAR" => $lang['Delete_Image'],
- "L_CURRENT_IMAGE" => $lang['Current_Image'],
-
- "L_SIGNATURE" => $lang['Signature'],
- "L_SIGNATURE_EXPLAIN" => $lang['Signature_explain'],
- "L_NOTIFY_ON_REPLY" => $lang['Always_notify'],
- "L_NOTIFY_ON_REPLY_EXPLAIN" => $lang['Always_notify_explain'],
- "L_NOTIFY_ON_PRIVMSG" => $lang['Notify_on_privmsg'],
- "L_PREFERENCES" => $lang['Preferences'],
- "L_PUBLIC_VIEW_EMAIL" => $lang['Public_view_email'],
- "L_ITEMS_REQUIRED" => $lang['Items_required'],
- "L_REGISTRATION_INFO" => $lang['Registration_info'],
- "L_PROFILE_INFO" => $lang['Profile_info'],
- "L_PROFILE_INFO_NOTICE" => $lang['Profile_info_warn'],
- "L_EMAIL_ADDRESS" => $lang['Email_address'],
+ $s_colspan = 0;
+ for($i = 0; $i < count($avatar_images[$category]); $i++)
+ {
+ $template->assign_block_vars("avatar_row", array());
- "L_HTML_IS" => $lang['HTML'] . " " . $lang['is'],
- "L_BBCODE_IS" => $lang['BBCode'] . " " . $lang['is'],
- "L_SMILIES_ARE" => $lang['Smilies'] . " " . $lang['are'],
+ $s_colspan = max($s_colspan, count($avatar_images[$category][$i]));
- "S_ALLOW_AVATAR_UPLOAD" => $board_config['allow_avatar_upload'],
- "S_ALLOW_AVATAR_LOCAL" => $board_config['allow_avatar_local'],
- "S_ALLOW_AVATAR_REMOTE" => $board_config['allow_avatar_remote'],
- "S_HIDDEN_FIELDS" => $s_hidden_fields,
- "S_PROFILE_ACTION" => append_sid("profile.$phpEx"))
- );
+ for($j = 0; $j < count($avatar_images[$category][$i]); $j++)
+ {
+ $template->assign_block_vars("avatar_row.avatar_column", array(
+ "AVATAR_IMAGE" => $board_config['avatar_gallery_path'] . "/" . $avatar_images[$category][$i][$j])
+ );
- //
- // This is another cheat using the block_var capability
- // of the templates to 'fake' an IF...ELSE...ENDIF solution
- // it works well :)
- //
- if( $board_config['allow_avatar_upload'] || $board_config['allow_avatar_local'] || $board_config['allow_avatar_remote'] )
+ $template->assign_block_vars("avatar_row.avatar_option_column", array(
+ "S_OPTIONS_AVATAR" => $avatar_images[$category][$i][$j])
+ );
+ }
+ }
+
+ $s_hidden_fields = '<input type="hidden" name="agreed" value="true" /><input type="hidden" name="coppa" value="' . $coppa . '" /><input type="hidden" name="user_id" value="' . $userdata['user_id'] . '" /><input type="hidden" name="current_email" value="' . $userdata['user_email'] . '" />';
+ $s_hidden_vars = '<input type="hidden" name="user_id" value="' . $user_id . '" />';
+ $s_hidden_vars .= '<input type="hidden" name="username" value="' . addslashes($username) . '" />';
+ $s_hidden_vars .= '<input type="hidden" name="email" value="' . addslashes($email) . '" />';
+ $s_hidden_vars .= '<input type="hidden" name="icq" value="' . addslashes($icq) . '" />';
+ $s_hidden_vars .= '<input type="hidden" name="aim" value="' . addslashes($aim) . '" />';
+ $s_hidden_vars .= '<input type="hidden" name="msn" value="' . addslashes($msn) . '" />';
+ $s_hidden_vars .= '<input type="hidden" name="yim" value="' . addslashes($yim) . '" />';
+ $s_hidden_vars .= '<input type="hidden" name="website" value="' . addslashes($website) . '" />';
+ $s_hidden_vars .= '<input type="hidden" name="location" value="' . addslashes($location) . '" />';
+ $s_hidden_vars .= '<input type="hidden" name="occupation" value="' . addslashes($occupation) . '" />';
+ $s_hidden_vars .= '<input type="hidden" name="interests" value="' . addslashes($interests) . '" />';
+ $s_hidden_vars .= '<input type="hidden" name="signature" value="' . addslashes($signature) . '" />';
+ $s_hidden_vars .= '<input type="hidden" name="viewemail" value="' . $viewemail . '" />';
+ $s_hidden_vars .= '<input type="hidden" name="notifypm" value="' . $notifypm . '" />';
+ $s_hidden_vars .= '<input type="hidden" name="notifyreply" value="' . $notifyreply . '" />';
+ $s_hidden_vars .= '<input type="hidden" name="attachsig" value="' . $attachsig . '" />';
+ $s_hidden_vars .= '<input type="hidden" name="allowhtml" value="' . $allowhtml . '" />';
+ $s_hidden_vars .= '<input type="hidden" name="allowbbcode" value="' . $allowbbcode . '" />';
+ $s_hidden_vars .= '<input type="hidden" name="allowsmilies" value="' . $allowsmilies . '" />';
+ $s_hidden_vars .= '<input type="hidden" name="hideonline" value="' . !$allowviewonline . '" />';
+ $s_hidden_vars .= '<input type="hidden" name="style" value="' . $user_style . '" />';
+ $s_hidden_vars .= '<input type="hidden" name="language" value="' . $user_lang . '" />';
+ $s_hidden_vars .= '<input type="hidden" name="timezone" value="' . $user_timezone . '" />';
+ $s_hidden_vars .= '<input type="hidden" name="dateformat" value="' . addslashes($user_dateformat) . '" />';
+
+ $template->assign_vars(array(
+ "L_AVATAR_GALLERY" => $lang['Avatar_gallery'],
+ "L_SELECT_AVATAR" => $lang['Select_avatar'],
+ "L_RETURN_PROFILE" => $lang['Return_profile'],
+ "L_CATEGORY" => $lang['Select_category'],
+
+ "S_OPTIONS_CATEGORIES" => $s_categories,
+ "S_COLSPAN" => $s_colspan,
+ "S_PROFILE_ACTION" => append_sid("profile.$phpEx?mode=$mode"),
+ "S_HIDDEN_FIELDS" => $s_hidden_vars)
+ );
+
+ }
+ }
+ else
{
- $template->assign_block_vars("avatarblock", array() );
+ if( !isset($coppa) )
+ {
+ $coppa = FALSE;
+ }
- if($board_config['allow_avatar_upload'])
+ if( !isset($user_template) )
{
- $template->assign_block_vars("avatarblock.avatarupload", array() );
+ $selected_template = $board_config['system_template'];
}
- if($board_config['allow_avatar_remote'])
+
+ $html_status = ($userdata['user_allowhtml']) ? $lang['ON'] : $lang['OFF'];
+ $bbcode_status = ($userdata['user_allowbbcode']) ? $lang['ON'] : $lang['OFF'];
+ $smilies_status = ($userdata['user_allowsmile']) ? $lang['ON'] : $lang['OFF'];
+
+ $signature = preg_replace("/\:[0-9a-z\:]*?\]/si", "]", $signature);
+
+ if( $user_avatar_type )
{
- $template->assign_block_vars("avatarblock.avatarremote", array() );
+ switch( $user_avatar_type )
+ {
+ case USER_AVATAR_UPLOAD:
+ $avatar_img = "<img src=\"" . $board_config['avatar_path'] . "/" . $user_avatar . "\" alt=\"\" />";
+ break;
+ case USER_AVATAR_REMOTE:
+ $avatar_img = "<img src=\"$user_avatar\" alt=\"\" />";
+ break;
+ case USER_AVATAR_GALLERY:
+ $avatar_img = "<img src=\"" . $board_config['avatar_gallery_path'] . "/" . $user_avatar . "\" alt=\"\" />";
+ break;
+ }
}
- if($board_config['allow_avatar_local'])
+ else
{
- $template->assign_block_vars("avatarblock.avatargallery", array() );
+ $avatar_img = "";
}
+ $s_hidden_fields = '<input type="hidden" name="mode" value="' . $mode . '" /><input type="hidden" name="agreed" value="true" /><input type="hidden" name="coppa" value="' . $coppa . '" />';
+ if( $mode == "editprofile" )
+ {
+ $s_hidden_fields .= '<input type="hidden" name="user_id" value="' . $userdata['user_id'] . '" />';
+ //
+ // Send the users current email address. If they change it, and account activation is turned on
+ // the user account will be disabled and the user will have to reactivate their account.
+ //
+ $s_hidden_fields .= '<input type="hidden" name="current_email" value="' . $userdata['user_email'] . '" />';
+ }
+
+ if( !empty($user_avatar_local) )
+ {
+ $s_hidden_fields .= '<input type="hidden" name="avatarlocal" value="' . $user_avatar_local . '" />';
+ }
+
+ include($phpbb_root_path . 'includes/page_header.'.$phpEx);
+
+ if( $error )
+ {
+ $template->set_filenames(array(
+ "reg_header" => "error_body.tpl")
+ );
+ $template->assign_vars(array(
+ "ERROR_MESSAGE" => $error_msg)
+ );
+ $template->pparse("reg_header");
+ }
+
+ $template->set_filenames(array(
+ "body" => "profile_add_body.tpl",
+ "jumpbox" => "jumpbox.tpl")
+ );
+
+ $jumpbox = make_jumpbox();
+ $template->assign_vars(array(
+ "L_GO" => $lang['Go'],
+ "L_JUMP_TO" => $lang['Jump_to'],
+ "L_SELECT_FORUM" => $lang['Select_forum'],
+
+ "S_JUMPBOX_LIST" => $jumpbox,
+ "S_JUMPBOX_ACTION" => append_sid("viewforum.$phpEx"))
+ );
+ $template->assign_var_from_handle("JUMPBOX", "jumpbox");
+
+ if( $mode == "editprofile" )
+ {
+ $template->assign_block_vars("edit_profile", array());
+ }
+
+ $template->assign_vars(array(
+ "USERNAME" => $username,
+ "EMAIL" => $email,
+ "YIM" => $yim,
+ "ICQ" => $icq,
+ "MSN" => $msn,
+ "AIM" => $aim,
+ "OCCUPATION" => $occupation,
+ "INTERESTS" => $interests,
+ "LOCATION" => $location,
+ "WEBSITE" => $website,
+ "SIGNATURE" => str_replace("<br />", "\n", $signature),
+ "VIEW_EMAIL_YES" => ($viewemail) ? "checked=\"checked\"" : "",
+ "VIEW_EMAIL_NO" => (!$viewemail) ? "checked=\"checked\"" : "",
+ "HIDE_USER_YES" => (!$allowviewonline) ? "checked=\"checked\"" : "",
+ "HIDE_USER_NO" => ($allowviewonline) ? "checked=\"checked\"" : "",
+ "NOTIFY_PM_YES" => ($notifypm) ? "checked=\"checked\"" : "",
+ "NOTIFY_PM_NO" => (!$notifypm) ? "checked=\"checked\"" : "",
+ "ALWAYS_ADD_SIGNATURE_YES" => ($attachsig) ? "checked=\"checked\"" : "",
+ "ALWAYS_ADD_SIGNATURE_NO" => (!$attachsig) ? "checked=\"checked\"" : "",
+ "NOTIFY_REPLY_YES" => ($notifyreply) ? "checked=\"checked\"" : "",
+ "NOTIFY_REPLY_NO" => (!$notifyreply) ? "checked=\"checked\"" : "",
+ "ALWAYS_ALLOW_BBCODE_YES" => ($allowbbcode) ? "checked=\"checked\"" : "",
+ "ALWAYS_ALLOW_BBCODE_NO" => (!$allowbbcode) ? "checked=\"checked\"" : "",
+ "ALWAYS_ALLOW_HTML_YES" => ($allowhtml) ? "checked=\"checked\"" : "",
+ "ALWAYS_ALLOW_HTML_NO" => (!$allowhtml) ? "checked=\"checked\"" : "",
+ "ALWAYS_ALLOW_SMILIES_YES" => ($allowsmilies) ? "checked=\"checked\"" : "",
+ "ALWAYS_ALLOW_SMILIES_NO" => (!$allowsmilies) ? "checked=\"checked\"" : "",
+ "ALLOW_AVATAR" => $board_config['allow_avatar_upload'],
+ "AVATAR" => $avatar_img,
+ "AVATAR_SIZE" => $board_config['avatar_filesize'],
+ "LANGUAGE_SELECT" => language_select($user_lang, 'language'),
+ "STYLE_SELECT" => style_select($user_style, 'style'),
+ "TIMEZONE_SELECT" => tz_select($user_timezone, 'timezone'),
+ "DATE_FORMAT" => $user_dateformat,
+ "HTML_STATUS" => $html_status,
+ "BBCODE_STATUS" => $bbcode_status,
+ "SMILIES_STATUS" => $smilies_status,
+
+ "L_CURRENT_PASSWORD" => $lang['Current_password'],
+ "L_NEW_PASSWORD" => ( $mode == "register" ) ? $lang['Password'] : $lang['New_password'],
+ "L_CONFIRM_PASSWORD" => $lang['Confirm_password'],
+ "L_PASSWORD_IF_CHANGED" => ($mode == "editprofile") ? $lang['password_if_changed'] : "",
+ "L_PASSWORD_CONFIRM_IF_CHANGED" => ($mode == "editprofile") ? $lang['password_confirm_if_changed'] : "",
+ "L_SUBMIT" => $lang['Submit'],
+ "L_RESET" => $lang['Reset'],
+ "L_ICQ_NUMBER" => $lang['ICQ'],
+ "L_MESSENGER" => $lang['MSNM'],
+ "L_YAHOO" => $lang['YIM'],
+ "L_WEBSITE" => $lang['Website'],
+ "L_AIM" => $lang['AIM'],
+ "L_LOCATION" => $lang['From'],
+ "L_OCCUPATION" => $lang['Occupation'],
+ "L_BOARD_LANGUAGE" => $lang['Board_lang'],
+ "L_BOARD_STYLE" => $lang['Board_style'],
+ "L_TIMEZONE" => $lang['Timezone'],
+ "L_DATE_FORMAT" => $lang['Date_format'],
+ "L_DATE_FORMAT_EXPLAIN" => $lang['Date_format_explain'],
+ "L_YES" => $lang['Yes'],
+ "L_NO" => $lang['No'],
+ "L_INTERESTS" => $lang['Interests'],
+ "L_ALWAYS_ALLOW_SMILIES" => $lang['Always_smile'],
+ "L_ALWAYS_ALLOW_BBCODE" => $lang['Always_bbcode'],
+ "L_ALWAYS_ALLOW_HTML" => $lang['Always_html'],
+ "L_HIDE_USER" => $lang['Hide_user'],
+ "L_ALWAYS_ADD_SIGNATURE" => $lang['Always_add_sig'],
+
+ "L_AVATAR_PANEL" => $lang['Avatar_panel'],
+ "L_AVATAR_EXPLAIN" => $lang['Avatar_explain'],
+ "L_UPLOAD_AVATAR_FILE" => $lang['Upload_Avatar_file'],
+ "L_UPLOAD_AVATAR_URL" => $lang['Upload_Avatar_URL'],
+ "L_UPLOAD_AVATAR_URL_EXPLAIN" => $lang['Upload_Avatar_URL_explain'],
+ "L_AVATAR_GALLERY" => $lang['Select_from_gallery'],
+ "L_SHOW_GALLERY" => $lang['View_avatar_gallery'],
+ "L_LINK_REMOTE_AVATAR" => $lang['Link_remote_Avatar'],
+ "L_LINK_REMOTE_AVATAR_EXPLAIN" => $lang['Link_remote_Avatar_explain'],
+ "L_DELETE_AVATAR" => $lang['Delete_Image'],
+ "L_CURRENT_IMAGE" => $lang['Current_Image'],
+
+ "L_SIGNATURE" => $lang['Signature'],
+ "L_SIGNATURE_EXPLAIN" => $lang['Signature_explain'],
+ "L_NOTIFY_ON_REPLY" => $lang['Always_notify'],
+ "L_NOTIFY_ON_REPLY_EXPLAIN" => $lang['Always_notify_explain'],
+ "L_NOTIFY_ON_PRIVMSG" => $lang['Notify_on_privmsg'],
+ "L_PREFERENCES" => $lang['Preferences'],
+ "L_PUBLIC_VIEW_EMAIL" => $lang['Public_view_email'],
+ "L_ITEMS_REQUIRED" => $lang['Items_required'],
+ "L_REGISTRATION_INFO" => $lang['Registration_info'],
+ "L_PROFILE_INFO" => $lang['Profile_info'],
+ "L_PROFILE_INFO_NOTICE" => $lang['Profile_info_warn'],
+ "L_EMAIL_ADDRESS" => $lang['Email_address'],
+
+ "L_HTML_IS" => $lang['HTML'] . " " . $lang['is'],
+ "L_BBCODE_IS" => $lang['BBCode'] . " " . $lang['is'],
+ "L_SMILIES_ARE" => $lang['Smilies'] . " " . $lang['are'],
+
+ "S_ALLOW_AVATAR_UPLOAD" => $board_config['allow_avatar_upload'],
+ "S_ALLOW_AVATAR_LOCAL" => $board_config['allow_avatar_local'],
+ "S_ALLOW_AVATAR_REMOTE" => $board_config['allow_avatar_remote'],
+ "S_HIDDEN_FIELDS" => $s_hidden_fields,
+ "S_PROFILE_ACTION" => append_sid("profile.$phpEx"))
+ );
+
+ //
+ // This is another cheat using the block_var capability
+ // of the templates to 'fake' an IF...ELSE...ENDIF solution
+ // it works well :)
+ //
+ if( $board_config['allow_avatar_upload'] || $board_config['allow_avatar_local'] || $board_config['allow_avatar_remote'] )
+ {
+ $template->assign_block_vars("avatarblock", array() );
+
+ if($board_config['allow_avatar_upload'])
+ {
+ $template->assign_block_vars("avatarblock.avatarupload", array() );
+ }
+ if($board_config['allow_avatar_remote'])
+ {
+ $template->assign_block_vars("avatarblock.avatarremote", array() );
+ }
+ if($board_config['allow_avatar_local'])
+ {
+ $template->assign_block_vars("avatarblock.avatargallery", array() );
+ }
+
+ }
}
$template->pparse("body");
diff --git a/phpBB/templates/subSilver/admin/admin_config_body.tpl b/phpBB/templates/subSilver/admin/admin_config_body.tpl
index bb7ecb2c33..f26ceb2884 100644
--- a/phpBB/templates/subSilver/admin/admin_config_body.tpl
+++ b/phpBB/templates/subSilver/admin/admin_config_body.tpl
@@ -124,6 +124,10 @@
<td class="row2"><input type="text" size="20" maxlength="255" name="avatar_path" value="{AVATAR_PATH}" /></td>
</tr>
<tr>
+ <td class="row1">Avatar Gallery Path <br /><span class="gensmall">Path under your phpBB root dir for pre-loaded images, e.g. images/avatars/gallery</span></td>
+ <td class="row2"><input type="text" size="20" maxlength="255" name="avatar_gallery_path" value="{AVATAR_GALLERY_PATH}" /></td>
+ </tr>
+ <tr>
<td class="catSides" colspan="2"><span class="cattitle">Email Settings</span></td>
</tr>
<tr>
diff --git a/phpBB/templates/subSilver/profile_add_body.tpl b/phpBB/templates/subSilver/profile_add_body.tpl
index c07cd0b97e..9393c5e9fa 100644
--- a/phpBB/templates/subSilver/profile_add_body.tpl
+++ b/phpBB/templates/subSilver/profile_add_body.tpl
@@ -268,8 +268,3 @@
</tr>
</table>
</form>
-
-<!-- IF $S_ALLOW_AVATAR_UPLOAD eq TRUE || $S_ALLOW_AVATAR_LOCAL eq TRUE || $S_ALLOW_AVATAR_REMOTE eq TRUE -->
-<!-- IF $S_ALLOW_AVATAR_LOCAL eq TRUE -->
-<!-- IF $S_ALLOW_AVATAR_REMOTE eq TRUE -->
-<!-- IF $S_ALLOW_AVATAR_UPLOAD eq TRUE --> \ No newline at end of file
diff --git a/phpBB/templates/subSilver/profile_avatar_gallery.tpl b/phpBB/templates/subSilver/profile_avatar_gallery.tpl
new file mode 100644
index 0000000000..b8f8fd9c8d
--- /dev/null
+++ b/phpBB/templates/subSilver/profile_avatar_gallery.tpl
@@ -0,0 +1,37 @@
+
+<form action="{S_PROFILE_ACTION}" method="post">
+<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
+ <tr>
+ <td align="left"><span class="nav"><a href="{U_INDEX}" class="nav">{SITENAME}&nbsp;{L_INDEX}</a></span></td>
+ </tr>
+</table>
+
+<table border="0" cellpadding="3" cellspacing="1" width="100%" class="forumline">
+ <tr>
+ <th class="thHead" colspan="{S_COLSPAN}" height="25" valign="middle">{L_AVATAR_GALLERY}</th>
+ </tr>
+ <tr>
+ <td class="catBottom" align="center" valign="middle" colspan="6" height="28"><span class="genmed">{L_CATEGORY}:&nbsp;<select name="avatarcategory">{S_OPTIONS_CATEGORIES}</select>&nbsp;<input type="submit" class="liteoption" value="{L_GO}" name="avatargallery" /></span></td>
+ </tr>
+ <!-- BEGIN avatar_row -->
+ <tr>
+ <!-- BEGIN avatar_column -->
+ <td class="row1" align="center"><img src="{avatar_row.avatar_column.AVATAR_IMAGE}" /></td>
+ <!-- END avatar_column -->
+ </tr>
+ <tr>
+ <!-- BEGIN avatar_option_column -->
+ <td class="row2" align="center"><input type="radio" name="avatarselect" value="{avatar_row.avatar_option_column.S_OPTIONS_AVATAR}" /></td>
+ <!-- END avatar_option_column -->
+ </tr>
+
+ <!-- END avatar_row -->
+ <tr>
+ <td class="catBottom" colspan="{S_COLSPAN}" align="center" height="28">{S_HIDDEN_FIELDS}
+ <input type="submit" name="submitavatar" value="{L_SELECT_AVATAR}" class="mainoption" />
+ &nbsp;&nbsp;
+ <input type="submit" name="cancelavatar" value="{L_RETURN_PROFILE}" class="liteoption" />
+ </td>
+ </tr>
+ </table>
+</form>
diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php
index 7fd23c2f95..c216289a76 100644
--- a/phpBB/viewtopic.php
+++ b/phpBB/viewtopic.php
@@ -381,7 +381,7 @@ $select_post_order .= "</select>";
//
// Go ahead and pull all data for this topic
//
-$sql = "SELECT u.username, u.user_id, u.user_posts, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_regdate, u.user_msnm, u.user_viewemail, u.user_rank, u.user_sig, u.user_sig_bbcode_uid, u.user_avatar, p.*, pt.post_text, pt.post_subject
+$sql = "SELECT u.username, u.user_id, u.user_posts, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_regdate, u.user_msnm, u.user_viewemail, u.user_rank, u.user_sig, u.user_sig_bbcode_uid, u.user_avatar, u.user_avatar_type, p.*, pt.post_text, pt.post_subject
FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt
WHERE p.topic_id = $topic_id
AND p.poster_id = u.user_id
@@ -665,9 +665,20 @@ for($i = 0; $i < $total_posts; $i++)
$poster_joined = ($postrow[$i]['user_id'] != ANONYMOUS) ? $lang['Joined'] . ": " . create_date($board_config['default_dateformat'], $postrow[$i]['user_regdate'], $board_config['board_timezone']) : "";
- if($postrow[$i]['user_avatar'] != "" && $poster_id != ANONYMOUS)
+ if( $postrow[$i]['user_avatar_type'] && $poster_id != ANONYMOUS )
{
- $poster_avatar = (eregi("http", $postrow[$i]['user_avatar']) && $board_config['allow_avatar_remote']) ? "<br /><img src=\"" . $postrow[$i]['user_avatar'] . "\"><br />" : "<br /><img src=\"" . $board_config['avatar_path'] . "/" . $postrow[$i]['user_avatar'] . "\" alt=\"\" /><br />";
+ switch( $postrow[$i]['user_avatar_type'] )
+ {
+ case USER_AVATAR_UPLOAD:
+ $poster_avatar = "<img src=\"" . $board_config['avatar_path'] . "/" . $postrow[$i]['user_avatar'] . "\" alt=\"\" />";
+ break;
+ case USER_AVATAR_REMOTE:
+ $poster_avatar = "<img src=\"" . $postrow[$i]['user_avatar'] . "\" alt=\"\" />";
+ break;
+ case USER_AVATAR_GALLERY:
+ $poster_avatar = "<img src=\"" . $board_config['avatar_gallery_path'] . "/" . $postrow[$i]['user_avatar'] . "\" alt=\"\" />";
+ break;
+ }
}
else
{