Fi1osof 23 августа 2013 0 4
Сегодня в одном своем проекте решил пользователю через админку назначить фотку, так, без задней мысли. Полез редактировать пользователя — а там такого нет O_o. Полез в базу данных — колонка photo в таблице user_attributes имеется. Обратно лезу в редактор — нет нифига… А оказалось, что этого механизма в принципе не предусмотрено. Странно, ну да ладно. Сел вот написал небольшой пакетик-плагин. Теперь можно:-)



Исходник пакета здесь: github.com/Fi1osof/modAvatar
Советую всем скачать и и изучить внимательно. Там конечно местами бордак в коде. но в целом пакет не большой, не должны заблудиться.

Красота компонента в том, что происходит расширение админки без какого-либо вмешательства в исходный код. Даже контроллеры не переопределяются. Это чистый ExtJS.

Кстати, забыл сказать о механизме работы. В целом все очень и очень стандартно. Если фото были раньше чем-то назначены, то компонент их покажет в редакторе профиля, так как нет велосипеда. Колонка photo — стандартная. Туда все и пишется.
В дальнейшем можно легко получить значение через API
$photo = $modx->getObject('modUser', $id) -> getOne('modUserProfile', 'Profile') ->get('photo');
4 комментария
w
worksize 18 декабря 2014г в 03:17 #
Fi1osof Спасибо за чудесный плагин, все работает супер, но подскажите, как его можно использовать для обновления фото пользователя через фронтнд? Со сниппетом UpdateProfile? как бы его использовать через postHooks или pretHooks? Куда копать?
Fi1osof1
Fi1osof 18 декабря 2014г в 11:03 #
Напишите свой сниппет и стандартную HTML-форму. Все, что вам нужно — это обновить профиль пользователя.
$profile = $modx->getObject('modUser', $id);
$profile->set('photo', $photo);
$profile->save();

Это вещи настолько тривиальные, что тут даже готовое решение не обязательно искать.
R
Roman 10 июля 2015г в 19:12 #
Спасибо за отличную плюшку, но есть ли возможность ещё чуть чуть её доработать для бэкэнда?
Добавить к мёду ложку, так сказать)) Я имею ввиду — добавить выбор фотки не только на странице «Update User», но и на странице «Edit Account», чтобы все, кто имеет права на редактирование своего профиля мог менять свой аватар самостоятельно без дополнительных форм и сниппетов.
Если такая возможность есть — подскажите пожалуйста как это можно сделать.
Fi1osof1
Fi1osof 11 июля 2015г в 12:19 #
Сорри, нет времени на это. Вряд ли появится в обозримом будущем. Да и нечего в админке делать всем подряд.
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.