diff --git a/phpBB/includes/bbcode.php b/phpBB/includes/bbcode.php
index 601150aed8..3564fc04bf 100644
--- a/phpBB/includes/bbcode.php
+++ b/phpBB/includes/bbcode.php
@@ -96,6 +96,8 @@ class bbcode
//
function bbcode_cache_init()
{
+ global $user;
+
$sql = '';
$bbcode_ids = array();
@@ -173,12 +175,23 @@ class bbcode
);
break;
case 4:
- $this->bbcode_cache[$bbcode_id] = array(
- 'preg' => array(
- '#\[img:$uid\](.*?)\[/img:$uid\]#s' => ''
- )
- );
- break;
+ if ($user->data['user_viewimg'])
+ {
+ $this->bbcode_cache[$bbcode_id] = array(
+ 'preg' => array(
+ '#\[img:$uid\](.*?)\[/img:$uid\]#s' => '
'
+ )
+ );
+ }
+ else
+ {
+ $this->bbcode_cache[$bbcode_id] = array(
+ 'preg' => array(
+ '#\[img:$uid\](.*?)\[/img:$uid\]#s' => '[ img ]'
+ )
+ );
+ }
+ break;
case 5:
$this->bbcode_cache[$bbcode_id] = array(
'preg' => array(
@@ -232,12 +245,23 @@ class bbcode
);
break;
case 11:
- $this->bbcode_cache[$bbcode_id] = array(
- 'preg' => array(
- '#\[flash:$uid\](.*?)\[/flash:$uid\]#' => $this->bbcode_tpl('flash')
- )
- );
- break;
+ if ($user->data['user_viewimages'])
+ {
+ $this->bbcode_cache[$bbcode_id] = array(
+ 'preg' => array(
+ '#\[flash:$uid\](.*?)\[/flash:$uid\]#' => $this->bbcode_tpl('flash')
+ )
+ );
+ }
+ else
+ {
+ $this->bbcode_cache[$bbcode_id] = array(
+ 'preg' => array(
+ '#\[flash:$uid\](.*?)\[/flash:$uid\]#s' => '[ flash ]'
+ )
+ );
+ }
+ break;
default:
if (isset($rowset[$bbcode_id]))
{
diff --git a/phpBB/includes/functions_user.php b/phpBB/includes/functions_user.php
index db518d3918..5806003e5b 100644
--- a/phpBB/includes/functions_user.php
+++ b/phpBB/includes/functions_user.php
@@ -138,7 +138,7 @@ class ucp extends user
case 'string':
// Cleanup data, remove excess spaces, run entites
- $valid_data[$var_name] = htmlentities(strtr(trim(preg_replace('#\s{2,}#s', ' ', (string) $data[$var_name])), array_flip(get_html_translation_table(HTML_ENTITIES))));
+ $valid_data[$var_name] = htmlentities(trim(preg_replace('#\s{2,}#s', ' ', strtr((string) $data[$var_name], array_flip(get_html_translation_table(HTML_ENTITIES))))));
// How should we check this data?
if (!is_array($var_limits))
diff --git a/phpBB/includes/message_parser.php b/phpBB/includes/message_parser.php
index 86547684a8..870aefd870 100644
--- a/phpBB/includes/message_parser.php
+++ b/phpBB/includes/message_parser.php
@@ -553,7 +553,7 @@ echo "
"; $replace = array(); // relative urls for this board - $match[] = '#' . $server_protocol . trim($config['server_name']) . $server_port . preg_replace('/^\/?(.*?)(\/)?$/', '\1', trim($config['script_path'])) . '/([^ \t\n\r <"\']+)#i'; + $match[] = '#(^|[\n ])' . $server_protocol . trim($config['server_name']) . $server_port . preg_replace('/^\/?(.*?)(\/)?$/', '\1', trim($config['script_path'])) . '/([^ \t\n\r <"\']+)#i'; $replace[] = '\1'; // matches a xxxx://aaaaa.bbb.cccc. ... diff --git a/phpBB/includes/ucp/ucp_profile.php b/phpBB/includes/ucp/ucp_profile.php index bfbcf5d076..dfe3e09cf4 100644 --- a/phpBB/includes/ucp/ucp_profile.php +++ b/phpBB/includes/ucp/ucp_profile.php @@ -326,9 +326,81 @@ class ucp_profile extends ucp case 'avatar': + $dir = @opendir($config['avatar_gallery_path']); + + $avatar_images = array(); + while( $file = @readdir($dir) ) + { + if( $file != '.' && $file != '..' && !is_file($config['avatar_gallery_path'] . '/' . $file) && !is_link($config['avatar_gallery_path'] . '/' . $file) ) + { + $sub_dir = @opendir($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|\.jpeg)$#i', $sub_file) ) + { + $avatar_images[$file][$avatar_row_count][$avatar_col_count] = $file . '/' . $sub_file; + $avatar_name[$file][$avatar_row_count][$avatar_col_count] = ucfirst(str_replace("_", " ", preg_replace('/^(.*)\..*$/', '\1', $sub_file))); + + $avatar_col_count++; + if( $avatar_col_count == 4 ) + { + $avatar_row_count++; + $avatar_col_count = 0; + } + } + } + } + } + + @closedir($dir); + + @ksort($avatar_images); + @reset($avatar_images); + + $category = (isset($_POST['avatarcat'])) ? htmlspecialchars($_POST['avatarcat']) : ''; + if( empty($category) ) + { + 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 .= ''; + } + } + + $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" => $config['avatar_gallery_path'] . '/' . $avatar_images[$category][$i][$j], + "AVATAR_NAME" => $avatar_name[$category][$i][$j]) + ); + + $template->assign_block_vars('avatar_row.avatar_option_column', array( + "S_OPTIONS_AVATAR" => $avatar_images[$category][$i][$j]) + ); + } + } + $template->assign_vars(array( 'AVATAR' => '
processing $username