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

Уведомления о сообщениях


ZYV

Вопрос

Всем привет.

 

Когда-то у IPB 1.2 Была такая система - если человек подписан на форум, то ему приходят уведомления только о новых темах в этом форуме. Если подписан на тему - то о новых сообщениях.

 

Мне показалась куда более логичной другая система - если человек подписан на форум ему идет вообще весь трафик, т.е. и новые темы, и новые сообщения из форума. Если на тему в конкретном форуме - то только на эту тему.

 

В новом IPB 2.1.4 очень много вариантов уведомлений, но, по-моему, чего-то отвечающего моей старой системе нету. Просто я уже привык ко всяким там Usenet'ам - подписался на конференцию - тебе весь трафик валится. С безлимитным мылом это кажется гораздо удобнее. Немогли бы пользователи подтвердить это или опровергнуть?

 

Если нету действительно, то кто-то реализовывал мою схему? Можете поделиться исходниками (yury кривулька shurup тчка com)? Если нет, придется самому мучать.

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

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

  • 0

В общем сделал я вроде тут че-то, кому-нибудь это нужно?

 

P.S. Ладно, всё понятно. В виде хака оформлять лень, а так, кому надо, тому поможет.

 

[b]class_post.php[/b]

	// ZYV  - get persons subscribed to the forum 
	$ps = array(); // init persons array

	$this->ipsclass->DB->cache_add_query( "post_forum_topic_tracker" , array( 'tid' => $tid, 'mid' => $this->ipsclass->member['id'], 'last_post' => $last_post ) );
	$outer = $this->ipsclass->DB->simple_exec();
	if ( $this->ipsclass->DB->get_num_rows($outer) ) {
		while ( $r = $this->ipsclass->DB->fetch_row($outer) ) {
			$ps[] = $r;
		}
	}

	// get persons subscribed to topic (original)
	$this->ipsclass->DB->cache_add_query( "post_topic_tracker" , array( 'tid' => $tid, 'mid' => $this->ipsclass->member['id'], 'last_post' => $last_post ) );
	$outer = $this->ipsclass->DB->simple_exec();
	if ( $this->ipsclass->DB->get_num_rows($outer) ) {
		while ( $r = $this->ipsclass->DB->fetch_row($outer) ) {
			$ps[] = $r;
		}
	}

	// /ZYV
	$trids = array();

		foreach ($ps as $psn => $r) {

			// if already sent to this guy...
			if (in_array($r["id"], $trids))
				continue;

			//-----------------------------------------
			// Test for group permissions
			//-----------------------------------------
....................................................................
			//-----------------------------------------
			// Add to mail queue
			//-----------------------------------------

			$this->ipsclass->DB->do_insert( 'mail_queue', array( 'mail_to' => $r['email'], 'mail_date' => time(), 'mail_subject' => $r["forum_name"] . " / " . $r["title"]. " / Новое сообщение ", 'mail_content' => $this->email->message ) );
		}

и тут надо убрать закрывающую }

 

[b]mysql_queries.php[/b]
function post_topic_tracker( $a )
{
	#post
	return "SELECT 

			tr.trid, tr.topic_id, 
			m.name, m.email, m.id, m.email_full, m.language, m.org_perm_id, m.mgroup, m.last_activity, 
			t.title, t.forum_id, t.approved, 

			f.name as forum_name

			FROM ".
				SQL_PREFIX."tracker tr, ".
				SQL_PREFIX."topics t,".
				SQL_PREFIX."members m,".
				SQL_PREFIX."forums f
			WHERE 

			tr.topic_id='{$a['tid']}'
			AND tr.member_id=m.id
			AND m.id <> {$a['mid']}
			AND t.tid=tr.topic_id
			AND ( ( tr.topic_track_type='delayed' AND m.last_activity > {$a['last_post']} ) OR tr.topic_track_type='immediate' )
			AND f.id=t.forum_id

			";
  }

  // ZYV
  function post_forum_topic_tracker( $a ) {
	return "SELECT 

			m.name, m.email, m.id, m.email_full, m.language, m.org_perm_id, m.mgroup, m.last_activity, 
			t.title, t.forum_id, t.approved,

			f.name as forum_name

			FROM ".
				SQL_PREFIX."forum_tracker ftr, ".
				SQL_PREFIX."topics t,".
				SQL_PREFIX."members m,".
				SQL_PREFIX."forums f
			WHERE 

			t.tid = '{$a['tid']}'
			AND ftr.member_id=m.id
			AND m.id <> {$a['mid']}
			AND ftr.forum_id=t.forum_id 
			AND f.id=t.forum_id

			";

}

 

Запросы пришлось писать самому, так что ничего не гарантирую. Любые комментарии приветствуются. Заголовки сделаны так, чтобы автосортировщиком писем можно было пользоваться юзерам.

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

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

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

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

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

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

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

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

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

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

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

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