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

Автоскрытие ссылок


Chib@

Вопрос

Курил поиск, не нашёл...

Нужно сделать так, чтобы гости не видели ссылок( проще говоря для них тег url должен быть недоступен)

Находил моды приватного текста и т.д., но это не то, нужно чтобы ссылки скрывались автоматически.

Помогите :D

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

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

  • 0

Видимо никто не знает как это реализовать...

а я откопал всётки метод:

 

В /sources/action_public/topics.php

Найти:

 

		//-----------------------------------------
	// Highlight...
	//-----------------------------------------

 

Добавить перед:

 

		if (!$this->ipsclass->member['id'])
	{
		//-----------------------------------------
		// Clear links for guests
		//-----------------------------------------

		$row['post'] = preg_replace( "#<a href=[\"'].+?[\"'].+?>.+?</a>#", "<i>ссылка</i>", $row['post'] );
	}

 

В /sources/classes/post/class_post.php

Найти:

 

					  $extra = "";

					if ( $tmp_post )
					{
						$raw_post .= "[quote name='".$this->parser->make_quote_safe($tp['author_name'])."' date='".$this->parser->make_quote_safe($this->ipsclass->get_date( $tp['post_date'], 'LONG', 1 ))."' post='".$tp['pid']."']\n$tmp_post\n".$extra.'[/quote]'."\n\n\n";
					}

 

Добавить перед:

 

	   if (!$this->ipsclass->member['id'])
	{
		//-----------------------------------------
		// Clear links for guests
		//-----------------------------------------

		$tmp_post = preg_replace( "#\[url\](\S+?)\[/url\]#i", "[i]ссылка[/i]", $tmp_post );
		$tmp_post = preg_replace( "#\[url\s*=\s*\& quot\;\s*(\S+?)\s*\& quot\;\s*\](.*?)\[\/url\]#i" , "\\2", $tmp_post );
		$tmp_post = preg_replace( "#\[url\s*=\s*(\S+?)\s*\](.*?)\[\/url\]#i", "\\2", $tmp_post );
	}

 

Где "ссылка", является текстом для замены url

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

  • 0

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

FuZioN2008. заменяешь <i>ссылка</i> (topics.php) и [*i]ссылка[/i] (class post.php) на свой текст, и он будет отображаться для гостей вместо ссылок.

 

P.S. на 2.3.5 работает.

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

  • 0

видоизменил

[i]ссылка[/i]

на

 

 

[b][i]Вы - гость и не можете видеть ссылки. [url=http://ваш_домен/index.php?act=Reg&CODE=00]Зарегистрируйтесь![/url][/i][/b]

 

а

<i>ссылка</i>

соответственнно на

 

<b><i>Вы - гость и не можете видеть ссылки. <a href=http://ваш_домен/index.php?act=Reg&CODE=00>Зарегистрируйтесь!</a></i></b>

 

думаю, так эффективней.

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

  • 0
Chiba@, где вы его откопали? Не на этом форуме ли? :D
Ссылка на комментарий
Поделиться на других сайтах

  • 0
Видимо никто не знает как это реализовать...

а я откопал всётки метод:

 

В /sources/action_public/topics.php

Найти:

 

		//-----------------------------------------
	// Highlight...
	//-----------------------------------------

 

Добавить перед:

 

		if (!$this->ipsclass->member['id'])
	{
		//-----------------------------------------
		// Clear links for guests
		//-----------------------------------------

		$row['post'] = preg_replace( "#<a href=[\"'].+?[\"'].+?>.+?</a>#", "<i>ссылка</i>", $row['post'] );
	}

 

В /sources/classes/post/class_post.php

Найти:

 

					  $extra = "";

					if ( $tmp_post )
					{
						$raw_post .= "[quote name='".$this->parser->make_quote_safe($tp['author_name'])."' date='".$this->parser->make_quote_safe($this->ipsclass->get_date( $tp['post_date'], 'LONG', 1 ))."' post='".$tp['pid']."']\n$tmp_post\n".$extra.'[/quote]'."\n\n\n";
					}

 

Добавить перед:

 

	   if (!$this->ipsclass->member['id'])
	{
		//-----------------------------------------
		// Clear links for guests
		//-----------------------------------------

		$tmp_post = preg_replace( "#\[url\](\S+?)\[/url\]#i", "[i]ссылка[/i]", $tmp_post );
		$tmp_post = preg_replace( "#\[url\s*=\s*\& quot\;\s*(\S+?)\s*\& quot\;\s*\](.*?)\[\/url\]#i" , "\\2", $tmp_post );
		$tmp_post = preg_replace( "#\[url\s*=\s*(\S+?)\s*\](.*?)\[\/url\]#i", "\\2", $tmp_post );
	}

 

Где "ссылка", является текстом для замены url

На версий 2.3.6 данная фишка не работает, ссылки скрываются но ответить и создовать посты не возможно на форуме просто белая страница и все, кто нибудь придумал как испаравить и воплатил это?

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

  • 0
кстати, а как сделать чтобы ссылки скрывались в lofiversion и при экспорте rss ?

кто знает и расскажет ?

http://www.ibresource.ru/forums/index.php?...st&p=285173 :D

 

На версий 2.3.6 данная фишка не работает, ссылки скрываются но ответить и создовать посты не возможно на форуме просто белая страница и все, кто нибудь придумал как испаравить и воплатил это?

Незачем передумывать то, что и так работает. От ошибок никто не застрахован, даже вы. Вперёд читать тему про белую страницу в FAQ ;)

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

  • 0
кстати, а как сделать чтобы ссылки скрывались в lofiversion и при экспорте rss ?

кто знает и расскажет ?

http://www.ibresource.ru/forums/index.php?...st&p=285173 :D

 

проверил твой пост по ссылке - который -

 

