Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

[Конкурс] Аватары - микроFAQ [by Andrew_spb]

"Обсуждение материалов сайта" и "Пожелания и критика" в одном флаконе.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Mr. Anderson
phpBB Guru
phpBB Guru
Сообщения: 7522
Стаж: 20 лет 1 месяц
Откуда: СССР
Благодарил (а): 5 раз
Поблагодарили: 105 раз

[Конкурс] Аватары - микроFAQ [by Andrew_spb]

Сообщение Mr. Anderson »

Аватары
Общие понятия.

Аватары это небольшие картинки, помещаемые с каждым вашим сообщением. Каждый пользователь в праве установить свою собственную картинку. В любом случае, данный процесс полностью контролируется посредством соответствующих изменений настроек в административной панели.

галерея аватар - Вы можете использовать галерею аватар на своем Форуме. Галерея это коллекция картинок собранная на сервере, где установлен ваш Форум.
Чтобы выбрать аватару из галереи, нажмите Показать галерею. Используйте выпадающее меню, которое расположено в верхней части галереи, для перехода
между категориями аватар. Чтобы выбрать себе аватару, достаточно пометить её переключатель (radio button) и нажать Выберите аватару.

Загрузить аватару с URL - Вы можете использовать аватару расположенную на другом сервере. Для этого введите ее URL в пустое поле. Старайтесь выбирать
небольшие картинки, чтобы они не могли повлиять на структуру таблиц Форума или расстроить других посетителей Форума. Администраторы имеют возможность
запрещать отдельным пользователям показывать аватару.

Загрузить аватару с вашего компьютера - Если у вас на компьютере есть изображение, которое вы хотели бы использовать в качестве своей аватары, вы можете
загрузить его на сервер Форума. Для этого нажмите на кнопку Обзор и найдите свою картинку в появившемся окошке. Кроме того, вы можете вручную прописать
путь к этому изображению в свободном поле. Учтите, что на Форуме могут стоять ограничения на размер закачиваемых изображений (вес, ширину, высоту).



Необходимые настройки форумов для загрузки и показа аватар.
Загружаемые аватары

Если вы хотите разрешить загружать посетителям аватары (при условии, что ваш хостинг провайдер обеспечивает вам такую возможность), вам необходимо убедиться
в том, что необходимые директории созданы и на них установлены соответствующие права доступа. Путь к необходимой директории устанавливается посредством
админ панели (Общие настройки -> Конфигурация); папка должна иметь права для записи в нее аватар (a+w, 777). Чтобы создать галерею аватар, вам нужно прописать
правильный путь к папке посредством админ панели (Общие настройки -> Конфигурация), и в подпапках данной директории создавать свои наборы аватар. Не устанавливайте
галерею в корень директории, она не появится! По умолчанию в админ панели прописаны 2 пути: images/avatars - путь к директории аватар, и путь images/avatars/gallery
- к галерее.

Путь к аватарам - Это папка (относительно корневой директории Форума) куда будут закачиваться аватары. Предположим, что страница Списка форумов расположена
по адресу
http://www.cheese.com/phpBB2/index.php,
и вы хотите закачивать аватары в папку, расположенную по адресу
http://www.cheese.com/phpBB2/images/avatars/,
тогда используйте Путь к аватарам images/avatars.

Путь к галерее аватар - Это папка (относительно корневой директории Форума) где расположена галерея аватар вашего Форума. Предположим, что страница Списка
форумов расположена по адресу
http://www.cheese.com/phpBB2/index.php,
и вы хотите, чтобы галерея аватар вашего Форума находилась по адресу
http://www.cheese.com/phpBB2/images/avatars/,
тогда Путь к галерее аватар должен выглядеть как images/avatars/gallery.

Кроме того, в данной папке вы должны создать подпапки, каждая из которых будет относится к определенной категории аватар галереи. Например, у вас есть
аватары сыра - limburger.gif, colby.gif, chedder.gif; и есть аватары различных форм сыра - wheel.gif, cube.gif, log.gif. Вы можете создать для них одну
подпапку Cheese, а можете развести аватары по категориям, или другими словами по подпапкам - Cheese Types и Cheese Shapes. Само собой все подпапки должны
иметь англоязычное название. Если вы загрузите аватары в общую директорию галереи аватар - images/avatars/gallery, аватары будут недоступны, как собственно
и вся галерея аватар.


Настройки аватар

Разрешить аватар из галереи - Вы можете разрешить или запретить использование галерей аватар на вашем форуме.

Разрешить удалённых аватар - Вы можете разрешить или запретить использование удаленных аватар (аватар находящихся на другом сайте в сети Интернет).

Разрешить закачку аватар - Вы можете разрешить или запретить закачивание аватар на ваш сервер.

Макс. размер файла аватары - Вы можете указать максимальный размер(вес) файла аватары, который может быть закачен на ваш сервер. Размер необходимо указывать
в байтах, по умолчанию это 6144 байт (6 kB)

