Контакты

Мы всегда готовы к встрече, но только по предварительной договоренности.

ул. Чапыгина, д.6-п, оф.19
Санкт-Петербург, Россия
+7 911 933-80-68
Пн.-Пт. 9:00-20:00
info@webevrika.ru
По всем вопросам

UMI-CMS: Загрузка аватарки в профиле пользователя

UMI-CMS: Загрузка аватарки в профиле пользователя

В принципе банальная задача - загрузить аватарку в профиле пользователя. Добавляем поле <input type="file" name="data[% user_id%][avatar]" value="" class="w98" /> в шаблоне /tpls/users/register/default.tpl

Только есть одна маленькая неприятность: если пользователь решил отредактировать любое другое поле, а вышеупомянутое оставил пустым, то после обновления данных старая аватарка стирается.

Возможно есть стандартное решение. В 2.7.4 у пользователя появилось поле userpic - "Загрузить новую аватарку". Правда в моем варианте оно почему-то не работает, поэтому пришлось дописать свой обработчик события.

В модуле users создаем файл custom_events.php

<?php 
new umiEventListener("users_settings_do", "users", "loadAvatar");
?>

Там же в customMacros.php добавляем метод loadAvatar

public function loadAvatar(iUmiEventPoint $oEventPoint) {
$user_id = $oEventPoint->getParam("user_id");

if($oEventPoint->getMode() != "after") {
$user = umiObjectsCollection::getInstance()->getObject($user_id);
$avatar_id = $user->getValue("userpic");
if ($avatar_id) $user->setValue("avatar", $avatar_id);
$user->commit();
}
else return;
}

В шаблоне ставим поле /tpls/users/register/default.tpl <input type="file" name="data[% user_id%][userpic]" value="" class="w98" />

Добавлять комментарии могут только зарегистрированные пользователи.

Если Вы еще не зарегистрированы на сайте, Вы можете зарегистрироваться.

Войти