Goed aangezien er op phpbb.com en hier nauwelijks gereageerd wordt ben ik zelf maar aan de slag gegaan. Ik ben nu zo ver dat de avatars worden weergegeven in de galerij en dat de avatars in de galerij zonder subdir opgeslagen kunnen worden. Nu is het alleen nog zo dat de avatars die wel in een subdir zitten niet goed worden opgeslagen.
Dit komt omdat de subdirs niet worden opgeslagen, je krijg dan dit:
http://www.lastalliance.nl/forum/images ... ollum4.gif
terwijl je dit moet hebben
http://www.lastalliance.nl/forum/images ... /[u]Gollem[/u]/Gollum4.gif
De gewone dir (
http://www.lastalliance.nl/forum/images ... [u]Hobbits[/u]/Gollem/Gollum4.gif) wordt opgeslagen met deze code:
Code: Selecteer alles
$s_hidden_fields = '<input type="hidden" name="mode" value="edit" /><input type="hidden" name="agreed" value="true" /><input type="hidden" name="coppa" value="' . $coppa . '" />[u]<input type="hidden" name="avatarcatname" value="' . $category . '" />[/u]';
Ik weet alleen niet hoe ik het met de subdir moet doen.
Dit zijn de aangepaste codes:
admin_users.php
Code: Selecteer alles
$dir = @opendir('../' . $board_config['avatar_gallery_path']);
while( $file = @readdir($dir) )
{
if( $file != '.' && $file != '..' && !is_file('../' . $board_config['avatar_gallery_path'] . '/' . $file) && !is_link('../' . $board_config['avatar_gallery_path'] . '/' . $file) )
{
$avatar_row_count = 0;
$avatar_col_count = 0;
$sub_dir = @opendir('../' . $board_config['avatar_gallery_path'] . '/' . $file);
while( $sub_file = @readdir($sub_dir) )
{
if( $sub_file != '.' && $sub_file != '..' && !is_link('../' . $board_config['avatar_gallery_path'] . '/' . $file . '/' . $sub_file) )
{
if( !is_file('../' . $board_config['avatar_gallery_path'] . '/' . $file . '/' . $sub_file) )
{
$avatar_row_count_sub = 0;
$avatar_col_count_sub = 0;
$sub_sub_dir = @opendir('../' . $board_config['avatar_gallery_path'] . '/' . $file . '/' . $sub_file);
while( $sub_sub_file = @readdir($sub_sub_dir) )
{
if( preg_match('/(\.gif$|\.png$|\.jpg|\.jpeg)$/is', $sub_sub_file) )
{
$avatar_images[$file][ucfirst(str_replace("_", " ", preg_replace('/^(.*)\..*$/', '\1', "{$sub_file}:")))][$avatar_row_count_sub][$avatar_col_count_sub] = $sub_file . '/' . $sub_sub_file;
$avatar_name[$file][ucfirst(str_replace("_", " ", preg_replace('/^(.*)\..*$/', '\1', "{$sub_file}:")))][$avatar_row_count_sub][$avatar_col_count_sub] = ucfirst(str_replace("_", " ", preg_replace('/^(.*)\..*$/', '\1', $sub_sub_file)));
$avatar_col_count_sub++;
if( $avatar_col_count_sub == 5 )
{
$avatar_row_count_sub++;
$avatar_col_count_sub = 0;
}
}
}
@closedir($sub_sub_dir);
}
else if( preg_match('/(\.gif$|\.png$|\.jpg|\.jpeg)$/is', $sub_file) )
{
$avatar_images[$file][' '][$avatar_row_count][$avatar_col_count] = $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 == 5 )
{
$avatar_row_count++;
$avatar_col_count = 0;
}
}
}
}
}
}
@closedir($dir);
@ksort($avatar_images);
@reset($avatar_images);
if( isset($HTTP_POST_VARS['avatarcategory']) )
{
$category = htmlspecialchars($HTTP_POST_VARS['avatarcategory']);
}
else
{
list($category, ) = each($avatar_images);
}
@reset($avatar_images);
// Remove image set in root folder and move to end of array
if( count($avatar_images[$category][' ']) )
{
$tmp = $avatar_images[$category][' '];
unset($avatar_images[$category][' ']);
$avatar_images[$category][' '] = $tmp;
}
$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>';
}
}
while( list($sub_category) = each($avatar_images[$category]))
{
for( $i = 0; $i < count($avatar_images[$category][$sub_category]); $i++ )
{
$s_colspan = max($s_colspan, count($avatar_images[$category][$sub_category][$i]));
}
}
reset($avatar_images[$category]);
while( list($sub_category) = each($avatar_images[$category]))
{
$template->assign_block_vars("avatar_sub_category", array(
"CATEGORY_NAME" => $sub_category)
);
if( (count($avatar_images[$category]) - 1) )
{
$template->assign_block_vars('avatar_sub_category.switch_avatar_sub_category_heading', array());
}
for( $i = 0; $i < count($avatar_images[$category][$sub_category]); $i++ )
{
$template->assign_block_vars("avatar_sub_category.avatar_row", array());
if( (count($avatar_images[$category][$sub_category][$i]) % $s_colspan) != 0 )
{
$template->assign_block_vars('avatar_sub_category.avatar_row.switch_remainder_column', array(
"REMAINDER_COLSPAN" => ($s_colspan - (count($avatar_images[$category][$sub_category][$i]) % $s_colspan)))
);
}
for( $j = 0; $j < count($avatar_images[$category][$sub_category][$i]); $j++ )
{
$avatar_id = '';
for( $n = 0; $n < strlen($avatar_images[$category][$sub_category][$i][$j]); $n++ )
{
$avatar_id .= ord(substr($avatar_images[$category][$sub_category][$i][$j], $n, 1));
}
$template->assign_block_vars('avatar_sub_category.avatar_row.avatar_column', array(
"AVATAR_ID" => $avatar_id,
"AVATAR_IMAGE" => '../' . $board_config['avatar_gallery_path'] . '/' . $category . '/' . $avatar_images[$category][$sub_category][$i][$j],
"AVATAR_NAME" => $avatar_name[$category][$sub_category][$i][$j])
);
$template->assign_block_vars('avatar_sub_category.avatar_row.avatar_option_column', array(
"AVATAR_ID" => $avatar_id,
"S_OPTIONS_AVATAR" => $avatar_images[$category][$sub_category][$i][$j])
);
}
}
}
usercp_avatar.php
Code: Selecteer alles
function display_avatar_gallery($mode, &$category, &$user_id, &$email, &$current_email, &$coppa, &$username, &$email, &$new_password, &$cur_password, &$password_confirm, &$icq, &$aim, &$msn, &$yim, &$website, &$location, &$occupation, &$interests, &$signature, &$viewemail, &$notifypm, &$popup_pm, &$notifyreply, &$attachsig, &$allowhtml, &$allowbbcode, &$allowsmilies, &$hideonline, &$style, &$language, &$timezone, &$rankset, &$dateformat, &$session_id, &$birthday)
{
global $board_config, $db, $template, $lang, $images, $theme;
global $phpbb_root_path, $phpEx;
$dir = @opendir($board_config['avatar_gallery_path']);
$avatar_images = array();
while( $file = @readdir($dir) )
{
if( $file != '.' && $file != '..' && !is_file($board_config['avatar_gallery_path'] . '/' . $file) && !is_link($board_config['avatar_gallery_path'] . '/' . $file) )
{
$avatar_row_count = 0;
$avatar_col_count = 0;
$sub_dir = @opendir($board_config['avatar_gallery_path'] . '/' . $file);
while( $sub_file = @readdir($sub_dir) )
{
if( $sub_file != '.' && $sub_file != '..' && !is_link($board_config['avatar_gallery_path'] . '/' . $file . '/' . $sub_file) )
{
if( !is_file($board_config['avatar_gallery_path'] . '/' . $file . '/' . $sub_file) )
{
$avatar_row_count_sub = 0;
$avatar_col_count_sub = 0;
$sub_sub_dir = @opendir($board_config['avatar_gallery_path'] . '/' . $file . '/' . $sub_file);
while( $sub_sub_file = @readdir($sub_sub_dir) )
{
if( preg_match('/(\.gif$|\.png$|\.jpg|\.jpeg)$/is', $sub_sub_file) )
{
$avatar_images[$file][ucfirst(str_replace("_", " ", preg_replace('/^(.*)\..*$/', '\1', "{$sub_file}:")))][$avatar_row_count_sub][$avatar_col_count_sub] = $sub_file . '/' . $sub_sub_file;
$avatar_name[$file][ucfirst(str_replace("_", " ", preg_replace('/^(.*)\..*$/', '\1', "{$sub_file}:")))][$avatar_row_count_sub][$avatar_col_count_sub] = ucfirst(str_replace("_", " ", preg_replace('/^(.*)\..*$/', '\1', $sub_sub_file)));
$avatar_col_count_sub++;
if( $avatar_col_count_sub == 5 )
{
$avatar_row_count_sub++;
$avatar_col_count_sub = 0;
}
}
}
@closedir($sub_sub_dir);
}
else if( preg_match('/(\.gif$|\.png$|\.jpg|\.jpeg)$/is', $sub_file) )
{
$avatar_images[$file][' '][$avatar_row_count][$avatar_col_count] = $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 == 5 )
{
$avatar_row_count++;
$avatar_col_count = 0;
}
}
}
}
}
}
@closedir($dir);
@ksort($avatar_images);
@reset($avatar_images);
if( empty($category) || !array_key_exists($category, $avatar_images) )
{
list($category, ) = each($avatar_images);
}
@reset($avatar_images);
// Remove image set in root folder and move to end of array
if( count($avatar_images[$category][' ']) )
{
$tmp = $avatar_images[$category][' '];
unset($avatar_images[$category][' ']);
$avatar_images[$category][' '] = $tmp;
}
$s_categories = '<select name="avatarcategory">';
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_categories .= '</select>';
while( list($sub_category) = @each($avatar_images[$category]))
{
for( $i = 0; $i < count($avatar_images[$category][$sub_category]); $i++ )
{
$s_colspan = max($s_colspan, count($avatar_images[$category][$sub_category][$i]));
}
}
@reset($avatar_images[$category]);
while( list($sub_category) = @each($avatar_images[$category]))
{
$template->assign_block_vars("avatar_sub_category", array(
"CATEGORY_NAME" => $sub_category)
);
if( (count($avatar_images[$category]) - 1) )
{
$template->assign_block_vars('avatar_sub_category.switch_avatar_sub_category_heading', array());
}
for( $i = 0; $i < count($avatar_images[$category][$sub_category]); $i++ )
{
$template->assign_block_vars("avatar_sub_category.avatar_row", array());
if( (count($avatar_images[$category][$sub_category][$i]) % $s_colspan) != 0 )
{
$template->assign_block_vars('avatar_sub_category.avatar_row.switch_remainder_column', array(
"REMAINDER_COLSPAN" => ($s_colspan - (count($avatar_images[$category][$sub_category][$i]) % $s_colspan)))
);
}
for( $j = 0; $j < count($avatar_images[$category][$sub_category][$i]); $j++ )
{
$avatar_id = '';
for( $n = 0; $n < strlen($avatar_images[$category][$sub_category][$i][$j]); $n++ )
{
$avatar_id .= ord(substr($avatar_images[$category][$sub_category][$i][$j], $n, 1));
}
$template->assign_block_vars('avatar_sub_category.avatar_row.avatar_column', array(
"AVATAR_ID" => $avatar_id,
"AVATAR_IMAGE" => $board_config['avatar_gallery_path'] . '/' . $category . '/' . $avatar_images[$category][$sub_category][$i][$j],
"AVATAR_NAME" => $avatar_name[$category][$sub_category][$i][$j])
);
$template->assign_block_vars('avatar_sub_category.avatar_row.avatar_option_column', array(
"AVATAR_ID" => $avatar_id,
"S_OPTIONS_AVATAR" => $avatar_images[$category][$sub_category][$i][$j])
);
}
}
}
$params = array('coppa', 'user_id', 'username', 'email', 'current_email', 'cur_password', 'new_password', 'password_confirm', 'icq', 'aim', 'msn', 'yim', 'website', 'location', 'occupation', 'interests', 'signature', 'viewemail', 'notifypm', 'popup_pm', 'notifyreply', 'attachsig', 'allowhtml', 'allowbbcode', 'allowsmilies', 'hideonline', 'style', 'language', 'timezone', 'rankset', 'dateformat', 'birthday');
$s_hidden_vars = '<input type="hidden" name="sid" value="' . $session_id . '" /><input type="hidden" name="agreed" value="true" /><input type="hidden" name="avatarcatname" value="' . $category . '" />';
for($i = 0; $i < count($params); $i++)
{
$s_hidden_vars .= '<input type="hidden" name="' . $params[$i] . '" value="' . str_replace('"', '"', $$params[$i]) . '" />';
}
$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_CATEGORY_SELECT' => $s_categories,
'S_COLSPAN' => $s_colspan,
'S_PROFILE_ACTION' => append_sid("profile.$phpEx?mode=$mode"),
'S_HIDDEN_FIELDS' => $s_hidden_vars)
);
return;
}