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

Скрываем прикрепленные файлы от гостей


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

Вместо ссылки на прикрепленный файл выводим «Гости не имеют право просматривать вложения!».

 

Открыть файл ./sources/action_public/topics.php, найти:

		$r['post'] = preg_replace( "#\[attachmentid=(\d+?)\]#is", '<a href="'.$ipsclass->vars['board_url'].'/index.'.$ipsclass->vars['php_ext'].'?act=attach&type=post&id='."\\1".'">'.$ipsclass->lang['lofi_attach'].'</a>', $r['post'] );

Заменить на:

		if ( $ipsclass->member['id'] > 0 )
	{
		$r['post'] = preg_replace( "#\[attachmentid=(\d+?)\]#is", '<a href="'.$ipsclass->vars['board_url'].'/index.'.$ipsclass->vars['php_ext'].'?act=attach&type=post&id='."\\1".'">'.$ipsclass->lang['lofi_attach'].'</a>', $r['post'] );
	}
	else
	{
		$r['post'] = preg_replace( "#\[attachmentid=(\d+?)\]#is", 'Гости не имеют право просматривать вложения!', $r['post'] );
	}

Сохранить изменения.

 

Открыть файл ./sources/action_public/forums.php, найти:

		if ( $topic['topic_hasattach'] )

Заменить на:

		if ( $topic['topic_hasattach'] and $this->ipsclass->member['id'] > 0 )

Сохранить изменения.

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

Ну эта модификация вместо вложений выводит текст

Гости не имеют право просматривать вложения! Гости не имеют право просматривать вложения! Гости не имеют право просматривать вложения! Гости

Сколько вложений столько раз и фраза будет повторяться :D

Надо бы как нибудь видоизменить, чтобы текст этот выделялся ;)

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

  • 2 недели спустя...
Попробовал на 2.1.7: просто не видно прикрепленных файлов, текст "гости не могут просматривать..." почему-то не выводится
Ссылка на комментарий
Поделиться на других сайтах

Но если им дадут ссылку на файл или картинку, они ее успешно прочитают и скачают.

Попробовал на 2.1.7: просто не видно прикрепленных файлов, текст "гости не могут просматривать..." почему-то не выводится

Проверь еще раз.

Хотя я с не ставил себе, ну раз Мастер говорит, что все ок, значит ок должно быть :D

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

Ну эта модификация вместо вложений выводит текст

Хмм, как-то не обратил внимания, привык, не выдавать аттачи в attach.php, а ты его не трогаешь..

 

Ты уверен, что если спросят конкретный аттач - ему его не дадут? -)

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

Да и вообще нафига опять велик изобретать уже написано как минимум 2 мода?

Вот такие на изе:

Hide Attachments For Guests

Attachement visibility

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

Странный вы народ.

 

Я же написал

Но если им дадут ссылку на файл или картинку, они ее успешно прочитают и скачают.

Как со зрением? :D

 

Это и по коду видно, что скачать смогут... мда....

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

  • 1 месяц спустя...

Hide Attachments For Guests для 2.1.7

 

+ Скрытие ссылок для гостей в сообщениях

+ Вывод ошибки при попытке скачать файл по прямой ссылке

 

* Мод взял на изе для версии 2.0 и чуть-чуть подправил для 2.1.7 (не нашел для 2.1.x :D , может плохо искал)

*******************************************************
sources/action_public/topics.php
*******************************************************
-----------------------------------------------------------------
Найти:
-----------------------------------------------------------------

						if ( strstr( $html, '[attachmentid='.$row['attach_id'].']' ) )
						{
							$html = str_replace( '[attachmentid='.$row['attach_id'].']', $tmp, $html );
						}
						else
						{
							$temp_hold['thumb'] .= $tmp . ' ';
						}

-----------------------------------------------------------------
Заменить:
-----------------------------------------------------------------


						if ( strstr( $html, '[attachmentid='.$row['attach_id'].']' ) )
						{
							if ($this->ipsclass->member['id'] == '' || $this->ipsclass->member['id'] == '0')
							{
								if ($shown == 1)
								{
									$html = str_replace("[attachmentid=".$row['attach_id']."]", "", $html);
								}
								else
								{
									$html = str_replace("[attachmentid=".$row['attach_id']."]", $this->ipsclass->lang['no_guest_attach'], $html);
									$shown = 1;
								}
							}
							else
							{
								$html = str_replace( '[attachmentid='.$row['attach_id'].']', $tmp, $html );
							}
						}
						else
						{
							$temp_hold['thumb'] .= $tmp . ' ';
						}

-----------------------------------------------------------------
Найти:
-----------------------------------------------------------------

						if ( strstr( $html, '[attachmentid='.$row['attach_id'].']' ) )
						{
							$html = str_replace( '[attachmentid='.$row['attach_id'].']', $tmp, $html );
						}
						else
						{
							$temp_hold['image'] .= $tmp . ' ';
						}

