diff options
-rw-r--r-- | phpBB/admin/admin_board.php | 1 | ||||
-rw-r--r-- | phpBB/admin/admin_users.php | 142 | ||||
-rw-r--r-- | phpBB/db/mssql_schema.sql | 6 | ||||
-rw-r--r-- | phpBB/db/mysql_schema.sql | 1 | ||||
-rw-r--r-- | phpBB/db/postgres_schema.sql | 3 | ||||
-rw-r--r-- | phpBB/develop/convert_avatars.php | 51 | ||||
-rw-r--r-- | phpBB/includes/constants.php | 7 | ||||
-rw-r--r-- | phpBB/language/lang_english/lang_main.php | 7 | ||||
-rw-r--r-- | phpBB/profile.php | 843 | ||||
-rw-r--r-- | phpBB/templates/subSilver/admin/admin_config_body.tpl | 4 | ||||
-rw-r--r-- | phpBB/templates/subSilver/profile_add_body.tpl | 5 | ||||
-rw-r--r-- | phpBB/templates/subSilver/profile_avatar_gallery.tpl | 37 | ||||
-rw-r--r-- | phpBB/viewtopic.php | 17 |
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 = " "; + $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} {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}: <select name="avatarcategory">{S_OPTIONS_CATEGORIES}</select> <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" /> + + <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 { |