Перейти к контенту

Комплексная "корзина"


Рекомендуемые сообщения

Добрый вечер.

 

Сейчас сообщения удаляются поэлементно, т.е. если модератор удаляет по 1-му сообщению - и в Корзине юрба одинаковых "тем", даже если скопом, все равно в другой раз с той же темы - опять в "корзине" новая тема.

Хотелось бы как в моде для 1.3.1 - удаляется сообщение и в корзине оно попадает в ту же "тему" (т.е. сообщения, удаленные из одной и той же темы в разное время, попадают и в одну корзиночную тему). Затем я пересматриваю Корзину по темам и удаляю.

 

Еще хотелось бы видеть такую "фишку", как бан по IP сделавшего сообщение, т.е. удаляю сообщение и одновременно могу внести адрес в бан (поскольку копировать - вставить - уже больше действий).

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...

Сделал, оцените, протестируйте. Работает пока только для удаления одного поста.

 

Ищем в sources/action_public/moderate.php

 

Строку:

                if ( $this->trash_forum and $this->trash_forum != $this->forum['id'] )
               {

 

После вставляем:

 

                // тут не забываем повешать индексы на description и forum_id, если база слишком уж большая.
               $this->ipsclass->DB->simple_construct( array(
                   'select' => 'tid, starter_id, start_date',
                   'from'   => 'topics',
                   'where' => "description LIKE 'От темы с ID: {$this->topic['tid']}' and forum_id={$this->trash_forum}",
                   'order'  => 'start_date DESC',
                   'limit'  => array( 0,1 ) ) );

               $this->ipsclass->DB->simple_exec();

//              echo "description LIKE 'От темы с ID:{$this->topic['tid']}' and forum_id={$this->trash_forum}";

               if ( $tmp = $this->ipsclass->DB->fetch_row() )
               {
                   // перед удалением нам надо проверить создан ли топик в архивном форуме $this->trash_forum,
                   // если создан - то переносим пост туда, если нет - то создаем новый топик. Переносим в топик с id =  $tmp['tid']


               // выбираем пост и переписываем ему топик
               $this->ipsclass->DB->simple_construct( array(
                   'select' => 'pid, author_id, post_date, topic_id',
                   'from' => 'posts',
                   'where' => "topic_id={$this->topic['tid']} and pid={$this->ipsclass->input['p']}" )
                   );
               $this->ipsclass->DB->simple_exec();

               if ( $post_to_del = $this->ipsclass->DB->fetch_row() ){

                   $this->ipsclass->DB->simple_exec_query( array(
                       'update' => 'posts',
                       'set'    => "topic_id={$tmp['tid']}",
                       'where' => 'pid='.$post_to_del['pid'] ) );
               }
            }else{

 

Далее ищем

 

$this->trash_inuse = 0;

 

После всталяем

 

}

 

todo:

1. сделать для мультимодерации

2. добавить обновление кэша топика из которого сообщение было удалено.

3. ...

 

 

ps форум v2.3.3

Ссылка на комментарий
Поделиться на других сайтах

сделать для мультимодерации

Собственно, зачем? Перед мультимодерацией можно отключать корзину, удалять и включать. У нас я, например, мультимодерацию разрешил Админам, т.е. себе :D Впрочем, наверное, кому-нидь и понадобится!

 

добавить обновление кэша топика из которого сообщение было удалено.

Хм, а этого нет? Т.е. сообщение после удаления останется в оригинальном топике? Эт нехорошо...

 

Подозрительно простой "код" ;)

Кто-то проверял уже? :)

Ссылка на комментарий
Поделиться на других сайтах

Работоспособный код, могу и без проверки сказать.

 

Автор имел в виду обновить тот топик в корзине, куда сообщение попадёт, а то оно попадёт туда, а статистика того топика не изменится.

Ссылка на комментарий
Поделиться на других сайтах

Работоспособный код, могу и без проверки сказать.

 

Автор имел в виду обновить тот топик в корзине, куда сообщение попадёт, а то оно попадёт туда, а статистика того топика не изменится.

 

Да, я имел ввиду что счетчики не сразу обноляется, и это не критично :D

 

ps Включил у себя на форуме, корзина преобрела приятный вид ;)

Ссылка на комментарий
Поделиться на других сайтах

Да уж, оказывается все тривиально :D

Только просто кому-то заинтересованному надо было взяться ;)

 

Проверил на своем втором форуме - все ОК.

 

Спасибо!

Ссылка на комментарий
Поделиться на других сайтах

Да уж, скоро и сам начну моды писать :D

В общем, как я понял, написано для function delete_post()

А вот для function multi_delete_post() и function delete_topic() пока еще нет. Для второго вряд ли нужно, а первое, как я понимаю - удаление нескольких сообщений в теме. В принципе, тоже нужно в мод добавить.

 

