mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 06:08:52 +00:00
Fix bug #46785 - Hide avatars if type disabled and give global option to turn on/off
Authorised by: acydburn git-svn-id: file:///svn/phpbb/branches/phpBB-3_0_0@9632 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
parent
6e884de000
commit
d85a5ad036
10 changed files with 63 additions and 6 deletions
|
@ -131,6 +131,7 @@
|
||||||
<li>[Change] Smilies no longer require the f_bbcode permission. (Bug #26545)</li>
|
<li>[Change] Smilies no longer require the f_bbcode permission. (Bug #26545)</li>
|
||||||
<li>[Change] Ability to define column split in FAQ/BBCode help (Bug #31405)</li>
|
<li>[Change] Ability to define column split in FAQ/BBCode help (Bug #31405)</li>
|
||||||
<li>[Change] Changed behaviour of group_create() function to support specifying additional group columns</li>
|
<li>[Change] Changed behaviour of group_create() function to support specifying additional group columns</li>
|
||||||
|
<li>[Change] Hide avatar when avatar-type is not allowed (Bug #46785 - Patch by cYbercOsmOnauT and nickvergessen)</li>
|
||||||
<li>[Feature] Add confirmation for deactivating styles (Bug #14304 - Patch by leviatan21)</li>
|
<li>[Feature] Add confirmation for deactivating styles (Bug #14304 - Patch by leviatan21)</li>
|
||||||
<li>[Feature] Backported 3.2 captcha plugins.</li>
|
<li>[Feature] Backported 3.2 captcha plugins.</li>
|
||||||
<li>[Feature] Introduced new ACM plugins:
|
<li>[Feature] Introduced new ACM plugins:
|
||||||
|
@ -144,6 +145,7 @@
|
||||||
</li>
|
</li>
|
||||||
<li>[Feature] ATOM Feeds (Idea and diversed from RSS Feed 2.0 MOD (Version 1.0.8/9) by leviatan21)</li>
|
<li>[Feature] ATOM Feeds (Idea and diversed from RSS Feed 2.0 MOD (Version 1.0.8/9) by leviatan21)</li>
|
||||||
<li>[Feature] New groups option to excempt group leaders from group permissions</li>
|
<li>[Feature] New groups option to excempt group leaders from group permissions</li>
|
||||||
|
<li>[Feature] Add new option to disable avatars board-wide (Bug #46785 - Patch by cYbercOsmOnauT and nickvergessen)</li>
|
||||||
</ul>
|
</ul>
|
||||||
<a name="v304"></a><h3>1.ii. Changes since 3.0.4</h3>
|
<a name="v304"></a><h3>1.ii. Changes since 3.0.4</h3>
|
||||||
|
|
||||||
|
|
|
@ -112,6 +112,7 @@ class acp_board
|
||||||
'avatar_max_width' => array('lang' => 'MAX_AVATAR_SIZE', 'validate' => 'int:0', 'type' => false, 'method' => false, 'explain' => false,),
|
'avatar_max_width' => array('lang' => 'MAX_AVATAR_SIZE', 'validate' => 'int:0', 'type' => false, 'method' => false, 'explain' => false,),
|
||||||
'avatar_max_height' => array('lang' => 'MAX_AVATAR_SIZE', 'validate' => 'int:0', 'type' => false, 'method' => false, 'explain' => false,),
|
'avatar_max_height' => array('lang' => 'MAX_AVATAR_SIZE', 'validate' => 'int:0', 'type' => false, 'method' => false, 'explain' => false,),
|
||||||
|
|
||||||
|
'allow_avatar' => array('lang' => 'ALLOW_AVATARS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
||||||
'allow_avatar_local' => array('lang' => 'ALLOW_LOCAL', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
'allow_avatar_local' => array('lang' => 'ALLOW_LOCAL', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
||||||
'allow_avatar_remote' => array('lang' => 'ALLOW_REMOTE', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
'allow_avatar_remote' => array('lang' => 'ALLOW_REMOTE', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
||||||
'allow_avatar_upload' => array('lang' => 'ALLOW_UPLOAD', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
'allow_avatar_upload' => array('lang' => 'ALLOW_UPLOAD', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
||||||
|
|
|
@ -1429,8 +1429,19 @@ class acp_users
|
||||||
$error = preg_replace('#^([A-Z_]+)$#e', "(!empty(\$user->lang['\\1'])) ? \$user->lang['\\1'] : '\\1'", $error);
|
$error = preg_replace('#^([A-Z_]+)$#e', "(!empty(\$user->lang['\\1'])) ? \$user->lang['\\1'] : '\\1'", $error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!$config['allow_avatar'] && $user_row['user_avatar_type'])
|
||||||
|
{
|
||||||
|
$error[] = $user->lang['USER_AVATAR_NOT_ALLOWED'];
|
||||||
|
}
|
||||||
|
else if ((($user_row['user_avatar_type'] == AVATAR_UPLOAD) && !$config['allow_avatar_upload']) ||
|
||||||
|
(($user_row['user_avatar_type'] == AVATAR_REMOTE) && !$config['allow_avatar_remote']) ||
|
||||||
|
(($user_row['user_avatar_type'] == AVATAR_GALLERY) && !$config['allow_avatar_local']))
|
||||||
|
{
|
||||||
|
$error[] = $user->lang['USER_AVATAR_TYPE_NOT_ALLOWED'];
|
||||||
|
}
|
||||||
|
|
||||||
// Generate users avatar
|
// Generate users avatar
|
||||||
$avatar_img = ($user_row['user_avatar']) ? get_user_avatar($user_row['user_avatar'], $user_row['user_avatar_type'], $user_row['user_avatar_width'], $user_row['user_avatar_height']) : '<img src="' . $phpbb_admin_path . 'images/no_avatar.gif" alt="" />';
|
$avatar_img = ($user_row['user_avatar']) ? get_user_avatar($user_row['user_avatar'], $user_row['user_avatar_type'], $user_row['user_avatar_width'], $user_row['user_avatar_height'], 'USER_AVATAR', true) : '<img src="' . $phpbb_admin_path . 'images/no_avatar.gif" alt="" />';
|
||||||
|
|
||||||
$display_gallery = (isset($_POST['display_gallery'])) ? true : false;
|
$display_gallery = (isset($_POST['display_gallery'])) ? true : false;
|
||||||
$avatar_select = basename(request_var('avatar_select', ''));
|
$avatar_select = basename(request_var('avatar_select', ''));
|
||||||
|
|
|
@ -1200,14 +1200,15 @@ function get_user_rank($user_rank, $user_posts, &$rank_title, &$rank_img, &$rank
|
||||||
* @param string $avatar_width Width of users avatar
|
* @param string $avatar_width Width of users avatar
|
||||||
* @param string $avatar_height Height of users avatar
|
* @param string $avatar_height Height of users avatar
|
||||||
* @param string $alt Optional language string for alt tag within image, can be a language key or text
|
* @param string $alt Optional language string for alt tag within image, can be a language key or text
|
||||||
|
* @param bool $ignore_config Ignores the config-setting, to be still able to view the avatar in the UCP
|
||||||
*
|
*
|
||||||
* @return string Avatar image
|
* @return string Avatar image
|
||||||
*/
|
*/
|
||||||
function get_user_avatar($avatar, $avatar_type, $avatar_width, $avatar_height, $alt = 'USER_AVATAR')
|
function get_user_avatar($avatar, $avatar_type, $avatar_width, $avatar_height, $alt = 'USER_AVATAR', $ignore_config = false)
|
||||||
{
|
{
|
||||||
global $user, $config, $phpbb_root_path, $phpEx;
|
global $user, $config, $phpbb_root_path, $phpEx;
|
||||||
|
|
||||||
if (empty($avatar) || !$avatar_type)
|
if (empty($avatar) || !$avatar_type || (!$config['allow_avatar'] && !$ignore_config))
|
||||||
{
|
{
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
@ -1217,12 +1218,27 @@ function get_user_avatar($avatar, $avatar_type, $avatar_width, $avatar_height, $
|
||||||
switch ($avatar_type)
|
switch ($avatar_type)
|
||||||
{
|
{
|
||||||
case AVATAR_UPLOAD:
|
case AVATAR_UPLOAD:
|
||||||
|
if (!$config['allow_avatar_upload'] && !$ignore_config)
|
||||||
|
{
|
||||||
|
return '';
|
||||||
|
}
|
||||||
$avatar_img = $phpbb_root_path . "download/file.$phpEx?avatar=";
|
$avatar_img = $phpbb_root_path . "download/file.$phpEx?avatar=";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AVATAR_GALLERY:
|
case AVATAR_GALLERY:
|
||||||
|
if (!$config['allow_avatar_local'] && !$ignore_config)
|
||||||
|
{
|
||||||
|
return '';
|
||||||
|
}
|
||||||
$avatar_img = $phpbb_root_path . $config['avatar_gallery_path'] . '/';
|
$avatar_img = $phpbb_root_path . $config['avatar_gallery_path'] . '/';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case AVATAR_REMOTE:
|
||||||
|
if (!$config['allow_avatar_remote'] && !$ignore_config)
|
||||||
|
{
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
$avatar_img .= $avatar;
|
$avatar_img .= $avatar;
|
||||||
|
|
|
@ -578,9 +578,20 @@ class ucp_profile
|
||||||
$error = preg_replace('#^([A-Z_]+)$#e', "(!empty(\$user->lang['\\1'])) ? \$user->lang['\\1'] : '\\1'", $error);
|
$error = preg_replace('#^([A-Z_]+)$#e', "(!empty(\$user->lang['\\1'])) ? \$user->lang['\\1'] : '\\1'", $error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!$config['allow_avatar'] && $user->data['user_avatar_type'])
|
||||||
|
{
|
||||||
|
$error[] = $user->lang['AVATAR_NOT_ALLOWED'];
|
||||||
|
}
|
||||||
|
else if ((($user->data['user_avatar_type'] == AVATAR_UPLOAD) && !$config['allow_avatar_upload']) ||
|
||||||
|
(($user->data['user_avatar_type'] == AVATAR_REMOTE) && !$config['allow_avatar_remote']) ||
|
||||||
|
(($user->data['user_avatar_type'] == AVATAR_GALLERY) && !$config['allow_avatar_local']))
|
||||||
|
{
|
||||||
|
$error[] = $user->lang['AVATAR_TYPE_NOT_ALLOWED'];
|
||||||
|
}
|
||||||
|
|
||||||
$template->assign_vars(array(
|
$template->assign_vars(array(
|
||||||
'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '',
|
'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '',
|
||||||
'AVATAR' => get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height']),
|
'AVATAR' => get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height'], 'USER_AVATAR', true),
|
||||||
'AVATAR_SIZE' => $config['avatar_filesize'],
|
'AVATAR_SIZE' => $config['avatar_filesize'],
|
||||||
|
|
||||||
'U_GALLERY' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=profile&mode=avatar&display_gallery=1'),
|
'U_GALLERY' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=profile&mode=avatar&display_gallery=1'),
|
||||||
|
@ -590,11 +601,11 @@ class ucp_profile
|
||||||
'L_AVATAR_EXPLAIN' => sprintf($user->lang['AVATAR_EXPLAIN'], $config['avatar_max_width'], $config['avatar_max_height'], $config['avatar_filesize'] / 1024),
|
'L_AVATAR_EXPLAIN' => sprintf($user->lang['AVATAR_EXPLAIN'], $config['avatar_max_width'], $config['avatar_max_height'], $config['avatar_filesize'] / 1024),
|
||||||
));
|
));
|
||||||
|
|
||||||
if ($display_gallery && $auth->acl_get('u_chgavatar') && $config['allow_avatar_local'])
|
if ($config['allow_avatar'] && $display_gallery && $auth->acl_get('u_chgavatar') && $config['allow_avatar_local'])
|
||||||
{
|
{
|
||||||
avatar_gallery($category, $avatar_select, 4);
|
avatar_gallery($category, $avatar_select, 4);
|
||||||
}
|
}
|
||||||
else
|
else if ($config['allow_avatar'])
|
||||||
{
|
{
|
||||||
$avatars_enabled = ($can_upload || ($auth->acl_get('u_chgavatar') && ($config['allow_avatar_local'] || $config['allow_avatar_remote']))) ? true : false;
|
$avatars_enabled = ($can_upload || ($auth->acl_get('u_chgavatar') && ($config['allow_avatar_local'] || $config['allow_avatar_remote']))) ? true : false;
|
||||||
|
|
||||||
|
|
|
@ -1115,6 +1115,15 @@ function change_database_data(&$no_updates, $version)
|
||||||
|
|
||||||
$_module->remove_cache_file();
|
$_module->remove_cache_file();
|
||||||
|
|
||||||
|
if ($config['allow_avatar_upload'] || $config['allow_avatar_local'] || $config['allow_avatar_remote'])
|
||||||
|
{
|
||||||
|
set_config('allow_avatar', '1');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
set_config('allow_avatar', '0');
|
||||||
|
}
|
||||||
|
|
||||||
$no_updates = false;
|
$no_updates = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('active_sessions', '0');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('active_sessions', '0');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('allow_attachments', '1');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('allow_attachments', '1');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('allow_autologin', '1');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('allow_autologin', '1');
|
||||||
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('allow_avatar', '0');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('allow_avatar_local', '0');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('allow_avatar_local', '0');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('allow_avatar_remote', '0');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('allow_avatar_remote', '0');
|
||||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('allow_avatar_upload', '0');
|
INSERT INTO phpbb_config (config_name, config_value) VALUES ('allow_avatar_upload', '0');
|
||||||
|
|
|
@ -87,6 +87,8 @@ $lang = array_merge($lang, array(
|
||||||
$lang = array_merge($lang, array(
|
$lang = array_merge($lang, array(
|
||||||
'ACP_AVATAR_SETTINGS_EXPLAIN' => 'Avatars are generally small, unique images a user can associate with themselves. Depending on the style they are usually displayed below the username when viewing topics. Here you can determine how users can define their avatars. Please note that in order to upload avatars you need to have created the directory you name below and ensure it can be written to by the web server. Please also note that file size limits are only imposed on uploaded avatars, they do not apply to remotely linked images.',
|
'ACP_AVATAR_SETTINGS_EXPLAIN' => 'Avatars are generally small, unique images a user can associate with themselves. Depending on the style they are usually displayed below the username when viewing topics. Here you can determine how users can define their avatars. Please note that in order to upload avatars you need to have created the directory you name below and ensure it can be written to by the web server. Please also note that file size limits are only imposed on uploaded avatars, they do not apply to remotely linked images.',
|
||||||
|
|
||||||
|
'ALLOW_AVATARS' => 'Enable avatars',
|
||||||
|
'ALLOW_AVATARS_EXPLAIN' => 'Allow general usage of avatars',
|
||||||
'ALLOW_LOCAL' => 'Enable gallery avatars',
|
'ALLOW_LOCAL' => 'Enable gallery avatars',
|
||||||
'ALLOW_REMOTE' => 'Enable remote avatars',
|
'ALLOW_REMOTE' => 'Enable remote avatars',
|
||||||
'ALLOW_REMOTE_EXPLAIN' => 'Avatars linked to from another website.',
|
'ALLOW_REMOTE_EXPLAIN' => 'Avatars linked to from another website.',
|
||||||
|
|
|
@ -109,7 +109,9 @@ $lang = array_merge($lang, array(
|
||||||
'USER_ADMIN_MOVE_POSTS' => 'Move all posts',
|
'USER_ADMIN_MOVE_POSTS' => 'Move all posts',
|
||||||
'USER_ADMIN_SIG_REMOVED' => 'Successfully removed signature from user account.',
|
'USER_ADMIN_SIG_REMOVED' => 'Successfully removed signature from user account.',
|
||||||
'USER_ATTACHMENTS_REMOVED' => 'Successfully removed all attachments made by this user.',
|
'USER_ATTACHMENTS_REMOVED' => 'Successfully removed all attachments made by this user.',
|
||||||
|
'USER_AVATAR_NOT_ALLOWED' => 'The avatar cannot be displayed because avatars have been disallowed.',
|
||||||
'USER_AVATAR_UPDATED' => 'Successfully updated user avatars details.',
|
'USER_AVATAR_UPDATED' => 'Successfully updated user avatars details.',
|
||||||
|
'USER_AVATAR_TYPE_NOT_ALLOWED' => 'The current avatar cannot be displayed because its type has been disallowed.',
|
||||||
'USER_CUSTOM_PROFILE_FIELDS' => 'Custom profile fields',
|
'USER_CUSTOM_PROFILE_FIELDS' => 'Custom profile fields',
|
||||||
'USER_DELETED' => 'User deleted successfully.',
|
'USER_DELETED' => 'User deleted successfully.',
|
||||||
'USER_GROUP_ADD' => 'Add user to group',
|
'USER_GROUP_ADD' => 'Add user to group',
|
||||||
|
|
|
@ -93,7 +93,9 @@ $lang = array_merge($lang, array(
|
||||||
'AVATAR_FEATURES_DISABLED' => 'The avatar functionality is currently disabled.',
|
'AVATAR_FEATURES_DISABLED' => 'The avatar functionality is currently disabled.',
|
||||||
'AVATAR_GALLERY' => 'Local gallery',
|
'AVATAR_GALLERY' => 'Local gallery',
|
||||||
'AVATAR_GENERAL_UPLOAD_ERROR' => 'Could not upload avatar to %s.',
|
'AVATAR_GENERAL_UPLOAD_ERROR' => 'Could not upload avatar to %s.',
|
||||||
|
'AVATAR_NOT_ALLOWED' => 'Your avatar cannot be displayed because avatars have been disallowed.',
|
||||||
'AVATAR_PAGE' => 'Page',
|
'AVATAR_PAGE' => 'Page',
|
||||||
|
'AVATAR_TYPE_NOT_ALLOWED' => 'Your current avatar cannot be displayed because its type has been disallowed.',
|
||||||
|
|
||||||
'BACK_TO_DRAFTS' => 'Back to saved drafts',
|
'BACK_TO_DRAFTS' => 'Back to saved drafts',
|
||||||
'BACK_TO_LOGIN' => 'Back to login screen',
|
'BACK_TO_LOGIN' => 'Back to login screen',
|
||||||
|
|
Loading…
Add table
Reference in a new issue