Seite 1 von 2

Links für Gäste "verdecken"?

Verfasst: 13.11.2008 23:41
von Tharuel
Ich suche nach einer Möglichkeit, Links nur für Registrierte Benutzer sichtbar zu machen. Für Gäste dann halt unsichtbar.
Der Gast sollte aber auch darauf hingewiesen werden, das er den Link sieht, wenn er sich anmeldet.

Gibs da sowas für phpbb3 ?

Verfasst: 14.11.2008 01:00
von derkubi
Sowas gibt es , das wird mit IF - Anweisungen definiert .

Beispiel :

<!-- IF S_USER_LOGGED_IN -->
<a href="{U_ABCDE}" title="{L_ABCDE}"</a>
<!-- ENDIF -->

Bedeutet , daß der Besucher der Seite den Link ABCDE nur sieht wenn er eingeloggt ist . Soll der nicht eingeloggte Besucher was anderes sehen , wird das mit ELSE definiert , in diesem Fall den Link 12345

<!-- IF S_USER_LOGGED_IN -->
<a href="{U_ABCDE}" title="{L_ABCDE}"</a>
<!-- ELSE -->
<a href="{U_12345}" title="{L_12345}"</a>
<!-- ENDIF -->

Der Link 12345 könnte jetzt ein selbstgemachter Beitrag sein , in dem Du beschreibst was man alles sieht und kann wenn man registriert ist . Das könnte dann so aussehen :

<!-- IF S_USER_LOGGED_IN -->
<a href="{U_ABCDE}" title="{L_ABCDE}"</a>
<!-- ELSE -->
<a href="http://www.deinforum.de/viewtopic.php?f=9&t=374" title="Verdeckter Link"</a>
<!-- ENDIF -->


Denke müßte so funktionieren . Beim testen immer original Dateien sichern und ansonsten andere Hilfe abwarten .

Verfasst: 14.11.2008 02:02
von Tharuel
Vielleicht hätte ich sagen sollen, dass ich totaler Anfänger bin. ^^
Ich dachte sowas wird über den URL-Tag gelöst.
Welche Datei müsste denn bei deiner Variante überhaupt bearbeitet werden?

Verfasst: 14.11.2008 06:41
von nickvergessen
styles\prosilver\template\bbcode.html

Code: Alles auswählen

<!-- BEGIN url --><a href="{URL}" class="postlink">{DESCRIPTION}</a><!-- END url -->

Verfasst: 14.11.2008 17:17
von BaerchenHH
Meinst du soetwas wie in diesen Beiträgen ???

Verfasst: 14.11.2008 18:38
von derkubi
Hmm , ich gehe jetzt davon aus , daß Du Links meinst die z.B. oben auf Deiner Seite stehen wie MITGLIEDERLISTE etc. Oder meinst Du Links , die in Beiträgen stehen ?

Verfasst: 14.11.2008 19:05
von Tharuel
@ BaerchenHH:
Ja genau sowas. ^^

@ derkubi:
Ja ich hätte es vielleicht besser formulieren sollen. Ich meinte die Links, die in den Beiträgen stehen.

Verfasst: 14.11.2008 19:36
von BaerchenHH
------ URLs im Forum vor Gästen schützen ---
--- Öffne ---
includes/bbcode.php

--- Suche ---

