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

Как сделать что б все пользователи видели чужие и свои предупреждения?


Вопрос

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

  • 0

Тоже очень бы хотелось узнать как это реализовать.

Поиском найти что-то не получается.)

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

  • 0
Да, действительно, как это реализовать, и ещё желатьельно, что бы и гости могли видить! Изменено пользователем Nutsyy
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Было, это точно. Дубль для 2.1:

 

1. Открываем ./sources/action_public/topics.php, ищем

			if ( ( isset($this->ipsclass->member['_moderator'][ $this->topic['forum_id'] ]['allow_warn'])
			AND $this->ipsclass->member['_moderator'][ $this->topic['forum_id'] ]['allow_warn'] )
			OR ( $this->ipsclass->member['g_is_supmod'] == 1 )
			OR ( $this->ipsclass->vars['warn_show_own'] and ( $this->ipsclass->member['id'] == $member['id'] ) ) 
		   )
		{

заменям на

			if(1)
		{

2. Открываем ./sources/action_public/profile.php, ищем(для 2.2 два раза):

				if ( $pass == 1 )
			{
				if ( ! $this->ipsclass->vars['warn_show_rating'] )
				{

заменяем на

				if ( 1 )
			{
				if ( ! $this->ipsclass->vars['warn_show_rating'] )
				{

3. Открываем ./sources/action_public/misc/warn.php, ищем

			else
		{
			$pass = 0;
		}

заменяем на

			else
		{
			$pass			   = 1;
			$this->can_ban	  = 0;
			$this->can_mod_q	= 0;
			$this->can_rem_post = 0;
			$this->times_a_day  = 0;
			$this->type		 = 'member';
		}

 

Для 2.2 в первом пункте нужно искать в ./sources/ipsclass.php:

			if ( ( isset($this->member['_moderator'][ $this->topic['forum_id'] ]['allow_warn'])
			AND $this->member['_moderator'][ $this->topic['forum_id'] ]['allow_warn'] )
			OR ( $this->member['g_is_supmod'] == 1 )
			OR ( $this->vars['warn_show_own'] and ( $this->member['id'] == $member['id'] ) ) 
		   )
		{

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

  • 0

Sannis, респект неимоверный :D

Если позволите, пара уточняющих вопросов:

 

1. Для пользователей, прошедших авторизацию, предупреждения видны как в топиках, так и в профилях. Но вот для "гостей" (не авторизовавшихся) предупреждения показываются только в топиках... ( При просмотре ими профилей пользователей предупреждения почему-то не отображаются...

 

2. Как я понял, третий файл warn.php – это непосредственно история изменения рейтинга. И если его не модифицировать предложенным Вами способом, то для просмотра обычным пользователям эта история будет недоступна. Вот это, в принципе, и хотелось бы сделать – пользователи должны видеть только общий процент предупреждений других пользователей, но никак не их историю. Но можно ли здесь пойти еще немного дальше? Например, убрать ссылку на количестве процентов предупреждений вообще (оставить ее только для админов, супермодераторов, модераторов и пользователя, которому данная история предупреждений принадлежит). Сложно ли это реализовать?

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

  • 0

Sannis У меня 2.3.3

 

1. Открываем ./sources/action_public/topics.php, ищем

Код

if ( ( isset($this->ipsclass->member['_moderator'][ $this->topic['forum_id'] ]['allow_warn'])
			AND $this->ipsclass->member['_moderator'][ $this->topic['forum_id'] ]['allow_warn'] )
			OR ( $this->ipsclass->member['g_is_supmod'] == 1 )
			OR ( $this->ipsclass->vars['warn_show_own'] and ( $this->ipsclass->member['id'] == $member['id'] ) ) 
		   )
		{

 

заменям на

Код

 

 if(1)
		{

 

 

У меня в этом файле нет таких строк, есть похожие

 

		//-----------------------------------------
	// Are we actually a moderator for this forum?
	//-----------------------------------------

	if ( ! $this->ipsclass->member['g_is_supmod'] AND ! $this->ipsclass->member['g_access_cp'] )
	{
		if ( !isset($this->ipsclass->member['_moderator'][ $this->forum['id'] ]) OR !is_array( $this->ipsclass->member['_moderator'][ $this->forum['id'] ] ) )
		{
			$this->ipsclass->member['is_mod'] = 0;
		}
	}
}

 

 

Не мог бы ты помочь?

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

  • 0
Навскидку: Открываем ./sources/ipsclass.php, ищем.
Ссылка на комментарий
Поделиться на других сайтах

  • 0
Нету тоже ничего похожего. Может мне тебе отправить свои файлы емайлом? Что бы ты глянул? Помоги в долгу не останусь :D
Ссылка на комментарий
Поделиться на других сайтах

  • 0

			if ( ( isset($this->member['_moderator'][ $this->topic['forum_id'] ]['allow_warn'])
			AND $this->member['_moderator'][ $this->topic['forum_id'] ]['allow_warn'] )
			OR ( $this->member['g_is_supmod'] == 1 )
			OR ( $this->vars['warn_show_own'] and ( $this->member['id'] == $member['id'] ) ) 
		   )
		{

 

Этого у тебя в ipsclass нет? Никогда не следует пытаться искать по всему фрагменту целиком, тогда даже если у вас пробелы не так стоят то ничего не найдётся! :D

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

  • 0

Включить для них такую возможность в настройках предупреждений в админке. Но по умолчанию так и есть, пользователи видят только свои.

 

P.S. Вы просто от админа небось смотрите, он то все видит :D

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

  • 0
Включить для них такую возможность в настройках предупреждений в админке. Но по умолчанию так и есть, пользователи видят только свои.

 

P.S. Вы просто от админа небось смотрите, он то все видит :D

щас посмотрю где это поставить. Спасибо ;)

зы. изначально пользователь не видит даже своих предупреждений =/

 

 

upd: может кто-нибудь ответить на мой вопрос? не туда запостил просто :)

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

  • 0
upd: может кто-нибудь ответить на мой вопрос? не туда запостил просто :D

Ответил.

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

  • 0

Респект Sannis :D

-----------------------------

 

Таким образом можно установить репутацию для 2.3.3. Никаких файлов загружать не надо, рулит только редактура и терпение конечно)

 

Рэйтинг могут изменять пользователи со статусом не ниже модератора(Просто есть гады которые наваривают себе репу, поэтому лучше пусть этим занимаются модеры и админы).

 

Предварительно нужно зайти в Настройки->Настройки предупреждений и изменить Тип отображения индикатора в режим рейтинга

 

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

 

Работаем с sources/ipsclass.php

 

ищем:

 

// Ratings mode..

				$member['warn_text']  = $this->lang['tt_rating'];
				$member['warn_img']   = $this->compiled_templates[ $skin_file ]->warn_level_rating($member['id'], $member['warn_level'], $this->vars['warn_min'], $this->vars['warn_max']);
			}

			if ( ( isset($this->member['_moderator'][ $this->topic['forum_id'] ]['allow_warn']) AND $this->member['_moderator'][ $this->topic['forum_id'] ]['allow_warn'] ) or $this->member['g_is_supmod'] == 1 )

 

заменяем на:

// Ratings mode..

				$member['warn_text']  = $this->lang['tt_rating'];
				$member['warn_img']   = $this->compiled_templates[ $skin_file ]->warn_level_rating($member['id'], $member['warn_level'], $this->vars[''], $this->vars['']);
			}

			if ( 1 )

 

 

 

 

 

 

 

-----------------------------------------------------------

2. Правим язык.

 

Работаем с ./cache/lang_cache/ru/lang_mod.php

 

ищем:

'warn_popup_title'			=> "Предупреждения",

заменяем на:

'warn_popup_title'			=> "Репутация",

---

ищем:

'w_title'				   => "Центр предупреждений пользователя",

заменяем на:

'w_title'				   => "Центр изменения уровня репутации пользователя",

---

ищем:

'w_warnfor'				 => "Панель предупреждений пользователя",

заменяем на:

'w_warnfor'				 => "Панель изменения уровня репутации пользователя",

---

ищем:

'w_add'					 => "Повышение уровня предупреждений",
'w_remove'					=> 'Понижение уровня предупреждений',

заменяем на:

'w_add'					 => '<span style="color: blue;">Повышение уровня репутации</span>',
'w_remove'					=> '<span style="color: red;">Понижение уровня репутации</span>',

---

ищем:

'w_v_add'				   => "Повышение уровня предупреждений",
'w_v_minus'				 => "Понижение уровня предупреждений",

заменяем на:

'w_v_add'				   => '<span style="color: blue;">Повышение уровня репутации</span>',
'w_v_minus'				 => '<span style="color: red;">Понижение уровня репутации</span>',

---

ищем:

'w_done_t'				  => "Результат обновления предупреждений",

заменяем на:

'w_done_t'				  => "Результат обновления уровня репутации",

---

ищем:

'w_adjust_level'			=> "Действие с предупреждений",

заменяем на:

'w_adjust_level'			=> "Повысить/понизить уровень репутации",

---

ищем:

'w_submit'				  => "Изменить уровень предупреждений",

заменяем на:

'w_submit'				  => "Изменить уровень репутации",

---

ищем:

'w_v_title'				 => "Журнал предупреждений пользователя",

заменяем на:

'w_v_title'				 => "Журнал изменений уровня репутации пользователя",

---

 

 

 

Работаем с ./cache/lang_cache/ru/lang_topic.php

 

ищем:

'tt_warn'				   => "Предупреждения:<br />",
'tt_warn_add'			   => "Добавить предупреждение",
'tt_warn_minus'			 => "Снять предупреждение",

заменяем на:

'tt_warn'				   => "Репутация:<br />",
'tt_warn_add'			   => "Повысить репутацию",
'tt_warn_minus'			 => "Понизить репутацию",

 

 

 

Работаем с ./cache/lang_cache/ru/lang_profile.php

ищем:

'warn_level'			=> "Предупреждения",

заменяем на:

'warn_level'			=> "Рэйтинг",

 

 

 

--------------------

Это основное. Все остальные детали можно изменить в скине.

 

ПС. Надеюсь ничего не забыл, время поджимает...

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

  • 0
Sannis, спасибо за 5-е сообщение! На форуме много таких тем, есть целый мод на буржуйском ресурсе, но работает только твоя рекомендация :D Рекомендую свой 5-й пост собрать в готовый мод для 2.1.х. Только там где "2 раза" у меня было лишь один раз, но это мелочи жизни.
Ссылка на комментарий
Поделиться на других сайтах

  • 0
Спасибо, исправил, 2 раза нужно искать в 2.2 и выше. На мод это не тянет, но может быть соберу все свои хаки в одной теме или выложу в архив, смотря как с модераторами договорюсь :D
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Не знаю как в 2.3.x, но в 2.0.4 если заменять $pass на 1 чтоб все могли не только видеть кол-во % но и читать за что открывается огроменная дыра в безопастности

 

Любой юзер тупо вбив ссылку для изменения уровня предупреждений в адрессную строку и подставив нужный id может хоть забанить любого пользователя!!

 

Это происходит потому что просмотр предупреждения и действия над юзером проверяются одним условием - "а модер ли ты, чувак?"

А мы это условие сбрасываем в 1 ("та мы тут все модеры, отак :D").

 

Тут бы переписать этот блок...

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

  • 0

Не пужайте народ. Если бы вы были внимательны, то прочитали бы, что я предлагаю редактировать файлы profile.php и topics.php, которые ответственны за вывод уровня предупреждений. За выставление отвечает другой файл, называть который, по вами указанной причине, не буду, можете посмотреть в index.php или на ссылку выставления предупреждений.

 

Кроме того и просмотреть сами записи о предупреждениях не получится, они тоже выводятся другим файлов.

 

:D

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

  • 0

maybe-maybe... я писал как это происходит в 2.0.4...

если в 2.3.x это по-другому - слава богу.

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

  • 0
Вы уверены насчёт 2.0? :D Нашёл дистрибутивчик, там тоже выставление предупреждений не в топикс и не в профайл. Так что всё безопасно ;)
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Для того, чтоб не все пользователи видели шкалу предупреждений с нулевым значением в пункте 1 лучше исправить на:

 

if ( ( isset($this->member['_moderator'][ $this->topic['forum_id'] ]['allow_warn'])
			 AND $this->member['_moderator'][ $this->topic['forum_id'] ]['allow_warn'] )
						OR ( $this->member['g_is_supmod'] == 1 )
						OR ( $member['warn_level'] >0) )

 

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

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

  • 0

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

 

1. Открываем ./sources/action_public/topics.php, ищем

Код

if ( ( isset($this->ipsclass->member['_moderator'][ $this->topic['forum_id'] ]['allow_warn'])

AND $this->ipsclass->member['_moderator'][ $this->topic['forum_id'] ]['allow_warn'] )

OR ( $this->ipsclass->member['g_is_supmod'] == 1 )

OR ( $this->ipsclass->vars['warn_show_own'] and ( $this->ipsclass->member['id'] == $member['id'] ) )

)

{

заменям на

Код

if(1)

{

 

у меня этого нету, даже чего то похожего!! :D

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

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

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

Гость
Ответить на вопрос...

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

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

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

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

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

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

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

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