СПАСИБО ВСЕМ. ВОПРОС РЕШИЛ. В конце топика есть решение.
Обращаюсь к тем, кто знает работу ВБ изнутри.
Я месяц назад проапгрейдил свой нулеванный VB 3.0.7 на лицензионный VB 3.5.1. С этого сайта взял руссификацию, за что команде этого сайта огромное спасибо. Апгрейдил я форум по следующему алгоритму: залил поверх все файлы и нажал апргейд, всё прошло гладко и не выдало ни одной ошибки, форум криво отображался, но я восстановил все шаблоны на версию 3.5.1 и всё заработало. Через пару недель после апгрейда мне стали поступать жалобы от пользователей, что они не могут прикрепить свой аватар , причем дело не в размерах, весе и расширении файлов. Аватар в принципе заливается и отображается в "Панели управления", но в постах и в админке он не отображается. Я попробывал через админку залить для юзеров аватар - заливается, но не отображается. Причем все юзеры ДО апгрейда могут себе залить аватар. И юзеры ПОСЛЕ апгрейда могут выбрать себе аватар из присутствующих в предлагаемом моим форумом наборе и он отображается.
Аватары у меня хранятся в файловой системе в папке forum/customavatars и для нее и высших папок прописаны права CHMOD 0777.
После всей этой мистики я начала копаться в админке, файловой системе, phpMyAdmin. И вот что мне удалось выяснить.
Я понял, что присвоение своего аватара осуществляется следующим образом: в таблице
user у каждого пользователя в поле avatarrevision записывается код аватара (число, начиная с 1) и в папку forum/customavatars помещается файл с именем avatar[userid]_[avatarrevision].[расширение]. Я зарегился юзером, у него userid = 2230, я залил им аватар и в папке с аватарами появился файл avatar2230_1.gif. В панели управления видно этот аватар, там он вызывается с помощью кода
PHP Code:
<img src="$userinfo[avatarurl]" $userinfo[avatarsize] alt="<phrase 1="$userinfo[username]">$vbphrase[xs_avatar]</phrase>" border="0" style="border:1px solid $stylevar[tborder_bgcolor]; border-top:none" />
, т.е. главный элемент здесь avatarurl - и здесь он работает правильно, видимо потому что вызывается из таблицы userinfo. А в постах аватар вызывается с помощью кода
PHP Code:
<img src="$post[avatarurl]" alt="<phrase 1="$post[username]">$vbphrase[xs_avatar]</phrase>" border="0" />
и здесь avatarurl вызывается из таблицы post. Я отключил условие на показы аватаров и у моего юзера появилась пустая картинка с крестиком и урлом
PHP Code:
http://www.supertrubka.ru/forum/
,т.е. avatarurl просто не сформировался. А должен был выглядеть вот так
PHP Code:
http://supertrubka.ru/forum/customavatars/avatar2230_1.gif
Видимо ошибка в php файле, который формирует этот хренов урл... Я поискал Avsearch... слова avatarurl и avatarrevision есть только в файле forum/admincp/user.php и честно говоря из его кода я нифига не понимаю(((
Продолжая разговор о мистике, скажу, что аватары можно залить! Двумя способами. У меня на форуме 4 админа и один из них МОЖЕТ залить новым юзерам аватар, а все остальные админы (в том числе и я) не могут!
Если в "админке - аватары - Метод хранения аватаров" сначала все аватары перенести в базу, а потом обратно в файловую систему, то пользователи, зарегестрированные ДО этого волшебного действия теперь могут заливать себе аватары, а которые зарегестрировались ПОСЛЕ - НЕ могут. Пока что я говорю юзерам на своем форуме, что каждое воскресенье буду так делать и они смогут себе аватары менять, но до ближайшего воскресенья пусть мучаются.
И еще, я приведу поля двух юзеров. Первый зарегился ДО волшебного действия (с переносом туда-обратно), второй после. У обоих аватары прикреплены и есть в файловой системе, но у второго аватар не отображается.
Я понимаю, что разобраться в этом вопросе не легко, но очень прошу Вас, подскажите, в каком направлении я могу еще копать? Что можно сделать? Может быть эти урлы прописываются еще в какой-нибудь таблице базы и при переносе туда-сюда форум их нормально прописывает, а при регистрации и смене аватара не нормально?