Code: Alles auswählen

	/**
	* Return bbcode template replacement
	*/
	function bbcode_tpl_replace($tpl_name, $tpl)
	{
		global $user;

		static $replacements = array(
			'quote_username_open'	=> array('{USERNAME}'	=> '$1'),
			'color'					=> array('{COLOR}'		=> '$1', '{TEXT}'			=> '$2'),
			'size'					=> array('{SIZE}'		=> '$1', '{TEXT}'			=> '$2'),
			'img'					=> array('{URL}'		=> '$1'),
			'flash'					=> array('{WIDTH}'		=> '$1', '{HEIGHT}'			=> '$2', '{URL}'	=> '$3'),
			'url'					=> array('{URL}'		=> '$1', '{DESCRIPTION}'	=> '$2'),
			'email'					=> array('{EMAIL}'		=> '$1', '{DESCRIPTION}'	=> '$2')
		);
--- Ersetze mit ---

Code: Alles auswählen

	/** 
	* Return bbcode template replacement 
	*/ 
	function bbcode_tpl_replace($tpl_name, $tpl) 
	{
		global $user; 
// with_replacement_link_for_guests_to_register 
if ($user->data['user_id'] == ANONYMOUS){ 
		$replacements = array(
			'quote_username_open'	=> array('{USERNAME}'	=> '$1'), 
			'color'					=> array('{COLOR}'		=> '$1', '{TEXT}'			=> '$2'), 
			'size'					=> array('{SIZE}'		=> '$1', '{TEXT}'			=> '$2'), 
			'img'					=> array('{URL}'		=> '$1'), 
			'flash'					=> array('{WIDTH}'		=> '$1', '{HEIGHT}'			=> '$2', '{URL}'	=> '$3'), 
			'url'					=> array('{DESCRIPTION}'	=> '<font size="-2" color="#008040" <a href=""></a>*** Der Link ist nur f&uuml;r Mitglieder sichtbar. Bitte <a href="./ucp.php?mode=register"><u>registriere</u></a> Dich, oder <a href="./ucp.php?mode=login"><u>logge dich ein</u></a>. *** </font>'),
			'email'					=> array('{EMAIL}'		=> '$1', '{DESCRIPTION}'	=> '$2')
		);
}
else{ 
		static $replacements = array(
			'quote_username_open'	=> array('{USERNAME}'	=> '$1'),
			'color'					=> array('{COLOR}'		=> '$1', '{TEXT}'			=> '$2'),
			'size'					=> array('{SIZE}'		=> '$1', '{TEXT}'			=> '$2'),
			'img'					=> array('{URL}'		=> '$1'),
			'flash'					=> array('{WIDTH}'		=> '$1', '{HEIGHT}'			=> '$2', '{URL}'	=> '$3'),
			'url'					=> array('{URL}'		=> '$1', '{DESCRIPTION}'	=> '$2'),
			'email'					=> array('{EMAIL}'		=> '$1', '{DESCRIPTION}'	=> '$2')
		);
}
Da dieses aber nur mit BBC-Tags umschlossenen Links funktioniert, wäre die folgende Änderung ebenfalls zu empfehlen:

------ URL-TAG erzwingen ---
--- Öffne ---
includes/functions_content.php

--- Suche und lösche ---

Code: Alles auswählen

		case MAGIC_URL_LOCAL:
			$tag			= 'l';
			$relative_url	= preg_replace('/[&?]sid=[0-9a-f]{32}$/', '', preg_replace('/([&?])sid=[0-9a-f]{32}&/', '$1', $relative_url));
			$url			= $url . '/' . $relative_url;
			$text			= $relative_url;

			// this url goes to http://domain.tld/path/to/board/ which
			// would result in an empty link if treated as local so
			// don't touch it and let MAGIC_URL_FULL take care of it.
			if (!$relative_url)
			{
				return $whitespace . $orig_url . '/'; // slash is taken away by relative url pattern
			}
		break;

		case MAGIC_URL_FULL:
			$tag	= 'm';
			$text	= $short_url;
		break;

		case MAGIC_URL_WWW:
			$tag	= 'w';
			$url	= 'http://' . $url;
			$text	= $short_url;
		break;

		case MAGIC_URL_EMAIL:
			$tag	= 'e';
			$text	= $short_url;
			$url	= 'mailto:' . $url;
		break;
bzw. kommentiere diesen Bereich aus:

Code: Alles auswählen

/*
...
*/
Wenn du das auch für eMails haben möchtest, dann mußt du dich nochmal kurz melden, da dafür noch ein paar Stellen mehr zu ändern sind.

Verfasst: 14.11.2008 22:41
von Tharuel
Danke. Funktioniert alles wunderbar. ^^

Verfasst: 16.12.2008 17:28
von Nordys
Hallo :)

habe noch eine frage dazu, soweit funktioniert das nur kann man das so machen, das die links in der Sigantur sichtbar beleiben? Nur die in den beiträgen sollen verschwinden...

Liebe grüße Nordys