Но вот что не есть хорошо - в корзине число сообщений в "теме" 0 ;) Внутри при этом хоть 5, хоть 10 сообщений. Удалял с установленным модом "комплексная корзина". Я понимаю, что это именно то, что Олег сказал выше.

Впрочем, опять же это не "критично". Главное, что по 1-му сообщению реально работает!

Ссылка на комментарий
Поделиться на других сайтах

Если дойду завтра до дому вечером — напишу.
Ссылка на комментарий
Поделиться на других сайтах

Согласен -для мультимодерации сообщений обязательно нужно сделать.

 

Еще что заметил,что вот такие одиночно рассыпанные сообщения в Корзине восстановить в тему не удается-пишет Ошибка...А если их в корзине обьединить, то тогда по одиночке их можно методом переноса вернуть назад.Создается впечатление, что движок одиночное сообщение воспринимает со статусом темы и не разрешает воткнуть в одноименную живую тему.Не уверен..может это баг какой-то.Может кто попробует восстановить одиночно удаленный пост назад в свою тему?

Изменено пользователем Grandsire
Ссылка на комментарий
Поделиться на других сайтах

Я востанавливал у себя,путем обьединения,нормально все востанавливаеться
Ссылка на комментарий
Поделиться на других сайтах

Так, для удаление сообщения, нескольких сообщений и одной темы я сделал...

 

Но: когда обычно использую удаление сразу нескольких тем? Обычно ж когда хотят их насовсем удалить. Нужно ли тогда для этого делать "удобную" корзину?

Ссылка на комментарий
Поделиться на других сайтах

Так, для удаление сообщения, нескольких сообщений и одной темы я сделал...

 

Но: когда обычно использую удаление сразу нескольких тем? Обычно ж когда хотят их насовсем удалить. Нужно ли тогда для этого делать "удобную" корзину?

 

Возможна такая ситуация,когда из этих нескольких тем одну допустим надо подержать какое-то время в корзине...Вещь-доки бывают нужны :D

Ссылка на комментарий
Поделиться на других сайтах

Я хочу сделать кнопку "восстановить", которая появляется только в корзине, чтобы можно было сразу при просмотре корзины восстановить сообшение/я в один клик. Или лучше это делать средствами обьединения?
Ссылка на комментарий
Поделиться на других сайтах

Но: когда обычно использую удаление сразу нескольких тем? Обычно ж когда хотят их насовсем удалить. Нужно ли тогда для этого делать "удобную" корзину?

Я думаю, что мультимодерацию вообще должен делать один специально выделенный для этого человек, в идеале сам Админ :D. Я не разрешаю удалять темы модераторам + запретил мультимодерацию им. А удалить несколько тем случайно, тем более если сделано специалистом, малореально... Я считаю, что не нужно это добавлять в "корзину".

 

 

Я хочу сделать кнопку "восстановить", которая появляется только в корзине, чтобы можно было сразу при просмотре корзины восстановить сообшение/я в один клик. Или лучше это делать средствами обьединения?

Интересно желание все решать кнопками ;) Что должна делать оная кнопка? Восстанавливать всю тему? Тогда опять же есть стандартное средство "объединения". А если восстанавливать выбранные сообщения, то в правом всплывающем списке резонно добавить опцию "восстановить выбранные сообщения".

 

P.S. Sannis, добавил тему в разделе, если хошь разрабатывать - дерзай, а если времени мало, то может кто еще возьмется, а то наш форум уже плачет от изобилия секс-спаммеров :)

Ссылка на комментарий
Поделиться на других сайтах

P.S. Sannis, добавил тему в разделе, если хошь разрабатывать - дерзай, а если времени мало, то может кто еще возьмется, а то наш форум уже плачет от изобилия секс-спаммеров ;)

Тяжёлый был день, не совсем про тему понял. Но если что, то я темку с модом создал: Улучшенная корзина.

 

Насчёт опции "восстановить" подумаю как время будет, идея интересная :D

Ссылка на комментарий
Поделиться на других сайтах

Тяжёлый был день, не совсем про тему понял. Но если что, то я темку с модом создал:

Насчёт опции "восстановить" подумаю как время будет, идея интересная :D

Тему с модом видел, отписался ;)

А я про тему:

Анти спам (флуд) мод

Ссылка на комментарий
Поделиться на других сайтах

  • 4 недели спустя...

Мы на форуме сейчас решили просто все с Корзиной.По принципу-нЕчего там хранить что-либо и раз в несколько дней просто в ноль вычищаем ее и все.И никаких вопросов не возникает и счетчик сообщений пользователей стабилен по мере появления "нормальных" не флудных сообщений.

А вот на предмет сохранения удаленного,но возможно когда-то и понадобившегося в жизни(мало ли какой разбор полетов или еще что-либо подобное,то вполне можно сделать спец-форум открытый только одной маске пользователей и туда из Корзины и складывать то что "на всякий случай".

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.