Как сделать загрузку аватара на php
Выводим аватар пользователя на страницу с применением стиля изображения.
Как вы понимаете, сегодня будем решать довольно тривиальную задачу, которая в последнее время становится все более актуальной, а именно будем выводить аватар пользователя (поле из профиля пользователя) на страницу сайта (шаблон page.tpl.php). По умолчанию, drupal предоставляет при регистрации загружать аватар и выбрать для него «стиль изображения», но на этом все его настройки и заканчиваются, а что делать если нам необходимо в профиле пользователя показать допустим изображение с размерами 200px на 200px, а на странице сайта допустим 30px на 30px? Естественно есть ряд решений:
то можно обойтись и без региона, но данное средство не является универсальным, хотя бы потому, что вдруг вы решите выложить свой шаблон на drupal.org – то всё ваше решение с views сойдёт на нет.
Всё хватит рассуждений, теперь расскажу какое решение я использую в своих проектах для решения этой задачи. Сначала определимся с исходными данными, у нас загружен аватар и пропускается по умолчанию через указанный стиль изображения (medium). В моём случае это выглядит вот так:
Так же у меня уже загружен аватар,
И есть стиль изображения, который мы будем использовать при выводе аватара пользователя на страницу:
Как вы можете заметить, название нашего стиля – ava_user_page.
С исходными данными определились, теперь займёмся выводом. В качестве подопытного шаблона я использую стандартный шаблон Bartik. Открываем файл
И используем следующий код, в том месте где вам необходимо вывести аватар, я его выведу в шапке сайта:
В результате чего мы получим вот такую картину:
Всё бы хорошо, но есть костыль, для анонимов мы получим ошибку, исправим эту проблему, просто допишем проверку на залогиность пользователя:
В результате для зарегистрированного пользователя у нас будет выводится его аватар, а для анонимного ничего. Теперь возникает другая проблема, ели аватар для зарегистрированного пользователя не загружен, то появится ошибка, давайте теперь и ее исправим. Для каждого загруженного изображения есть свой числовой id, соответственно если id нет (т.е возвращает FALSE), это значит и изображения нет, допишем и эту проверку
В результате такого небольшого сниппета, мы получили именно ту функциональность, которая была нам необходимо. Теперь для зарегистрированного пользователя который загрузил аватар у нас будет выводится его аватар на страницу с пропуском через указанный стиль изображения, а для пользователей которые зарегистрированы и не загрузили свой аватар, а так же для анонимных пользователей мы показывать ничего не будем. На этом думаю всё.