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

поиск и удаление неактивных юзеров


WildCat

Вопрос

Попадалась кому-нить такая компонента, которая позволяет по крону осуществлять поиск юзеров с заданными параметрами и последующим действием над найденными? В данном случае меня интересуют юзеры, которые в течение Х дней после регистрации не оставили ни одного сообщения и только зря занимают ники. Нужно чтобы задача отлавливала их и удаляла (в идеале - делалось бы еще и уведомление на мыло о причине удаления)
Ссылка на комментарий
Поделиться на других сайтах

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

  • 0

вот помню же, что видел где-то.... поиск по словам "удаление неактивных" ничего не дал :D

мерси!

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

  • 0

есть в этом моде одна оч. странная штуковина

 

админ получает уведомление о предупреждении участника моментально (зависит как настроите работу в менеджере задач), а сам участник получает это предупреждение только через 2-3 дня :D

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

  • 0
админ получает уведомление о предупреждении участника моментально (зависит как настроите работу в менеджере задач), а сам участник получает это предупреждение только через 2-3 дня

Это из-за того, что админу письмо одно и оно отправляется сразу через библиотечную функцию форума, а удалённых может быть много, поэтому письма для них ставятся в очередь и отправляются когда кто-то заходит на форум.

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

  • 0

тогда получается, что мод совершенно бесполезен !

 

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

 

и в чем тогда смысл уведомлений? чтоб об этом знал админ??

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

  • 0
Не конкретный юзер, а любой хит форума. Сообщения сохраняются в базе и при загрузке форума по одному скорее всего за хит отправляются. Т.е. на более посещаемом форуме быстрее все письма отправятся.
Ссылка на комментарий
Поделиться на других сайтах

  • 0

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

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

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

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

  • 0

что значит все письма за раз? у вас на форуме пачками появляются неактивные юзеры?? нужно сотнями уведомлений их предупреждать??

 

1-но, максимум 2 сообщения в сутки.. это если двое зарегились вместе и неактивны!!

 

этож не массовая рассылка форумом мессаджей. там фильтр по времени регистрации пропорционален времени неактивности

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

  • 0

Я akura отвечал, ещё твоего поста не было :D Имеется в виду если отправлять из мода письма, туго серверу может быть.

 

Ну вот, пока писал, вы ещё 2 поста набить успели ;)

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

  • 0

а у меня были единицы.. и всё равно уведомление получают на 2-3 дня позже, чем я получил, что они уведомлены

 

Я akura отвечал, ещё твоего поста не было :D Имеется в виду если отправлять из мода письма, туго серверу может быть.

да я понял ;)

 

вобщем там просто так скрипт срабатывает.. почему - непонятно

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

  • 0

ну я думаю, что еслиб был тяжелый путь или почтальон пьян )), то все письма бы шли с опозданием.. то что отправляется на email, все уведомления об лс.. etc

 

а то ведь всё приходит моментально, в течении нескольких секунд, а это уведомление идет несколько суток

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

  • 0

я понял

 

смотри

мемберов предупреждают так

 $this->ipsclass->DB->do_insert( 'mail_queue', array( 'mail_date '		=> time(),
												 'mail_to'		   => $r['email'],
												 'mail_from'		 => $this->ipsclass->vars['email_in'],
												 'mail_subject'	  => $title,
												 'mail_content'	  => $message, ) );

а админа так

			require_once $this->root_path.'sources/classes/class_email.php';
		$email = new emailer;
		$email->ipsclass =& $this->ipsclass;
		$email->email_init();

		$log = eregi_replace("<br />", "\n", $log);

		$email->from	= $this->ipsclass->vars['email_in'];
		$email->to	  = $this->ipsclass->vars['email_in'];
		$email->message = "Hello Mr. Admin Sir!\n\n".$log;
		$email->subject = "Prune Inactive Log";
		$email->send_mail();

 

первое означает, что мемберы ставятся в рассылку, а рассылка запускается через таск, который срабатывает

Динамически назначается, нет необходимости изменять

а второе - сразу же

 

так

рассылка происходит знаешь как...

 

в ipsclass при срабатывании my_deconstructor

 

он срабатывает из class_display в случае, если USE_SHUTDOWN == 1

 

а оно таким становится когда IPB_THIS_SCRIPT == public

 

тоесть каждый раз при срабатывании index.php

 

но это не главное

 

отправка собственно происходит, когда

$this->cache['systemvars']['mail_queue'] > 0

а оно таким становится когда выполяется topic_tracker или forum_tracker из class_post.php

 

а он выполняется ... эээ... короче

 

ща скажу как лечить

 

файл deleteinactive.php из комплекта мода

ищем

				$this->ipsclass->DB->do_insert( 'mail_queue', array( 'mail_date '		=> time(),
												 'mail_to'		   => $r['email'],
												 'mail_from'		 => $this->ipsclass->vars['email_in'],
												 'mail_subject'	  => $title,
												 'mail_content'	  => $message, ) );

			$names_a[] = $r['members_display_name']." (".$r['name'].", ".$r['id'].", ".$r['posts'].", ".$this->ipsclass->get_date( $r[$period_type], 'LONG', 1 ).")";

добавляем после

			$count++;

ищем

		if (!empty($names_a))
	{
			$names = implode(",<br />", $names_a);
	}

добавляем

		$this->ipsclass->cache['systemvars']['mail_queue'] += $count;
	$this->ipsclass->DB->do_update( 'cache_store', array( 'cs_array' => 1, 'cs_value' => addslashes(serialize($this->ipsclass->cache['systemvars'])) ), "cs_key='systemvars'" );

 

index.php

найти

"idx"		=> array( "boards"			 , 'boards'	   , array('chatting','birthdays',

 

добавить

'systemvars',

 

пробуем

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

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

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

Гость
Ответить на вопрос...

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

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

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

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

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

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

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

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