Админ не может изменить аватар пользователя

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО

собственно, теперь может...

#1 10 июня 2012 в 03:52
Был приятно удивлен тем, что админ не может изменять аватар пользователя. А вдруг кто то загрузит себе красивую похабную картинку с попрно звездой? И че делать, лезть в базу что бы сменить ее на котенка?

Собственно пара строк кода:

в users/frontend.php в условии if ($do=='avatar')

находим

  1. if (!$inUser->id || ($inUser->id && $inUser->id != $id)){ cmsCore::error404(); }
заменяем на

  1. if (!$inUser->id || ($inUser->id && $inUser->id != $id && !$inUser->is_admin)){ cmsCore::error404(); }
в ваша тема оформления/components/com_user_profile.tpl

находим

  1.  
  2. {if $is_admin && !$myprofile}
  3. <tr>
  4. <td><img src="/templates/_default_/images/icons/profile/edit.png" /></td>
  5. <td><a href="/users/{$usr.id}/editprofile.html" title="{$LANG.CONFIG_PROFILE}">{$LANG.CONFIG_PROFILE}</a></td>
  6. </tr>
  7. {/if}
  8.  
  9.  
  10.  
заменяем на

  1.  
  2.  
  3. {if $is_admin && !$myprofile}
  4. <tr>
  5. <td><img src="/templates/_default_/images/icons/profile/edit.png" /></td>
  6. <td><a href="/users/{$usr.id}/editprofile.html" title="{$LANG.CONFIG_PROFILE}">{$LANG.CONFIG_PROFILE}</a></td>
  7. </tr>
  8. <tr>
  9. <td><img src="/templates/_default_/images/icons/profile/avatar.png" /></td>
  10. <td><a href="/users/{$usr.id}/avatar.html" title="{$LANG.SET_AVATAR}">{$LANG.SET_AVATAR}</a></td>
  11. </tr>
  12. {/if}
  13.  
  14.  
Вот и все. Админ теперь может менять аватары других юзверей пользователей. Проверено на Василии и Федоре.

p.s. как насобираю кармы продублирую в блоге.
#2 10 июня 2012 в 04:19

как насобираю кармы

+ в карму от себя отправил smile
#3 10 июня 2012 в 04:22
+1 в карму joke
#4 10 июня 2012 в 13:35
Щас добавлю кармы, столкнулся недавно с этой проблемой)
#5 10 июня 2012 в 13:39
Попробовал у юзера сменить — в ленте вывело что я (админ) изменил аватар)
Это ничего, главное начать в нужном направлении)
#6 10 июня 2012 в 14:52

в ленте вывело что я (админ) изменил аватар)

xxuuu

упс…
да есть такой косяк

там при смене аватара пишется в ленту событие

  1.  
  2.  
  3. cmsActions::log('add_avatar', array(
  4. 'object' => '',
  5. 'object_url' => '',
  6. 'object_id' => $id,
  7. 'target' => '',
  8. 'target_url' => '',
  9. 'description' => '<a href="'.cmsUser::getProfileURL($usr['login']).'" class="act_usr_ava">
  10. <img border="0" src="/images/users/avatars/small/'.$filename.'">
  11. </a>'
  12. )
  13.  
  14.  
и получается берется id пользователя который меняет аватар. Когда меняешь сам себе, то все нормально, а вот другому пользователю, выходит не кошерно.

Надо подумать над этим вопросом.
#7 10 июня 2012 в 15:51
в принципе нашел где можно подсмотреть вариант решения

что то типа

  1.  
  2.  
  3.  
  4. if ($author_id != $user_id){
  5. //регистрируем событие
  6. cmsActions::log('add_avatar', array(
  7.  
  8. ));
  9. } elseif($author_id == $user_id) {
  10. cmsActions::log('add_avatar', array());
  11. }
  12.  
  13.  
осталось подобрать и заполнить что и как брать и куда записывать в таблицу cms_actions_log

далi будЭ…
#8 10 июня 2012 в 16:38
я бы вообще убрал из ленты если админ меняет аватар пользователю, а не сам пользователь. не к чему это, чтоб было написано типо админ меняет пользователю аватар
#9 10 июня 2012 в 16:48
mexanik, Ох приходилось мне ковыряться в БД чтоб поменять аватарку! Спасибо, действительно странно что Админ может с профилем пользователя делать что угодно, а вот аватар сменить — миссия не выполнима.
Мне лично пофиг, что в ленте написано что Админ сменил кому-то аватар, во-первых такие детали вообще не считаю нужным отображать в ленте, (ну кому интересно что пользователи авки меняют?), во-вторых даже если бы показывалось — пущай знают, что если Админ кому то поменял, значит так надо! и рука админа владыка!

жаль не могу вам +10 поставить, но один плюс в карму от меня уже отправлен.
Еще раз спасибо!!! Очень нужная поправка, надеюсь в версии 2.0 разработчики учтут такую деталь.
#10 10 июня 2012 в 16:52
site.ru/5/avatar.html. Вместо "5" может быть id любого юзера.
#11 10 июня 2012 в 17:00

Админ кому то поменял, значит так надо! и рука админа владыка!

Таня
Админ мужчина и все его знают
в ленте выводится надпись Админ изменил аватар и женская фотка crazy
#12 10 июня 2012 в 17:06
Припишите только в components/users/frontend.php то что сказал mexanik. И меняйте аватары по ссылке сайт.ру/user_id/avatar.html. И в ленте ничего не появится😊
#13 10 июня 2012 в 17:10

Админ изменил аватар и женская фотка

xxuuu
Ну мало ли))
а вообще конечно да, не айс.
А нафиг вообще это в ленте выводить? Понимаю новые публикации и фотки интересно а смена авки не столь важна.
#14 10 июня 2012 в 21:12
iLoveNY

site.ru/5/avatar.html. Вместо "5" может быть id любого юзера.

Не понял, ну да, это ссылка на изменение аватара… Где цифра — айди юзера. Если админ по ней переходит, то открывается смена аватара. Если пользователь, и айди пользователя нажавшего на ссылку не совпадает с цифрами в ссылке то ему будет показана 404 страница. Если совпадает страница загрузки аватара.

По поводу вывода в ленту. Выводить или нет можно настроить в самом модуле активности.

А по поводу самой выводимой надписи. Уже почти готово решени. Как доберусь до нормального инета, выложу.

Пока что
если пользователь меняет аватар сам себе — пишет: Федор изменил аватар:

если админ меняет пользователю — пишет:
Админ изменил аватар Федор:

если админ меняет сам себе — пишет:
Админ изменил аватар Админ:

вот с последним косячок...

Как исправлю, что бы писало Админ изменил аватар:
то выложу решение.
#15 10 июня 2012 в 21:27
mexanik, проверил, вы правы, облажался😂
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.