Preliminary avatar gallery support

git-svn-id: file:///svn/phpbb/trunk@1173 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Paul S. Owen 2001-10-11 22:05:36 +00:00
parent e2c755710f
commit dd2033ace0
13 changed files with 741 additions and 411 deletions

View file

@ -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'],

View file

@ -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'];
$icq = $this_userdata['user_icq'];
$aim = $this_userdata['user_aim'];
$msn = $this_userdata['user_msnm'];
$yim = $this_userdata['user_yim'];
$website = $userdata['user_website'];
$location = $userdata['user_from'];
$occupation = $userdata['user_occ'];
$interests = $userdata['user_interests'];
$signature = $userdata['user_sig'];
$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 = $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'];
$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 = $userdata['user_avatar'];
$user_style = $userdata['user_style'];
$user_lang = $userdata['user_lang'];
$user_timezone = $userdata['user_timezone'];
$user_dateformat = $userdata['user_dateformat'];
$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) )
{
@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))
{

View file

@ -434,6 +434,7 @@ CREATE TABLE [phpbb_users] (
[user_regdate] [int] NOT NULL ,
[user_rank] [int] 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]

View file

@ -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),

View file

@ -449,6 +449,7 @@ CREATE TABLE phpbb_users (
user_allow_viewonline int2 DEFAULT '1' NOT NULL,
user_rank int4 DEFAULT '0',
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,

View file

@ -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>";
?>

View file

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

View file

@ -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";

View file

@ -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,16 +503,20 @@ 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']) )
@ -685,15 +700,13 @@ 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 = ''";
}
$avatar_sql = ", user_avatar = '', user_avatar_type = " . USER_AVATAR_NONE;
}
else if( $user_avatar_loc != "" )
{
if($board_config['allow_avatar_upload'])
else if( $user_avatar_loc != "" && $board_config['allow_avatar_upload'] )
{
if(file_exists($user_avatar_loc) && ereg(".jpg$|.gif$|.png$", $user_avatar_name))
{
@ -704,10 +717,10 @@ if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
//
// 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];
preg_match("'image\/[x\-]*([a-z]+)'", $user_avatar_filetype, $user_avatar_filetype);
$user_avatar_filetype = $user_avatar_filetype[1];
switch($user_avatar_type)
switch($user_avatar_filetype)
{
case "jpeg":
case "pjpeg":
@ -745,7 +758,7 @@ if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
}
@copy($user_avatar_loc, "./" . $board_config['avatar_path'] . "/$avatar_filename");
$avatar_sql = ", user_avatar = '$avatar_filename'";
$avatar_sql = ", user_avatar = '$avatar_filename', user_avatar_type = " . USER_AVATAR_UPLOAD;
}
else
{
@ -766,11 +779,8 @@ if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
$error = true;
$error_msg = (!empty($error_msg)) ? $error_msg . "<br />" . $lang['Avatar_filetype'] : $lang['Avatar_filetype'];
}
} // if ... allow_avatar_upload
}
else if(!empty($user_avatar_url))
{
if($board_config['allow_avatar_upload'])
else if( !empty($user_avatar_url) && $board_config['allow_avatar_upload'] )
{
//
// First check what port we should connect
@ -854,7 +864,7 @@ if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
@copy($tmp_filename, "./" . $board_config['avatar_path'] . "/$avatar_filename");
@unlink($tmp_filename);
$avatar_sql = ", user_avatar = '$avatar_filename'";
$avatar_sql = ", user_avatar = '$avatar_filename', user_avatar_type = " . USER_AVATAR_UPLOAD;
}
else
{
@ -899,7 +909,6 @@ if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
$error = true;
$error_msg = (!empty($error_msg)) ? $error_msg . "<br />" . $lang['Incomplete_URL'] : $lang['Incomplete_URL'];
}
} // if ... allow_avatar_upload
}
else if( !empty($user_avatar_name) )
{
@ -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,12 +1216,159 @@ 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($HTTP_POST_VARS['avatargallery']) )
{
if($mode == "editprofile")
{
if( $user_id != $userdata['user_id'] )
{
$error = TRUE;
$error_msg = $lang['Wrong_Profile'];
}
}
if( !$error )
{
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
$template->set_filenames(array(
"body" => "profile_avatar_gallery.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");
$dir = @opendir($board_config['avatar_gallery_path']);
$avatar_images = array();
while( $file = @readdir($dir) )
{
if( @filetype($file) == "dir" && !preg_match("/\.\.|\./", $file) )
{
$sub_dir = @opendir($board_config['avatar_gallery_path'] . "/" . $file);
$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;
$avatar_col_count++;
if( $avatar_col_count == 5 )
{
$avatar_row_count++;
$avatar_col_count = 0;
}
}
}
}
else
{
}
}
@closedir($dir);
if( isset($HTTP_POST_VARS['avatarcategory']) )
{
$category = $HTTP_POST_VARS['avatarcategory'];
}
else
{
list($category, ) = each($avatar_images);
}
@reset($avatar_images);
$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>';
}
}
$s_colspan = 0;
for($i = 0; $i < count($avatar_images[$category]); $i++)
{
$template->assign_block_vars("avatar_row", array());
$s_colspan = max($s_colspan, count($avatar_images[$category][$i]));
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])
);
$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
{
if( !isset($coppa) )
{
$coppa = FALSE;
@ -1221,9 +1385,20 @@ if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
$signature = preg_replace("/\:[0-9a-z\:]*?\]/si", "]", $signature);
if($user_avatar != "")
if( $user_avatar_type )
{
$avatar_img = (eregi("^http", $user_avatar) && $board_config['allow_avatar_remote']) ? "<img src=\"" . $user_avatar . "\">" : "<img src=\"" . $board_config['avatar_path'] . "/" . $user_avatar . "\" alt=\"\" />";
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;
}
}
else
{
@ -1241,6 +1416,11 @@ if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
$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 )
@ -1348,7 +1528,7 @@ if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
"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_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'],
@ -1401,6 +1581,7 @@ if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
}
}
}
$template->pparse("body");

View file

@ -123,6 +123,10 @@
<td class="row1">Avatar Storage Path <br /><span class="gensmall">Path under your phpBB root dir, e.g. images/avatars</span></td>
<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>

View file

@ -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 -->

View file

@ -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>

View file

@ -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
{