суббота, 11 декабря 2010 г.

Создаем изображение пользователя через imagefield

При создании расширенного профиля пользователя, большинство разработчиков для организации фотоальбома использует связку модулей cck, imagefield,filefield, imagecache. При этом было бы логично использовать в качестве картинки пользователя, которая отображается в комментариях или в материалах пользователя, использовать одно из изображений, которые загрузили пользователи при создании своего профиля. По молчанию в CMS Drupal для этих целей пользователь должен идти в раздел редактирования аккаунта и в отдельном блоке загружать специальное изображение.

Чтобы иметь возможность сделать одно из изображений, загруженных при создании профиля пользователем, изображением userpicture по умолчанию надо в папке темы Вашего сайта создать файл user-picture.tpl.php. И добавить в него следующий код:

<?php
<div class="picture">
<?
php
  $pict
=  $content_profile->get_variable('profile', 'field_userpictures');
  $title =  $content_profile->get_variable('profile', 'title');
  print theme('imagecache','Thumbnail', "user_pictures/".check_plain($account->uid)."/".$pict[0]['filename'], $title, $title);
?>

В этом примере картинки пользователя загружаются в папку user_pictures/uid

В файле content_profile.module модуля “Content profile” на строке 558 надо добавить в функцию название user_picture.tpl.php для того, чтобы обеспечить поддержку данного шаблона:

<?php
function content_profile_theme_registry_alter(&$items) {
  $templates = array_merge(array(
    'author_pane',
    'comment',
    'node',
    'page',
    'search_result',
    'username',
    'user_profile',
    'user_picture',
    'user_signature',
  ), variable_get('content_profile_extra_templates', array()));
?>

Не забудьте очистить кеш в разделе «Производительность». Вот и все.

Оригинал статьи: http://www.startdrupal.com/node/143