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

Запрет публикации сообщений подряд


Вопрос

Подскажите как сделать чтоб "Постеры" не тулили в одну тему по 50 сообщений

а именно как запретить (без склейки) одному и тому же пользователю публиковать сообщения подряд в одной теме ?

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

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

  • 0
Найти, где проверяется под склейку, а конкретно где вместо INSERT выполняется UPDATE, и перед этим кодом добавить вызов эррор-функции.
Ссылка на комментарий
Поделиться на других сайтах

  • 0
Найти, где проверяется под склейку, а конкретно где вместо INSERT выполняется UPDATE, и перед этим кодом добавить вызов эррор-функции.

Да, распишите пожалуйста как так сделать

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

  • 0
Напиши плиз поподробнее я не силён в коде форума

Увы, у меня просто нет кода форума версии 2.х.х

А чем, собственно, склейка не нравится? Мне кажется, так наоборот лучше: и пользователям удобнее в длинных темах, и число сообщений в топике не растет сверх меры.

Я у себя на "однушку" разве что дополнил склейку отбивкой времени добавления:

 

Добавил функцию:

	/*-------------------------------------------------------------------------*/
// Интервал времени между событиями
/*-------------------------------------------------------------------------*/
function date_diff($begin, $end=0){
	if(!$end)$end = time();

	if( intval($end)<=intval($begin) )return array();

	$s_diff = intval(date("s",$end)) - intval(date("s",$begin));
	if($s_diff<0)
	{
		$s_diff += 60;
		$end -= 60;
	}
	$i_diff = intval(date("i",$end)) - intval(date("i",$begin));

	if($i_diff<0)
	{
		$i_diff += 60;
		$end -= 3600;
	}
	$g_diff = intval(date("G",$end)) - intval(date("G",$begin));
	if($g_diff<0)
	{
		$g_diff += 24;
		$end -= 86400;
	}

	$y_diff = intval(date("Y",$end)) - intval(date("Y",$begin));
	$m_diff = intval(date("m",$end)) - intval(date("m",$begin));
	$dpm = 30;
	if( stristr(",1,3,5,7,8,10,12,",",".date("Y",$end).",") )$dpm = 31;
	if(date("m",$end) == "2")
	{
		if( intval(date("Y",$end))%4  )$dpm = 28;
		else $dpm = 29;
	}
	$d_diff = intval(date("d",$end)) - intval(date("d",$begin));
	if($d_diff<0)
	{
		$d_diff += $dpm;
		$m_diff--;
	}
	if($m_diff<0)
	{
		$m_diff += 12;
		$y_diff--;
	}

	$diff = array();

	$str = " лет";
	if($y_diff%10 == 1 and $y_diff!=11)$str = " год";
	if( $y_diff%10>1 and $y_diff%10<5 and ( $y_diff<10 or $y_diff>20 ) )$str = " года";
	if($y_diff)$diff['y'] = $y_diff.$str;

	$str = " месяцев";
	if($m_diff == 1)$str = " месяц";
	if($m_diff>1 and $m_diff<5)$str = " месяца";
	if($m_diff)$diff['m'] = $m_diff.$str;

	$str = " дней";
	if($d_diff%10 == "1" and $d_diff!=11)$str = " день";
	if( $d_diff%10>1 and $d_diff%10<5 and ( $d_diff<10 or $d_diff>20 ) )$str = " дня";
	if($d_diff)$diff['d'] = $d_diff.$str;

	$str = " часов";
	if($g_diff%10 == "1" and $g_diff!=11)$str = " час";
	if( $g_diff%10>1 and $g_diff%10<5 and ( $g_diff<10 or $g_diff>20 ) )$str = " часа";
	if($g_diff)$diff['g'] = $g_diff.$str;

	$str = " минут";
	if($i_diff%10 == "1" and $i_diff!=11)$str = " минуту";
	if( $i_diff%10>1 and $i_diff%10<5 and ( $i_diff<10 or $i_diff>20 ) )$str = " минуты";
	if($i_diff)$diff['i'] = $i_diff.$str;

	$str = " секунд";
	if($s_diff%10 == "1" and $s_diff!=11)$str = " секунду";
	if( $s_diff%10>1 and $s_diff%10<5 and ( $s_diff<10 or $s_diff>20 ) )$str = " секунды";
	if($s_diff)$diff['s'] = $s_diff.$str;

	return $diff;
}

 

И сама склейка:

// +FatCat: Склейка последовательных:
	if( $this->topic['last_poster_id'] == $ibforums->member['id'] and (time()-$this->topic['last_post'])<600 and $this->topic['posts'] )
	{
		$DB->query("SELECT pid, author_id, author_name, post_date, post FROM ibf_posts, ip_address WHERE topic_id = ".$this->topic['tid']." ORDER BY pid ASC LIMIT ".$this->topic['posts'].",2");
		if($DB->get_num_rows() == 1)
		{
			$post = $DB->fetch_row();

			if($ibforums->input['IP_ADDRESS'] == $post['ip_address'])
			{

				// Собираем объединенный пост
				$split_t = $std->date_diff($post['post_date']);
				$split_t = implode(", ",$split_t);

				$split_t = "<br><br><br><hr>Спустя <i>".$split_t."</i> <b>".$ibforums->member['name']."</b> написал(а):<hr>";
				$split_t = $post['post'].$split_t.$this->post['post'];
				$split_t = str_replace("'","''",$split_t);
				$DB->query("UPDATE ibf_posts SET post = '".$split_t."', post_date = '".time()."' WHERE pid = '".$post['pid']."'");
				$DB->query("UPDATE ibf_topics SET last_post = '".time()."' WHERE tid = ".$this->topic['tid']);
				$print->redirect_screen( "сообщение подклеено к Вашему предыдущему сообщению." , "showtopic={$this->topic['tid']}&view=getlastpost");
			}
		}
	}
// -FatCat: Склейка последовательных

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

  • 0
FatCat в какие файлы то хоть это добавлять ?

Это для весрии 1.x, читайте внимательнее :D

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

  • 0
FatCat в какие файлы то хоть это добавлять ?

Это для весрии 1.x, читайте внимательнее :D

прошу прощения, просто тема в разделе "Общие вопросы (по 2.2.x и 2.3.x)"

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

  • 0
просто тема в разделе "Общие вопросы (по 2.2.x и 2.3.x)"

Я показал общий подход к решению, а не конкретную реализацию.

Надеюсь, что опубликованные мной коды первой линейки помогут Вам оценить объем работы по модификации и определиться в цене, если надумаете заказать модификацию на свой форум.

 

PS: Я не рекламирую свои услуги, я за такой заказ не возьмусь.

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

  • 0
постеры заходят через неделю и в свой пост заливают сами же и получается пост только из их постов как то грустно :D
Ссылка на комментарий
Поделиться на других сайтах

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

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

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

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

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

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

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

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

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

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

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