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

[1.x.x]Автоудаление неактивных


theIggs

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

Название: Автоудаление неактивных

Добавил: theIggs

Добавлен: 25 Сен 2003

Обновлен: 03 Мар 2005

Категория: IP.Board 1.x.x

 

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

 

Нажмите здесь, чтобы скачать файл

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

  • 1 месяц спустя...
А как реально увидеть, что система работает? Она, как я понял старых пользователей вообще не трогает? Только вновь зарегестрированных или как?
Ссылка на комментарий
Поделиться на других сайтах

B.X

Всех трогает, только включить надо в админке.

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

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

В админке я всё включил... хех, на это у меня ума хватило...

 

А когда эта штука отсылает уведомление "о проделанной работе"? На второй день, как я понял?

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

Хех... ещё один вопрос...

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

 

а потом я добавил еще нескольких, которых удалять нельзя, что будет эта штука делать? Удалять в соответствии с первым запросом или несмотря на предупреждающее письмо удаления не будет?

 

И ещё: там такая есть расплывчатая формулировка "посетите форум, чтобы подтвердить регистрацию", не сказано только каким образом это можно сделать... Человек зайдёт и уйдёт... Надо изменить текст таким образом, наверное, чтобы было понятно, что удаление будет у тех, кто ничего не пишет или, если я правильно понял, если кто-то зайдёт под тем же ником, то это значить будет, что он активен и никаких сообщений в форум добавлять не надо?

 

То есть обязательно только повторное посещение или обязательно посещение с добавлением сообщения?

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

B.X

а потом я добавил еще нескольких, которых удалять нельзя, что будет эта штука делать? Удалять в соответствии с первым запросом или несмотря на предупреждающее письмо удаления не будет?

Удаления не будет.

И ещё: там такая есть расплывчатая формулировка "посетите форум, чтобы подтвердить регистрацию", не сказано только каким образом это можно сделать... Человек зайдёт и уйдёт...

Именно это и предполагалось. Постить ничего не нужно.

Предложения на эту тему?..

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

Всё понятно... только вот на PM он мне ничего не шлёт. Жду... жду. И никого, вот что интересно, не удаляет...

 

Вот посмотри, здесь я объяснил проблему... Может из-за этого? Форум-то теперь работает, но вот не удаляет он всё равно никого и мне о результатах не пишет...

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

Вот посмотри, здесь я объяснил проблему...

По идее, там нужно в обоих местах добавлять строку в Register.php. А что у тебя переставало работать, автоудаление или отсылка ПМ новичкам? На автоудаление, даже если не добавлять ничего в Register.php, эти строчки не должны влиять. То, что автоудаление добавляет в Register.php - не функциональная часть, а так... багофикс...

 

Всё понятно... только вот на PM он мне ничего не шлёт. Жду... жду. И никого, вот что интересно, не удаляет...

Так... что делать. Для начала проверить настройки в админке (ну, там, думаю, всё ОК). Затем проверить пермишены. На .dat файлы в корне должны быть 666. На autodel.php, по идее, 755 или 777, потому что он должен запускаться. Потом можно проверить, запускается ли он сам по себе... набрать в командной строке браузера URL к файлу autodel.php (собственно, на этом этапе лучше закомментировать в autodel.php строчки, связанные с отсылкой мыл и удалением пользователей из базы...).

Строки:

$this->email->send_mail();

и

     $DB->query("UPDATE ibf_posts SET author_id='0' WHERE author_id='".$row['id']."'");
     
     $DB->query("UPDATE ibf_topics SET starter_id='0' WHERE starter_id='".$row['id']."'");
     
     $DB->query("UPDATE ibf_stats SET MEM_COUNT = MEM_COUNT - 1");
     
     // Удаляем пользователя
     
     $DB->query("DELETE from ibf_members WHERE id='".$row['id']."'");
     $DB->query("DELETE from ibf_pfields_content WHERE member_id='".$row['id']."'");
     $DB->query("DELETE from ibf_member_extra WHERE id='".$row['id']."'");
     
     // Удаляем сообщения пользователя
     
     $DB->query("DELETE from ibf_messages WHERE member_id='".$row['id']."'");
     
     // Удаляем подписки пользователя
     
     $DB->query("DELETE from ibf_tracker WHERE member_id='".$row['id']."'");
     $DB->query("DELETE from ibf_forum_tracker WHERE member_id='".$row['id']."'");

Если после запуска autodel.php напрямую администратор получит ПМ с отчётом, значит, проверить внесённые изменения в index.php. Если нет - будем ещё думать... :D

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

Ясно... вроде понял... спасибо за помощь! В хаке насчет прав autodel.php ничего не сказано... Наверное дело в этом... Попробую сейчас...

 

Добавлено:

Нет, ничего не прислал... А кстати, письма пользователям с предупреждением он отсылает, с этим всё нормально. Не удаляет только и не выдаёт на ПМ отчёт о проделанной работе... Пермишены на все три файла стоят 777

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

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

  • 4 недели спустя...
Поставил хак... Так вот, он рассылает предупреждения вновь зарегестрированным. Пока правда никого не порезал.
Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...
Я пока жду новую версию, а заодно пока хак может быть заработает - автоудаление я пока отключил, переключил в safe mode.
Ссылка на комментарий
Поделиться на других сайтах

  • 2 месяца спустя...

У меня версия IPB 1.3, но я рискнула установить данный мод и оно даже заработало. Работало оно ровно до полуночи следующего дня. После чего, при попытке вызвать /index.php моего форума выдавалась пустая страница с кодом вида:

 

<html>
<head>...</head>
<body>
</body>
</html>

 

и все. В админцентре отключила мод, тогда все снова заработало. С чем это может быть связано? И как можно устранить?

 

Второй вопрос. В ПС "Резюме старых регистраций" мне пришло сообщение вида:

 

Внимание! Аккаунт пользователя Radist нужно удалить (неактивен 12476 дней, имеет 0 постов)

 

При этом аккаунт был зарегестрирован около двух недель до установки мода. В поле по рассылке предупрежлдений на мыло, я ввела 30 дней. Можно ли это как-то исправить? Не хочется "запугивать" пользователей, которые по-идее ни в чем не виноваты.

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

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

похоже что не могут :D

А жаль. Действительно полезная штука

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

Ребята, автор мода сейчас очень занят и попросту у него нет времени его модифицировать и Вам тут ответить. Очень сильно он сейчас занят. Его и на форуме нет. Как зайдет, так и ответит Вам.
Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...
  • 3 месяца спустя...
  • 7 месяцев спустя...
  • 1 месяц спустя...

Если кто-то написал не верный е-мейл, то на нем скипт останавливается и не удаляет никого :D

 

В emailer.php это:

if ($this->mail_method != 'smtp')
{
[b]if ( ! @mail( $this->to, $this->subject, $this->message, $this->mail_headers ) )
{
     $this->fatal_error("Could not send the email", "Failed at 'mail' command");
  }   [/b]                                 
}
else
{
  $this->smtp_send_mail();
}

заменил на

if ($this->mail_method != 'smtp')
{
  [b]@mail( $this->to, $this->subject, $this->message, $this->mail_headers );[/b]
}
else
{
   $this->smtp_send_mail();
}

 

А может стоит еще проделывать операцию по частям. Удаляя/остысалая письмо только N пользователям за запуск скрипта?

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

×
×
  • Создать...

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

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