Николай Ланец
23 авг. 2013 г., 17:25

modAvatar for MODX Revolution. Обновляем фото пользователя через админку

Сегодня в одном своем проекте решил пользователю через админку назначить фотку, так, без задней мысли. Полез редактировать пользователя — а там такого нет O_o. Полез в базу данных — колонка photo в таблице user_attributes имеется. Обратно лезу в редактор — нет нифига… А оказалось, что этого механизма в принципе не предусмотрено. Странно, ну да ладно. Сел вот написал небольшой пакетик-плагин. Теперь можно:-)
?
Исходник пакета здесь: github.com/Fi1osof/modAvatar Советую всем скачать и и изучить внимательно. Там конечно местами бордак в коде. но в целом пакет не большой, не должны заблудиться.
Красота компонента в том, что происходит расширение админки без какого-либо вмешательства в исходный код. Даже контроллеры не переопределяются. Это чистый ExtJS.
Кстати, забыл сказать о механизме работы. В целом все очень и очень стандартно. Если фото были раньше чем-то назначены, то компонент их покажет в редакторе профиля, так как нет велосипеда. Колонка photo — стандартная. Туда все и пишется. В дальнейшем можно легко получить значение через API
$photo = $modx->getObject('modUser', $id) -> getOne('modUserProfile', 'Profile') ->get('photo');
Fi1osof Спасибо за чудесный плагин, все работает супер, но подскажите, как его можно использовать для обновления фото пользователя через фронтнд? Со сниппетом UpdateProfile? как бы его использовать через postHooks или pretHooks? Куда копать?
Напишите свой сниппет и стандартную HTML-форму. Все, что вам нужно — это обновить профиль пользователя.
$profile = $modx->getObject('modUser', $id); $profile->set('photo', $photo); $profile->save();
Это вещи настолько тривиальные, что тут даже готовое решение не обязательно искать.
Спасибо за отличную плюшку, но есть ли возможность ещё чуть чуть её доработать для бэкэнда? Добавить к мёду ложку, так сказать)) Я имею ввиду — добавить выбор фотки не только на странице «Update User», но и на странице «Edit Account», чтобы все, кто имеет права на редактирование своего профиля мог менять свой аватар самостоятельно без дополнительных форм и сниппетов. Если такая возможность есть — подскажите пожалуйста как это можно сделать.
Сорри, нет времени на это. Вряд ли появится в обозримом будущем. Да и нечего в админке делать всем подряд.

Добавить комментарий