Макс. размер изображения - Вы можете указывать максимальный размер (ширину\высоту) файла аватары, который может быть закачен вам на сервер. Размер необходимо
указывать в пикселях, по умолчанию это 80 x 80.


варианты решения проблемы возникающей при попытке загрузить аватар:

если вы видите следующее сообщение:
Цитата:
Warning: move_uploaded_file(./images/avatars/11829166304594221083fa3.png): failed to open stream: Permission denied

то помните - Права доступа на папку images/avatars должны быть 777

Если вы проделали все вышеизложенные действия, и при попытке загрузить аватар вы получаете ошибку:
Код:
Файл аватары должен быть .jpg, .gif или .png

Возможная причина такого поведения форума - использование на сервере вашего провайдера так называемого "Русского Apache", который по умолчанию перекодирует
все принимаемые данные из множества русских кодировок в одну (обычно windows-1251, как наиболее распространенную в русскоязычном Интернете). Такая конфигурация
избавляет пользователей от большого количества проблем при работе с текстовыми данными, однако порождает проблемы при работе с бинарными файлами.

Нам необходимо отключить перекодировку данных, отправляемых из html-формы в формате multipart/form-data. Для этого создайте в корневом каталоге форума файл
.htaccess следующего содержания:

<IfModule mod_charset.c>
CharsetRecodeMultipartForms off
</IfModule>

Подобный код отключит перекодировку, а значит и искажение данных при загрузке аватар или файлов на сервер. Удобство такого метода решения проблемы в его
переносимости - данные будут обрабатываться правильно вне зависимости от того, включена ли перекодировка или нет.

если с помощью данного метода не получилось решить проблему, читаем далее.
В файле includes/usercp_avatar.php найти:
Код:
case 'jpeg':
case 'pjpeg':
case 'jpg':
return '.jpg';
break;
case 'gif':
return '.gif';
break;
case 'png':
return '.png';
break;

Заменить на:
Код:
case 'jpeg':
case 'image/jpeg': # добавим эту строчку
case 'pjpeg':
case 'image/pjpeg': # добавим эту строчку
case 'jpg':
case 'image/jpg': # добавим эту строчку
return '.jpg';
break;
case 'gif':
case 'image/gif': # добавим эту строчку
return '.gif';
break;
case 'png':
case 'image/png': # добавим эту строчку
return '.png';
break;

далее сохраняем измененный файл и проверяем работоспособность.
естественно слова "добавим эту строчку"- являются комментарием того, что мы добавляли.


решение проблемы с контролем размера загруженных аватар.
В файле includes/usercp_avatar.php находим следующую строку:
Код:
else if ( ( file_exists(@phpbb_realpath($avatar_filename)) )

(она нам нужна только для ориентира)

Смотрим ниже и находим:
Код:
list($width, $height) = @getimagesize($avatar_filename);
}

Делаем из этих двух строк три (копированием):
Код:
list($width, $height) = @getimagesize($avatar_filename);
}
list($width, $height) = @getimagesize($avatar_filename);

Решение проблемы с загрузкой аватар с url.
Для загрузки аватары с URL необходимо создать следующую папку:
/images/avatars/tmp с правами доступа 777.

далее в файле includes/usercp_avatar.php находим следующую строку:
Код:
$tmp_path = ( !@$ini_val('safe_mode') ) ? '/tmp' : './' . $board_config['avatar_path'] . '/tmp';

этой строкой определяется временная папка, куда аватары будут загружаться и откуда скрипт будет их забирать.
Если на вашем форуме она определяется по другому, то необходимо подкорректировать либо эту строку (встречается 2 раза), либо создаваемую папку.


Если вашу проблему не решил не один из вышеприведенных способов, то попробуйте отредактировать
файл (includes/usercp_avatar.php)
Код:
$error_msg = (!empty($error_msg)) ? $error_msg . '<br />' . $lang['Avatar_filetype'] : $lang['Avatar_filetype'];
Заменить на
Код:
$error_msg = (!empty($error_msg)) ? $error_msg . '<br />' . $lang['Avatar_filetype'] : $type;
этой заменой мы решаем вопрос передачи непредусмотренного типа MIME.


Обратите внимание, В случае если пользователь выбирает "Показывать аватару с другого сервера" - аватара отображается, но не контролируются её размеры.
Стандартные средства не контролируют размер аватар расположенных на удаленном сервере. Если вам это необходимо установите любой из
модов по контролю удаленных аватар.
http://phpbbhacks.com/searchresults.php ... &Submit=Go

Помните, что при регистрации пользователь не может сразу установить аватару т.к. это не предусмотрено стандартными средствами, для этого ему после регистрации необходимо войти в профиль и уже там проделать соответствующие действия, но если вам по каким-то причинам все-таки нужна данная функция, то поставьте мод avatar on registration
http://phpbbhacks.com/download/5622

Если ничего из вышеприведенного не решило вашу проблему по загрузке аватар - пишите на форум.

PS:
Оформлние незакончено. Если кто-то сделает - будем благода ;)

Вернуться в «Обсуждаем сайт и конференцию»