Перейти к контенту
  • 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

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

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

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

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

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

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

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

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

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

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

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

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