Перейти к контенту
  • 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
Ссылка на комментарий
Поделиться на других сайтах

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

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

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

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

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

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

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

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

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

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

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