Roman_S
Junior Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Короче, за основу берём это: http://www.netgimmicks.com/ikonboard.cgi?act=ST;f=16;t=2344;hl=avatar Перевожу на русский: в Sources/Profile.pm вместо Код: open UPLOAD, '>'.$iB::INFO->{'HTML_DIR'}.'/avatars/uploaded_'.$ext or die "Unable to create your new avatar: $!"; | пишем Код: open UPLOAD, '>'.$iB::INFO->{'HTML_DIR'}.'/avatars/upl_'. $iB::MEMBER->{'MEMBER_ID'} . '_'.$ext or die "Unable to create your new avatar: $!"; | в Sources/UserCP/Menu.pm вместо Код: пишем Код: next if /^index/i; my @all = split(/_/, $_); my $prefix = shift(@all); my $prefix2 = shift(@all); unless ($prefix2 eq $iB::MEMBER->{'MEMBER_ID'} or $iB::MEMBER->{'MEMBER_GROUP'} == $iB::INFO->{'SUPAD_GROUP'}) { next if $prefix eq 'upl'; } | Как это работает? Аватарки при загрузке принимают вид upl_{MEMBER_ID}_имя Например: upl_122234-1233_Бабака При отображении все с префиксом upl_ фильтруются на соответствие ID пользователя (суперадмин есс-но видит всё) ------------------------------------- Рюсски бюкф. Т.к. пофигу, как это в итоге выглядеть будет, то символы можно закодировать 16-ричными кодами. Для этого в Sources/Profile.pm перед Код: open UPLOAD, '>'.$iB::INFO->{'HTML_DIR'}.'/avatars/upl_'. $iB::MEMBER->{'MEMBER_ID'} . '_'.$ext or die "Unable to create your new avatar: $!"; | вставить Код: $ext=str2esc(lc((split /\./, $ext)[0])).'.'.lc((split /\./, $ext)[1]); | И в хвост модуля (перед 1: __END__) функцию: Код: sub str2esc { my ($escstr,$escsumb) = @_; $escstr =~ s/(.)/(unpack ("H*",$1))/ge; $escstr =~ s/(..)/$escsumb$1/g; return $escstr; } | теперь Бабака.gif будет: upl_122424-12324_c4a6e8a9ff (ну, не совсем так, но вроде того ) В принципе, мне этого хватит. Ну, а кто хочет, чтоб это красиво выглядело - кодирование можно обратить в Sources/UserCP/Menu.pm. Выделить третий аргумент и... (функции esc2str и str2esc можно найти в этом форуме в разделе веб-программирования) |