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

Запрет на удаление и редактирование постов 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, это только для модеров, а для кодеров как сделать?

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

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

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

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

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

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

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

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

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

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

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

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

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