Удаление админом нехороших аватаров пользователей

+10
2.65K
Сейчас пользователь загрузил аватар который, скажем так, не соответствует правилам сайта.
Если в личных фотоальбомах, еще возможно сделать какие-то допущения, например помечая нехорошие изображения специальным статусом и потом на основе этого статуса скрывать изображение из общих списков, то с аватаром все немного иначаче. Он может мелькать где угодно: на форуме, в комментариях, в списках пользователей, поэтому нехороший аватар просто будем удалять.

Ранее здесь предлагались решения на эту тему, загрузка админом пользователю аватара на своё усмотрение, я же просто удаляю аватар, который не соответствует правилам и возвращаю это место к дефолтному состоянию.

Иллюстрация




Следующим шагом, по идее, для особо настойчивых, должна стать специальная отметка на профиле тех, кто раз за разом продолжает загружать плохие аватары. Отметка на основе которой можно вообще запретить изменение аватара для такого пользователя. Но это может быть как нибудь в следующий раз. В принципе, особо буйных можно просто банить, а для тех, кто понимает предупреждения, пока просто удаляем аватар.

Создаем php файл avatardelete.php со следующим кодом

  1.  
  2. <?
  3. $userid = intval($_REQUEST["userid"]);
  4. $inUser = cmsUser::getInstance();
  5. if ($inUser->is_admin&&$userid) {
  6. $inDB = cmsDatabase::getInstance();
  7. $sql = "UPDATE cms_user_profiles SET imageurl = '' WHERE user_id = '$userid'";
  8. $inDB->query($sql);
  9. echo 'ok';
  10. }
  11. ?>


Кладём этот файл в папку /includes/myphp/

В админке сайта создаём статью с названием Удаление аватара и с url /avatardelete.html
В настройках статьи устанавливаем доступ только для админов.


Иллюстрация

В принципе в самом коде тоже присутсвует проверка на администратора. Но дополнительное ограничение не повредит.


В теле статьи через "Вставить файл" вставляем avatardelete.php

В шаблоне com_users_profile.tpl в любом месте вставляем

  1.  
  2. {if $is_admin}
  3. <form action="/avatardelete.html" method="post">
  4. <input name="userid" type="hidden" value="{$usr.id}" />
  5. <input name="" type="submit" value="УДАЛИТЬ АВАТАР" />
  6. </form>
  7. {/if}
  8.  
Вроде работает.
Только когда я делал это же самое через php my admin, из ленты активности кажется тоже пропадала запись о том что пользователь загрузил такой то аватар. (Без каких либо дополнительных действий по удалению записи из логов).

При данном варианте запись из ленты не пропала, пришлось удалять вручную из админки.

Не понял в чем разница, сейчас не хочу разбираться с этим вопросом, если кто-то подскажет, хорошо.
0
Александр Александр 7 лет назад #
Штука нужная, спасибо, добавить бы изящности коду и исполнению. И кстати личным фоткам возможность статуса 18+ тоже непомешает
0
Странник Странник 7 лет назад #
Идея хороша.

Но, имхо, следует предусмотреть в таблице cms_user_profiles дополнительное поле (например, с именем prohibition), которое будет содержать флаг запрещения наглецам менять аватар после первого же предупреждения. В вашем же файле avatardelete.php:
Код PHP:
  1. $sql = "UPDATE cms_user_profiles SET imageurl = '', prohibition = 1 WHERE user_id = '$userid'";
Естественно, перед изменением аватара сделать проверку, установлен ли флаг prohibition этого юзера. Если да, то никаких ему задниц или прочих интимных частей тела на аватаре))))

Еще от автора

Капча на сайт или разделы сайта
Если нужно, закрыть весь сайт или некоторые его разделы каптчей.
Пинг поисковых систем для первой ветки
Небольшая интеграция инструментов для пингования, чтобы сделать его чуть удобнее
Генератор карты сайта в формате txt на лету без крона
Вообще то где то тут уже есть вполне рабочие генераторы карты для первой ветки, но этот вариант тоже имеет право быть.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.