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

Запрет на удаление и редактирование постов root админов


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

Я думаю это надо включить как дополнение к моду Protected ROOT - в архиве Изменено пользователем Anna
Ссылка на комментарий
Поделиться на других сайтах

moderate.php,

function delete_post()

 

		// Get this post id.

	$DB->query("SELECT pid,attach_file, author_id, attach_id, post_date, new_topic from ibf_posts WHERE forum_id='".$this->forum['id']."' AND topic_id='".$this->topic['tid']."' and pid='".$ibforums->input['p']."'");
	if ( ! $post = $DB->fetch_row() )
	{
		$this->moderate_error();
	}

	$passed = 0;

	if ($ibforums->member['g_is_supmod'] == 1)
	{
		$passed = 1;
	}
	else if ($this->moderator['delete_post'] == 1)
	{
		$passed = 1;
	}
	else if ( ($ibforums->member['g_delete_own_posts'] == 1) and ( $ibforums->member['id'] == $post['author_id'] ) )
	{
		$passed = 1;
	}
	else 
	{
		$passed = 0;
	}

	if ($passed != 1) $this->moderate_error();

 

меняем на

		// Get this post id.

	$DB->query("SELECT p.pid, p.attach_file, p.author_id, p.attach_id, p.post_date, p.new_topic, m.mgroup 
			FROM ibf_posts p, ibf_members m 
			WHERE p.forum_id='".$this->forum['id']."' AND p.topic_id='".$this->topic['tid']."' 
			and m.id=p.author_id and p.pid='".$ibforums->input['p']."'");

	if ( ! $post = $DB->fetch_row() )
	{
		$this->moderate_error();
	}

	$passed = 0;

	if ( $ibforums->member['g_is_supmod'] )
	{
		$passed = 1;

	} elseif ( $post['mgroup'] != $ibforums->vars['admin_group'] )
	{
			if ( $this->moderator['delete_post'] )
			{
				$passed = 1;

			} elseif ( $ibforums->member['g_delete_own_posts'] and $ibforums->member['id'] == $post['author_id'] )
			{
				$passed = 1;
			} else 
			{
				$passed = 0;
			}
	}

	if ( $passed != 1 )
	{
		$this->moderate_error();
	}

 

post_edit_post.php,

function post_functions($class)

 

		//-------------------------------------------------
	// Load the old post
	//-------------------------------------------------

	$DB->query("SELECT * FROM ibf_posts WHERE pid=".intval($ibforums->input['p']));

 

меняем на

		//-------------------------------------------------
	// Load the old post
	//-------------------------------------------------

	$DB->query("SELECT p.*, m.mgroup FROM ibf_posts p, ibf_members m WHERE m.id=p.author_id and p.pid=".intval($ibforums->input['p']));

 

ниже

		
	$can_edit = 0;

	if ($ibforums->member['g_is_supmod'])
	{
		$can_edit = 1;
	}
	if ($this->moderator['edit_post'])
	{
		$can_edit = 1;
	}
	if ( ($this->orig_post['author_id'] == $ibforums->member['id']) and ($ibforums->member['g_edit_posts']) )
	{
		// Have we set a time limit?

		if ($ibforums->member['g_edit_cutoff'] > 0)
		{
			if ( $this->orig_post['post_date'] > ( time() - ( intval($ibforums->member['g_edit_cutoff']) * 60 ) ) )
			{
				$can_edit = 1;
			}
		}
		else
		{
			$can_edit = 1;
		}
	}

меняем на

		if ( $ibforums->member['g_is_supmod'] )
	{
		$can_edit = 1;

	} elseif ( $this->orig_post['mgroup'] != $ibforums->vars['admin_group'] )
	{
		if ($this->moderator['edit_post'])
		{
			$can_edit = 1;
		}

		if ( $this->orig_post['author_id'] == $ibforums->member['id'] and $ibforums->member['g_edit_posts'] )
		{
			// Have we set a time limit?
			if ( $ibforums->member['g_edit_cutoff'] > 0 )
			{
				if ( $this->orig_post['post_date'] > ( time() - ( intval($ibforums->member['g_edit_cutoff']) * 60 ) ) )
				{
					$can_edit = 1;
				}
			} else
			{
				$can_edit = 1;
			}
		}
	}

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

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

Song, ты предлагаешь это:

$DB->query("SELECT pid,attach_file,author_id,author_name,attach_id,post_date,new_topic,post FROM ibf_posts WHERE forum_id='".$this->forum['id']."' AND topic_id='".$this->topic['tid']."' and pid='".$ibforums->input['p']."'");

Поменять на это:

$DB->query("SELECT p.pid, p.attach_file, p.author_id, p.attach_id, p.post_date, p.new_topic, m.mgroup 
			FROM ibf_posts p, ibf_members m 
			WHERE p.forum_id='".$this->forum['id']."' AND p.topic_id='".$this->topic['tid']."' and 
			and m.id=p.author_id and p.pid='".$ibforums->input['p']."'");

Но после этого вылазиет ошибка.

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

Jax

 

		$DB->query("SELECT p.pid, p.attach_file, p.author_id, p.attach_id, p.post_date, p.new_topic, m.mgroup 
			FROM ibf_posts p JEFT JOIN ibf_members m ON (m.id=p.author_id)
			WHERE p.forum_id='".$this->forum['id']."' AND p.topic_id='".$this->topic['tid']."' AND p.pid='".$ibforums->input['p']."'");

попробуй

 

а вообще была ошибка в двух AND вподряд

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

>> а вообще была ошибка в двух AND вподряд

 

да спасибо. Именно так и было.

Исправил пост с модом.

Уже поздно его делал :D

 

Вообще это для 1.2

Но для 1.3 тоже подойдёт.

 

>> Song, это только для модеров, а для кодеров как сделать?

не понял. Что ты имеешь ввиду ?

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

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

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

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

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

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

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

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

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

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

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

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