-----------------------------------------------------------------
Заменить:
-----------------------------------------------------------------

						if ( strstr( $html, '[attachmentid='.$row['attach_id'].']' ) )
						{
							if ($this->ipsclass->member['id'] == '' || $this->ipsclass->member['id'] == '0')
							{
								if ($shown == 1)
								{
									$html = str_replace("[attachmentid=".$row['attach_id']."]", "", $html);
								}
								else
								{
									$html = str_replace("[attachmentid=".$row['attach_id']."]", $this->ipsclass->lang['no_guest_attach'], $html);
									$shown = 1;
								}
							}
							else
							{
								$html = str_replace( '[attachmentid='.$row['attach_id'].']', $tmp, $html );
							}
						}
						else
						{
							$temp_hold['image'] .= $tmp . ' ';
						}

-----------------------------------------------------------------
Найти:
-----------------------------------------------------------------

					if ( strstr( $html, '[attachmentid='.$row['attach_id'].']' ) )
					{
						$html = str_replace( '[attachmentid='.$row['attach_id'].']', $tmp, $html );
					}
					else
					{
						$temp_hold['attach'] .= $tmp;
					}

-----------------------------------------------------------------
Заменить:
-----------------------------------------------------------------

					if ( strstr( $html, '[attachmentid='.$row['attach_id'].']' ) )
					{
						if ($this->ipsclass->member['id'] == '' || $this->ipsclass->member['id'] == '0')
						{
							if ($shown == 1)
							{
								$html = str_replace("[attachmentid=".$row['attach_id']."]", "", $html);
							}
							else
							{
								$html = str_replace("[attachmentid=".$row['attach_id']."]", $this->ipsclass->lang['no_guest_attach'], $html);
								$shown = 1;
							}
						}
						else
						{
							$html = str_replace( '[attachmentid='.$row['attach_id'].']', $tmp, $html );
						}
					}
					else
					{
						$temp_hold['attach'] .= $tmp;
					}

-----------------------------------------------------------------
Найти:
-----------------------------------------------------------------

			if ( $temp_out )
			{
				$html = str_replace( "<!--IBF.ATTACHMENT_{$row[$type]}-->", $temp_out, $html );
			}

-----------------------------------------------------------------
Заменить:
-----------------------------------------------------------------

			if ( $temp_out )
			{
				if ($this->ipsclass->member['id'] == '' || $this->ipsclass->member['id'] == '0')
				{
					if ($shown == 1)
					{
						$html = str_replace( "<!--IBF.ATTACHMENT_{$row[$type]}-->", "", $html );
					}
					else
					{
						$html = str_replace( "<!--IBF.ATTACHMENT_{$row[$type]}-->", $this->ipsclass->lang['no_guest_attach'], $html );
						$shown = 1;
					}
				}
				else
				{
					$html = str_replace( "<!--IBF.ATTACHMENT_{$row[$type]}-->", $temp_out, $html );
				}
			}

-----------------------------------------------------------------
*******************************************************
sources/action_public/misc/attach.php
*******************************************************
-----------------------------------------------------------------
Найти:
-----------------------------------------------------------------

	//-----------------------------------------
	// What to do..
	//-----------------------------------------

-----------------------------------------------------------------
Добавить выше:
-----------------------------------------------------------------

	if ($this->ipsclass->member['id'] == '' || $this->ipsclass->member['id'] == 0)
	{
		$this->ipsclass->Error( array( LEVEL => 1, MSG => 'no_guest_attach'));
	}

-----------------------------------------------------------------
*******************************************************
cache/lang_cache/xx/lang_error.php
*******************************************************
-----------------------------------------------------------------
Найти:
-----------------------------------------------------------------

$lang = array (

-----------------------------------------------------------------
Добавить после:
-----------------------------------------------------------------

'no_guest_attach' => 'Гости не могут скачивать прикрепленные файлы!',

-----------------------------------------------------------------
*******************************************************
cache/lang_cache/xx/lang_topic.php
*******************************************************

-----------------------------------------------------------------
Найти:
-----------------------------------------------------------------

$lang = array (

-----------------------------------------------------------------
Добавить после:
-----------------------------------------------------------------

'no_guest_attach' => '<small><i><b>Гости не могут скачивать прикрепленные файлы!</b></i></small>',

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

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

плохо изменил, в 2.1.х используется $this->ipsclass-> вместо $std->:

$std->error(array('LEVEL' => 1, 'MSG' => 'no_guest_attach'));
->

$this->ipsclass->Error( array( LEVEL => 1, MSG => 'no_guest_attach'));

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

пасиба, но у меня почему-то только в первом посте отображается надпись "Гости не могут скачивать прикрепленные файлы!"..а дальше в сообщениях нет ни вложений, ни надписи
Ссылка на комментарий
Поделиться на других сайтах

пасиба, но у меня почему-то только в первом посте отображается надпись "Гости не могут скачивать прикрепленные файлы!"..а дальше в сообщениях нет ни вложений, ни надписи

Такая же проблема, подскажите, где косяк?

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

Виесто всех ссылок ставьте ссылку на регистрацию. правьте BBCODE

 

И ставьте права на скачивание

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

  • 2 недели спустя...

Pimen

Спасиб. Уже 2 часа мучаюсь, наконец-то нашёл =)

 

Для тех, кто не понял, что бы надпись показывалась не один раз - можно побаловаться с $shown =)

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

  • 1 месяц спустя...
Действительно, недоглядел, сообщение поправил :D

Это ничего не изменило... по-прежнему, надпись только 1 раз в первом посте.. ;)

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

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

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

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

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

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

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

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

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

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

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

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