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

Анти дублирование тем


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

Столкнулся с такой проблемой, что нетерпеливые юзеры жмут кнопку "Создать тему" несколько раз подряд, причем быстро

 

Получается несколько одинаковых одновременных тем

 

Исправляем:

 

файл cache/lang_cahe/*/lang_error.php

добавить

'double_topic' => "Такая тема уже существует: <#DOUBLE#>",

 

файл sources/ipsclass.php

найти

	   //-----------------------------------------
	// Extra info?
	//-----------------------------------------

	if ($error['EXTRA'])
	{
		$msg = preg_replace( "/<#EXTRA#>/", $error['EXTRA'], $msg );
	}

 

добавить после

	//double topic
	if ($error['DOUBLE'])
	{
		$msg = preg_replace( "/<#DOUBLE#>/", $error['DOUBLE'], $msg );
	}

 

файл sources/classes/post/class_post_new.php

найти

		//-----------------------------------------
	// Fix up the topic title
	//-----------------------------------------

	$this->ipsclass->input['TopicTitle'] = $this->pf_clean_topic_title( $this->ipsclass->input['TopicTitle'] );

	$this->ipsclass->input['TopicTitle'] = $this->parser->bad_words( $this->ipsclass->input['TopicTitle'] );
	$this->ipsclass->input['TopicDesc']  = $this->parser->bad_words( $this->ipsclass->input['TopicDesc']  );

 

добавить после

		$this->ipsclass->DB->simple_construct( array('select' => 'tid,title',
												'from'   => 'topics',
												'where' => 'state=\'open\'',
												)
										 );
	$this->ipsclass->DB->simple_exec();
	while ($title = $this->ipsclass->DB->fetch_row())
	{
		if ($this->ipsclass->input['TopicTitle'] == $title['title'])
		{
			$double = "<a href=\"{$this->ipsclass->board_url}index.php?showtopic=".$title['tid']."\">".$title['title']."</a>";
			$this->ipsclass->Error( array( LEVEL => 1, MSG => 'double_topic', DOUBLE => $double) );
		}
	}

 

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

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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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

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

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