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

[2.1.x]Модераторские теги


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

всё работает, только юзер может после, всё отредактировать. нелогично!

как уже подметил TOIIOP - не может

Я проверил в разных вариантах, у меня работает так.

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

Можно ли сделать, чтоб пользователь не мог редактировать свои сообщения, куда вставлено сообщение или предупреждение?

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

  • Ответы 283
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

сейчас все проверю...

 

у меня не правит, ни быстрым, ни полным...

 

попробуй в /source/classes/post/class_post_edit.php

 

				if ( ($this->orig_post['author_id'] == $this->ipsclass->member['id']) and ($this->ipsclass->member['g_edit_posts']) and !$this->orig_post['has_modcomment'] or $this->ipsclass->member['is_mod'] == 1)

 

заменить на

				if ( ($this->orig_post['author_id'] == $this->ipsclass->member['id']) and ($this->ipsclass->member['g_edit_posts']) and !$this->orig_post['has_modcomment'])

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

сейчас все проверю...

 

у меня не правит, ни быстрым, ни полным...

Заменил.

Вхожу как простой пользователь, автором сообщения, куда вставлен тэг и всё равно могу править :D

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

господа, вы старую версию мода ставили? если да, то вопрос - нормально все вычистили?

Я скачал сегодня примерно в 20-00, вроде свежий. До этого не ставил.

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

запросто ))

 

[mod]текст юзера[/mod]

 

на предварительном просмотре вижу вижу в таблице "текст юзера[/mod]"

 

но это не страшно, потом в топик отправляется ок.. вот юзер может редактировать.. это не по уму

 

:D

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

у вас завелся полтергейст, [/mod] у меня нету

 

пришлите мне на мыло (выше написал) оба файла, где-то вы что-то намудрили

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

по вопросу правки поста (на основе файла, который прислали):

 

пропущен кусок кода в class_post_edit

 

//Найти

 

		//-----------------------------------------
	// Update the database (ib_forum_post)
	//-----------------------------------------

	$this->post['append_edit'] = 1;

	if ( $this->ipsclass->member['g_append_edit'] )
	{
		if ( $this->ipsclass->input['add_edit'] != 1 )
		{
			$this->post['append_edit'] = 0;
		}
	}

 

//Ниже добавить

 

				if (strpos($this->post['post'], '<!--mod1-->')!==FALSE || strpos($this->post['post'], '<!--excl1-->')!==FALSE)
			{
				$this->post['has_modcomment'] = 1;
			} else {
				$this->post['has_modcomment'] = 0;
			}

 

Инструкцию сейчас обновлю :D

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

ничё не пишет

 

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

 

стоп, немного не так !

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

это под моим, админским аккаунтом так

 

а юзер может этот пост процитировать... в цитате видно только название таблицы, остальное и её кодовый текст

 

у меня да. под оперой ответить могу но в цитате кодовый текст

 

у юзера под лисой аналогично

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

Решение такое

 

в class_bbcode.php

 

строку

 

		return "<!--mod1--><BR><TABLE cellspacing=0 cellpadding=0 width=100%><tr><td class='mod_up'>Сообщение от модератора <b><!--name_st-->".$in['name']."<!--name_end--></b></td></tr><tr><TD vAlign=top class='mod_down'><!--emod1-->".$in['txt']."<!--mod2--></TD></TABLE><!--emod2-->";

 

Заменить на

		return "<!--mod1--><div style='width:100%;'><div class='mod_up'>Сообщение от модератора <b><!--name_st-->".$in['name']."<!--name_end--></b></div><div class='mod_down'><!--emod1-->".$in['txt']."<!--mod2--></div></div><!--emod2-->";

 

Строку

 

		return "<!--excl1--><BR><TABLE cellspacing=0 cellpadding=0 width=100%><tr><td class='ex_up'>Строгое предупреждение от модератора <b><!--name_st-->".$ix['name']."<!--name_end--></b></td</tr><tr><TD vAlign=top class='ex_down'><!--eexcl1-->".$ix['txt']."<!--excl2--></TD></TABLE><!--eexcl2-->";

 

заменить на

 

		return "<!--excl1--><div style='width:100%;'><div class='ex_up'>Строгое предупреждение от модератора <b><!--name_st-->".$ix['name']."<!--name_end--></b></div><div class='ex_down'><!--eexcl1-->".$ix['txt']."<!--excl2--></div></div><!--eexcl2-->";

 

Css изменить на

 

.mod_up {
background: #E4EAF2 url(<#IMG_DIR#>/mod.gif) no-repeat right;
border: 1px solid #0084FF;
border-left: 4px solid #0084FF;
color: #000;
border-bottom: 0;
font-size: 10px;
line-height: 40px;
padding-left:10px;
vertical-align: middle;
}

.mod_down {
background: #FAFCFE;
border: 1px solid #0084FF;
border-left: 4px solid #0084FF;
border-top: 0;
color: #0084FF;
font-weight: bold;
padding: 4px;
}

.ex_up {
background: #E4EAF2 url(<#IMG_DIR#>/ex.gif) no-repeat right;
border: 1px solid red;
border-left: 4px solid red;
color: #000;
border-bottom: 0;
font-size: 10px;
line-height: 40px;
padding-left:10px;
vertical-align: middle;
}

.ex_down {
background: #FAFCFE;
border: 1px solid red;
border-left: 4px solid red;
border-top: 0;
color: red;
font-weight: bold;
padding: 4px;
}

 

после этого у всех должно все работать

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

пропущен кусок кода в class_post_edit

...

 

//Ниже добавить

 

				if (strpos($this->post['post'], '<!--mod1-->')!==FALSE || strpos($this->post['post'], '<!--excl1-->')!==FALSE)
			{
				$this->post['has_modcomment'] = 1;
			} else {
				$this->post['has_modcomment'] = 0;
			}

 

У меня при таком раскладе можно редактировать. Попробовал поменять 1 с нулём, т.е.

				if (strpos($this->post['post'], '<!--mod1-->')!==FALSE || strpos($this->post['post'], '<!--excl1-->')!==FALSE)
			{
				$this->post['has_modcomment'] = 0;
			} else {
				$this->post['has_modcomment'] = 1;
			}

Теперь пользователю пишет, что у него нет прав :D

 

OverHerz спасибо.

Ещё при ответе с цитатой сообщения, в котором есть тэг, пишется текст цитируемого сообщения и текст, который написан внутри тэга. Можно сделать так, чтоб тест из тэга не цитировался?

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

Можно сделать так, чтоб тест из тэга не цитировался?
Можно, в следующей версии сделаю

 

пока еще что-нибудь придумайте :D

 

хотя вот hot fix ;)

 

class_bbcode.php

 

	 					  $txt = preg_replace( "#\[(mod|ex)(=.+?)?\](.+?)\[/(mod|ex)\]#is", '\\3', $txt);

 

заменить на

	 					  $txt = preg_replace( "#\[(mod|ex)(=.+?)?\](.+?)\[/(mod|ex)\]#is", '', $txt);

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

пока еще что-нибудь придумайте :D

Мы будем стараться ;)

 

По поводу того, что я написал выше, про то что поменял местами 1 и 0. Это не страшно?

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

×
×
  • Создать...

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

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