Урок - Шаблон user-picture.tpl.php

Главная » Курсы » Курс Drupal 7, Темизация для зайцев. » Урок - Шаблон user-picture.tpl.php

Обучающий онлайн курс
Drupal 7, Темизация для зайцев.

Лицензия: Копирование запрещено.

В файле user-picture.tpl.php задается обертка для аватара пользователя.

Оригинальный файл user-picture.tpl.php находится в ./modules/user/user-picture.tpl.php.

Для начала скопируйте файл ./modules/user/user-picture.tpl.php в директорию нашей темы. Замените содержимое скопированного файла на следующее:

Мая фатахрафия<br>
<?php if ($user_picture): ?>
  <div class="user-picture">
    <?php print $user_picture; ?>
  </div>
<?php endif; ?>

Обновите КЭШ тем. =)

Обратите внимание, что для каждой аватарки добавился текст: "Мая фатахрафия".

 

Переменные шаблона user-picture.tpl.php.

  • $user_picture - это строка, HTML-код, для отображения автарки. Немного отличается в зависимости от общих настроек. Может представлять собой картинку по умолчанию для изображений, или изображение в виде ссылки на страницу пользователя, или отсутствовать.
  • $account - это массив, информация о пользователе, чье изображение выводится. Потенциально не безопасно для прямого вывода. Что бы избежать проблем с выводом информации, разработчики советуют использовать функцию check_plain().

 

далее рассмотрим несколько задач и их решения, которые вы сможете использовать в своей работе.

Задача: Вывод ссылки на загрузку аватарки вместо незагруженного изображения.

Если у пользователя не загружена аватарка необходимо вместо аватарки показывать ссылку на страницу изменения аватарки.

 

Для решения этой задачи необходимо изменить шаблон user-picture.tpl.php c проверкой совпадения авторизованного пользователя и пользователя чья аватарка отображается. Для того, чтобы скрыть ссылку на странице параметров пользователя, также делаем проверку.

<?php if ($user_picture): ?>
  <div class="user-picture">
    <?php print $user_picture; ?>
  </div>
<?php elseif($account->uid == $GLOBALS['user']->uid && request_uri() != '/user/' . $GLOBALS['user']->uid . '/edit'): ?>
  <div class="user-picture">
    <?php echo l(t('Upload picture'), 'user/' . $GLOBALS['user']->uid . '/edit', array('fragment' => 'edit-picture',)); ?>
  </div>
<?php endif; ?>