Скрытие ссылок в текстовой версии:

 

./lofiversion/index.php

Найти:

		$parser->parse_html  = ( $ipsclass->forums->forum_by_id[ $topic['forum_id'] ]['use_html'] and $ipsclass->cache['group_cache'][ $r['mgroup'] ]['g_dohtml'] and $r['post_htmlstate'] ) ? 1 : 0;
	$parser->parse_nl2br = $r['post_htmlstate'] == 2 ? 1 : 0;

	$r['post'] = $parser->pre_display_parse( $r['post'] );

 

В 2.1 добавить перед:

		if (!$ipsclass->member['id'])
	{
		//-----------------------------------------
		// Clear links for guests
		//-----------------------------------------

		$r['post'] = preg_replace( "#\[url\](\S+?)\[/url\]#i", "[i]ссылка[/i]", $r['post'] );
		$r['post'] = preg_replace( "#\[url\s*=\s*\& quot\;\s*(\S+?)\s*\& quot\;\s*\](.*?)\[\/url\]#i" , "[i]ссылка[/i]", $r['post'] );
		$r['post'] = preg_replace( "#\[url\s*=\s*(\S+?)\s*\](.*?)\[\/url\]#i", "[i]ссылка[/i]", $r['post'] );
	}

 

В 2.3 добавить перед:

		if (!$ipsclass->member['id'])
	{
		//-----------------------------------------
		// Clear links for guests
		//-----------------------------------------

		$r['post'] = preg_replace( "#<a href=[\"'].+?[\"'].+?>.+?</a>#", "<i>ссылка</i>", $r['post'] );
	}

 

 

лично у меня в движке 2.3.4 нет вообще такого текста в ./lofiversion/index.php который нужно найти, нет его и вдругих файлах движка.

что делать ?

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

  • 0

Разбираться, как же без этого админу? :D

 

Судя по всему

		//--------------------------------
	// Manage POST / TOPIC tags index.php?act=findpost&pid=415
	// <a href='index.php?showtopic=100'>
	//--------------------------------

рядом с этим добавлять надо.

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

  • 0
Разбираться, как же без этого админу? :D

 

Судя по всему

		//--------------------------------
	// Manage POST / TOPIC tags index.php?act=findpost&pid=415
	// <a href='index.php?showtopic=100'>
	//--------------------------------

рядом с этим добавлять надо.

 

 

добавил рядом этот код

 

		 if (!$ipsclass->member['id'])
	{
		//-----------------------------------------
		// Clear links for guests
		//-----------------------------------------

		$r['post'] = preg_replace( "#<a href=[\"'].+?[\"'].+?>.+?</a>#", "<i>ссылка</i>", $r['post'] );
	}

 

 

не работает.

 

так что вопрос про непоказывание ссылок гостям в lofiversion и версии для печати по прежнему актуален. в vbulletin это есть, почему же этого нет в ипб ?

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

  • 0
На версий 2.3.6 данная фишка не работает, ссылки скрываются но ответить и создовать посты не возможно на форуме просто белая страница и все, кто нибудь придумал как испаравить и воплатил это?

Вопрос снят все заработало :D

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

  • 0
не работает.

 

так что вопрос про не показывание ссылок гостям в lofiversion и версии для печати по прежнему актуален. в vbulletin это есть, почему же этого нет в ипб ?

Ну не знаю, может не стоит валить всё на IPB, а себя проверить? У меня скрываются. Если что код:

	while( $r = $ipsclass->DB->fetch_row($outer) )
{
	$r['post_date']   = $ipsclass->get_date( $r['post_date'], 'LONG', 1 );

	$r['author_name'] = $r['members_display_name'] ? $r['members_display_name'] : $r['author_name'];

	//--------------------------------
	// Manage POST / TOPIC tags index.php?act=findpost&pid=415
	// <a href='index.php?showtopic=100'>
	//--------------------------------

	if (!$ipsclass->member['id'])
	{
		//-----------------------------------------
		// Clear links for guests
		//-----------------------------------------

		$r['post'] = preg_replace( "#<a href=[\"'].+?[\"'].+?>.+?</a>#", "<i>ссылка</i>", $r['post'] );
	}

	$r['post'] = preg_replace( "#([\"'])index\.{$ipsclass->vars['php_ext']}\?showtopic=#i"			   , "\\1".$ipsclass->vars['board_url'].'/index.'.$ipsclass->vars['php_ext'].'?showtopic='	   , $r['post'] );
	$r['post'] = preg_replace( "#([\"'])index\.{$ipsclass->vars['php_ext']}\?act=findpost&(amp;)?pid=#is", "\\1".$ipsclass->vars['board_url'].'/index.'.$ipsclass->vars['php_ext'].'?act=findpost&pid=', $r['post'] );

	//--------------------------------
	// Convert attach links
	//--------------------------------

	$r['post'] = preg_replace( "#\[attachment=(\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'] );

	$output .= LOFISKIN_posts_entry($r, $winpath);
}

Можете написать на форуме IPS, может добавят такую возможность в 3.x, у вас ещё есть шанс.

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

  • 0
Ну не знаю, может не стоит валить всё на IPB, а себя проверить? У меня скрываются. Если что код:

щас потестю.

 

отлично, бомба , все работает - гостям в lofiversion ссылки скрываются! огромное спасибо Sannis!!

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

  • 0
такой еще вопрос как сделать чтобы ссылки были скрыты не только для гостей а и для юзеров с количеством сообщений меньше 5ти ?
Ссылка на комментарий
Поделиться на других сайтах

  • 0

if (!$ipsclass->member['id'])

замените на

if ( $ipsclass->member['posts'] < 5 )

, раз 10 обсуждалось :D

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

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

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

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

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

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

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

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

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

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

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

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