Brauche Hilfe zur BBCode Erweiterung

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Stoebi
Beiträge: 447
Registriert: Do 24.Feb, 2005 16:35
Wohnort: Berlin
Kontaktdaten:

Brauche Hilfe zur BBCode Erweiterung

Beitrag von Stoebi »

Deine phpBB Version: 2.0.15
Typ Deines phpBB Forums: Premodded phpBB
MODs: Ja
Dein Wissensstand: Einsteiger
Link zu Deinem Forum: http://komsomolsk.spec-f.de

PHP Version: 4.3.10
MySQL Version: 4.1.10


Was hast Du gemacht, bevor das Problem aufgetreten ist?
includes/bbcode.php

Code: Alles auswählen

function make_clickable($text)
{
	$text = preg_replace('#(script|about|applet|activex|chrome):#is', "\\1:", $text);
	// pad it with a space so we can match things at the start of the 1st line.
	$ret = ' ' . $text;
	
	// matches an "xxxx://yyyy" URL at the start of a line, or after a space.
	// xxxx can only be alpha characters.
	// yyyy is anything up to the first space, newline, comma, double quote or <
	if (stristr($ret,"spec-f.de"))
	{
		$ret = preg_replace("#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#is", "\\1<a href=\"\\2\" target=\"_self\">\\2</a>", $ret);
	}
		else
		{
			$ret = preg_replace("#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#is", "\\1<a href=\"http://komsomolsk.spec-f.de/rlink/rlink.php?url=http://navig8.to/?\\2\" target=\"_blank\">\\2</a>", $ret);
		}
	// matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing
	// Must contain at least 2 dots. xxxx contains either alphanum, or "-"
	// zzzz is optional.. will contain everything up to the first space, newline, 
	// comma, double quote or <.
	if(!stristr($ret,"spec-f.de") ) 
	{
		$ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#is", "\\1<a href=\"http://komsomolsk.spec-f.de/rlink/rlink.php?url=http://navig8.to/?http://\\2\" target=\"_blank\">\\2</a>", $ret);
	}
		else
		{
			$ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#is", "\\1<a href=\"http://\\2\" target=\"_self\">\\2</a>", $ret);
		}

	// matches an email@domain type address at the start of a line, or after a space.
	// Note: Only the followed chars are valid; alphanums, "-", "_" and or ".".
	$ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $ret);

	// Remove our padding..
	$ret = substr($ret, 1);

	return($ret);
}
[/i]


Was hast Du bereits versucht um das Problem zu lösen?
Ich habe versucht, eine for Schleife einzufügen, und daran Sch... ich zu scheitern:

Code: Alles auswählen

function make_clickable($text)
{
	$text = preg_replace('#(script|about|applet|activex|chrome):#is', "\\1:", $text);
	// pad it with a space so we can match things at the start of the 1st line.
	$ret = ' ' . $text;
	
	// matches an "xxxx://yyyy" URL at the start of a line, or after a space.
	// xxxx can only be alpha characters.
	// yyyy is anything up to the first space, newline, comma, double quote or <
	for ($i=0; !$ret; $i++)
	{
	if (stristr($ret,"spec-f.de"))
	{
		$ret = preg_replace("#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#is", "\\1<a href=\"\\2\" target=\"_self\">\\2</a>", $ret);
	}
		else
		{
			$ret = preg_replace("#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#is", "\\1<a href=\"http://komsomolsk.spec-f.de/rlink/rlink.php?url=http://navig8.to/?\\2\" target=\"_blank\">\\2</a>", $ret);
		}
	// matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing
	// Must contain at least 2 dots. xxxx contains either alphanum, or "-"
	// zzzz is optional.. will contain everything up to the first space, newline, 
	// comma, double quote or <.
	if(!stristr($ret,"spec-f.de") ) 
	{
		$ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#is", "\\1<a href=\"http://komsomolsk.spec-f.de/rlink/rlink.php?url=http://navig8.to/?http://\\2\" target=\"_blank\">\\2</a>", $ret);
	}
		else
		{
			$ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#is", "\\1<a href=\"http://\\2\" target=\"_self\">\\2</a>", $ret);
		}
	}
	// matches an email@domain type address at the start of a line, or after a space.
	// Note: Only the followed chars are valid; alphanums, "-", "_" and or ".".
	$ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $ret);

	// Remove our padding..
	$ret = substr($ret, 1);

	return($ret);
}
[/i]



Fehlerbeschreibung und Nachricht

Guten Morgen,

die Idee hinter dieser Code Erweiterung ist, dass Links die innerhalb meines Forum zeigen,
nicht in einem extra Fenster geöffnet werden und auch nicht von rlink.php geöffnet werden.

Das funktioniert einwandfrei, aber nur, wenn pro Post nur externe oder nur interne Links
angegeben werden.

Zum Beispiel:

Ein Post hat folgende Links:
http://www.oxpus.de
und oder
www.phpbb.com

Die werden dann so korrekt aufgerufen:
[]http://komsomolsk.spec-f.de/rlink/rlink ... .phpbb.com
bzw.
[]http://komsomolsk.spec-f.de/rlink/rlink ... w.oxpus.de


Ein Post mit Links, die innerhalb meines Forum zeigen funktioniert auch korrekt:
http://komsomolsk.spec-f.de
und oder
www.spec-f.de

Es werden beim Anklicken die Links http://komsomolsk.spec-f.de bzw. www.spec-f.de ohne rlink.php weiter geleitet und im selben Browser Fenster geöffnet.

Funktioniert wie schon erwähnt tadellos. Das Problem ist, dass nur pro Post, egal wieviele URLs
in diesem Post angegeben wurden, bbcode.php nur 1x ausgeführt wird.

Zum Beispiel hat ein Post folgende URLs:
http://www.oxpus.de
und
http://spec-f.de/mp

Bei einem Klick auf diese Links http://www.oxpus.de und oder http://spec-f.de/mp werde diese jeweils im eigenen Browser geöffnet.

Beim Anklicken des Link von oxpus müsste aber so weitergeleitet werden:
http://komsomolsk.spec-f.de/rlink/rlink ... w.oxpus.de

Und wie da jetzt die richtige Schleife reinsetzen?

Ein weiteres Problem sehe ich noch in so der [url] und [url=xxxx Abfrage, aber dazu
komme ich später, wenn dieses Problem vielleicht beseitigt werden kann.


Gruß Stöbi


Hmmm, ich vermisse hier eine Vorschau. Ich kann nur Absenden.
Zuletzt geändert von Stoebi am So 05.Jun, 2005 16:34, insgesamt 1-mal geändert.
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Warum baust du nicht einfach den Local Links von netclectic ein?
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Stoebi
Beiträge: 447
Registriert: Do 24.Feb, 2005 16:35
Wohnort: Berlin
Kontaktdaten:

Beitrag von Stoebi »

[quote="AmigaLink - Di 17.Mai, 2005 05:41";p="32142"]Warum baust du nicht einfach den Local Links von netclectic ein?[/quote]

Hi,

vielen Dank, den MOD kannte ich noch gar nicht. Vielleicht ist das die Lösung aller meiner Probleme.
Ähm, Boardprobleme ;)

Ich melde mich wieder.


Gruß Stöbi


Edit - Nachtrag:
Hmmm

1te Problem was ich habe, ich soll das finden:

Code: Alles auswählen

$bbcode_tpl['url1'] = str_replace('{URL}', '\1\2', $bbcode_tpl['url']);
Haben tue ich nur diesen Code:

Code: Alles auswählen

$bbcode_tpl['url1'] = str_replace('{URL}', '\\4', $bbcode_tpl['url']);
Hab dann trotzdem mal den Part darüber eingefügt:

Code: Alles auswählen

    // MOD LOCAL URL BEGIN 
	$bbcode_tpl['url_local1'] = str_replace('{URL}', '\\1\\2\\3', $bbcode_tpl['url_local']);
	$bbcode_tpl['url_local1'] = str_replace('{DESCRIPTION}', '\\1\\2\\3', $bbcode_tpl['url_local1']);

	$bbcode_tpl['url_local2'] = str_replace('{URL}', 'http://\\1\\2', $bbcode_tpl['url_local']);
	$bbcode_tpl['url_local2'] = str_replace('{DESCRIPTION}', '\\1\\2', $bbcode_tpl['url_local2']);

	$bbcode_tpl['url_local3'] = str_replace('{URL}', '\\1\\2\\3', $bbcode_tpl['url_local']);
	$bbcode_tpl['url_local3'] = str_replace('{DESCRIPTION}', '\\4', $bbcode_tpl['url_local3']);
	
	$bbcode_tpl['url_local4'] = str_replace('{URL}', 'http://\\1\\2', $bbcode_tpl['url_local']);
	$bbcode_tpl['url_local4'] = str_replace('{DESCRIPTION}', '\\3', $bbcode_tpl['url_local4']);
    // MOD LOCAL URL END
Funktionieren tut es nur mit [url] oder [url= Angabe, und es wird auch mit rlink.php
weiter geleitet. Nicht so die ideale Lösung. :(


Gruß Stöbi
Zuletzt geändert von Stoebi am So 05.Jun, 2005 16:34, insgesamt 2-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

So schaut meine Funktion aus:

Code: Alles auswählen

function make_clickable($text)
{
	global $userdata, $lang, $phpEx, $u_login_logout;
	$text = preg_replace('#(script|about|applet|activex|chrome):#is', "\\1:", $text);

	// pad it with a space so we can match things at the start of the 1st line.
	$ret = ' ' . $text;

	//
	// Hide links from unregistered users mod
	//
	if ( !$userdata['session_logged_in'] )
	{
		// The thing we replace links with. I like using a quote like box
		$replacer = ' </span><br /><table width="40%" cellspacing="1" cellpadding="3" border="0" align="left"><tr><td class="quote">';
		$replacer .= $lang['Links_Allowed_For_Registered_Only'] . '<br />';
		$replacer .= sprintf($lang['Get_Registered'], "<a href=\"" . append_sid('profile.' . $phpEx . '?mode=register') . "\">", "</a>");
		$replacer .= sprintf($lang['Enter_Forum'], "<a href=\"" . append_sid($u_login_logout) . "\">", "</a>");
		$replacer .= '</td></tr></table><br /><span class="postbody">';

		// matches an "xxxx://yyyy" URL at the start of a line, or after a space.
		// xxxx can only be alpha characters.
		// yyyy is anything up to the first space, newline, comma, double quote or <
		$ret = preg_replace("#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#is", $replacer, $ret);

		// matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing
		// Must contain at least 2 dots. xxxx contains either alphanum, or "-"
		// zzzz is optional.. will contain everything up to the first space, newline, 
		// comma, double quote or <.
		$ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#is", $replacer, $ret);

		// matches an email@domain type address at the start of a line, or after a space.
		// Note: Only the followed chars are valid; alphanums, "-", "_" and or ".".
		$ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", $replacer, $ret);
	}
	else
	{
		//matches an "xxxx://yyyy" URL at the start of a line, or after a space.
		// xxxx can only be alpha characters.
		// yyyy is anything up to the first space, newline, comma, double quote or <
		$ret = preg_replace("#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#is", "\\1<a href=\"http://www.oxpus.de/rlink/rlink.php?url=\\2\" target=\"_blank\" class=\"postlink\">\\2</a>", $ret);

		// matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing
		// Must contain at least 2 dots. xxxx contains either alphanum, or "-"
		// zzzz is optional.. will contain everything up to the first space, newline,
		// comma, double quote or <.
		$ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#is", "\\1<a href=\"http://www.oxpus.de/rlink/rlink.php?url=\\2\" target=\"_blank\" class=\"postlink\">\\2</a>", $ret);

		// matches an email@domain type address at the start of a line, or after a space.
		// Note: Only the followed chars are valid; alphanums, "-", "_" and or ".".
		$ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\" class=\"postlink\">\\2@\\3</a>", $ret);
	}
	//
	// Hide links from unregistered users mod
	//

	$ret = fix_local_urls($ret);

	// Remove our padding..
	$ret = substr($ret, 1);

	return($ret);
}
Die Domain ist natürlich zu ersetzen.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Stoebi
Beiträge: 447
Registriert: Do 24.Feb, 2005 16:35
Wohnort: Berlin
Kontaktdaten:

Beitrag von Stoebi »

Hi,

die Funktion fehlt:

$ret = fix_local_urls($ret)

Fatal error: Call to undefined function: fix_local_urls() in D:\apachefriends\xampp\htdocs\board\includes\bbcode.php on line 1107


Muss ich denn trotzdem noch den Local MOD von net.... einbauen?



Gruß Stöbi


Scheint wohl ein MOD zu sein, dieser unregistered user MOD, oder?


Ich hab diesen auf phpbb.com gefunden, also diese Funktion betreffend:
http://www.phpbb.com/phpBB/viewtopic.php?t=36536

Aber alles irgendwie unbefriedigend.
Es wird immer noch rlink.php mit übergeben und es funktioniert nur wenn man vor einer URL angibt bzw. [url= ....]xx

externe Links werden auch dann _self weiter geleitet, wenn sie in bzw. stehen.

Gruß Stöbi


EDIT:
Ich hab mir mal erlaubt, die Dateien bbcode.php und bbcode.tpl mit anzuhängen.
Zuletzt geändert von Stoebi am So 05.Jun, 2005 16:33, insgesamt 5-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ah hier noch die fehlende Funktion:

Code: Alles auswählen

/**
 * This function is used to remove the target="_blank" from any url that is posted
 * that matches the server name from the $board_config array. That way of people want
 * to link internally from one post to another, they won't open new windows all the
 * time. Only external links will open a new target window.
 * Mod Author: Dave Rathbun (drathbun@aol.com)
 */
function fix_local_urls($text)
{
   global $board_config;

   // match for url local links. If you are running multiple phpBB forums
   // on the same server, you might want to use the following line instead:
   // $local_url = '<a href="http://' . strtolower($board_config['server_name']) . strtolower($board_config['script_path']);

   // note that strtolower is ONLY used for comparison, the actual text of the URL is not changed
   $local_url = '<a href="http://' . strtolower($board_config['server_name']);

   // Find first local link in the post text, if any. If none, remainder of the
   // code is skipped.
   $start_url = strpos(strtolower($text), $local_url);

   // If any are found, process, otherwise drop out of function. Note that since
   // the first step done before processing the post text is to add one extra space,
   // we don't need to worry about the case where a url might be in the first position.
   // It won't. :-)

   while ($start_url)
   {
	// first, identify the end of the URL by locating the closing >
	$last_found_pos = $start_url + 1;
	$end_url = strpos ($text, '>', $last_found_pos);
	$url_len = $end_url - $start_url + 1;

	// get copy of URL from <a href=... to closing >
	$my_url = substr($text, $start_url, $url_len);

	// replace target with null string
	if (strpos($my_url, 'http://www.oxpus.de/rlink/rlink.php?url=http://www.oxpus.de/'))
	{
		$my_local_url = str_replace('target="_blank"', '', $my_url);
		$my_local_url = str_replace('http://www.oxpus.de/rlink/rlink.php?url=', '', $my_local_url);
	}
	else
	{
		$my_local_url = $my_url;
	}

	// replace old URL with new URL in post text. Note that while the
	// comparison was done with strtolower() to be sure to find all matches,
	// the actual URL text is not changed in any way. Only the target.
	$text = str_replace($my_url, $my_local_url, $text);

	// advance by length of URL - length of "target" string, check for next local URL
	$start_url = @strpos(strtolower($text), $local_url, $last_found_pos + $url_len - 16);
   }

   return $text;
}
Irgendwo ans Ende vor ?> in der bbcode.php einsetzen.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Stoebi
Beiträge: 447
Registriert: Do 24.Feb, 2005 16:35
Wohnort: Berlin
Kontaktdaten:

Beitrag von Stoebi »

[quote="oxpus - Di 17.Mai, 2005 10:57";p="32160"]Ah hier noch die fehlende Funktion:

Code: Alles auswählen

/**
 * This function is used to remove the target="_blank" from any url that is posted
 * that matches the server name from the $board_config array. That way of people want
 * to link internally from one post to another, they won't open new windows all the
 * time. Only external links will open a new target window.
 * Mod Author: Dave Rathbun (drathbun@aol.com)
 */
function fix_local_urls($text)
{
   global $board_config;

   // match for url local links. If you are running multiple phpBB forums
   // on the same server, you might want to use the following line instead:
   // $local_url = '<a href="http://' . strtolower($board_config['server_name']) . strtolower($board_config['script_path']);

   // note that strtolower is ONLY used for comparison, the actual text of the URL is not changed
   $local_url = '<a href="http://' . strtolower($board_config['server_name']);

   // Find first local link in the post text, if any. If none, remainder of the
   // code is skipped.
   $start_url = strpos(strtolower($text), $local_url);

   // If any are found, process, otherwise drop out of function. Note that since
   // the first step done before processing the post text is to add one extra space,
   // we don't need to worry about the case where a url might be in the first position.
   // It won't. :-)

   while ($start_url)
   {
	// first, identify the end of the URL by locating the closing >
	$last_found_pos = $start_url + 1;
	$end_url = strpos ($text, '>', $last_found_pos);
	$url_len = $end_url - $start_url + 1;

	// get copy of URL from <a href=... to closing >
	$my_url = substr($text, $start_url, $url_len);

	// replace target with null string
	if (strpos($my_url, 'http://www.oxpus.de/rlink/rlink.php?url=http://www.oxpus.de/'))
	{
		$my_local_url = str_replace('target="_blank"', '', $my_url);
		$my_local_url = str_replace('http://www.oxpus.de/rlink/rlink.php?url=', '', $my_local_url);
	}
	else
	{
		$my_local_url = $my_url;
	}

	// replace old URL with new URL in post text. Note that while the
	// comparison was done with strtolower() to be sure to find all matches,
	// the actual URL text is not changed in any way. Only the target.
	$text = str_replace($my_url, $my_local_url, $text);

	// advance by length of URL - length of "target" string, check for next local URL
	$start_url = @strpos(strtolower($text), $local_url, $last_found_pos + $url_len - 16);
   }

   return $text;
}
Irgendwo ans Ende vor ?> in der bbcode.php einsetzen.[/quote]


Danke dir, habe ich gemacht, aber es ist seltsam.

mit wird bei mir die Seite

[url]http://www.phpbb.com


im eigenen Fenster geöffnet. Hast du vielleicht in deiner Template (bbcode.tpl) vielleicht noch
entsprechende Einträge?


Gruß Stöbi
Zuletzt geändert von Stoebi am So 05.Jun, 2005 16:32, insgesamt 1-mal geändert.
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Alse erstes mal, die URL braucht man garnicht angeben.#

Code: Alles auswählen

      $ret = preg_replace("#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#is", "\\1<a href=\"rlink/rlink.php?url=\\2\" target=\"_blank\" class=\"postlink\">\\2</a>", $ret);
und

Code: Alles auswählen

      $ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#is", "\\1<a href=\"rlink/rlink.php?url=\\2\" target=\"_blank\" class=\"postlink\">\\2</a>", $ret);
reichen vollkommen aus. :)

Und meine bbcode.tpl hat noch diesen eintrag:

Code: Alles auswählen

<!-- BEGIN url --><a href="rlink/rlink.php?url={URL}" target="_blank" class="postlink">{DESCRIPTION}</a><!-- END url -->
<!-- BEGIN url_local --><a href="{URL}" target="_self" class="postlink">{DESCRIPTION}</a><!-- END url_local -->
Dann klappt es auch mit den links die nicht in [ url ] gefasst sind. :)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Stoebi
Beiträge: 447
Registriert: Do 24.Feb, 2005 16:35
Wohnort: Berlin
Kontaktdaten:

Beitrag von Stoebi »

Irgendwie komme ich da völiig durcheinander.

Welche Mods sind denn in der BBCode.php bei dir installiert?

Ich hab jetzt die Modificationen von Oxpus und nun von dir (letzten Beitrag)
drin. Und es klappt immer noch nicht.

Muss ich jetzt noch das Local Links zusätzlich einbauen, überhaupt einbauen,
einbauen und dabei von Oxpus eine Modifikation ändern?

Denn momentan ist es so, dass nun alle Links mittel rlink und in einem Window geöffnet werden.

Gruß Stöbi
Zuletzt geändert von Stoebi am So 05.Jun, 2005 16:32, insgesamt 1-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Baue den Local Links Mod ein und ersetze dann die make_clickable() mit meinem Code.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Stoebi
Beiträge: 447
Registriert: Do 24.Feb, 2005 16:35
Wohnort: Berlin
Kontaktdaten:

Beitrag von Stoebi »

[quote="oxpus - Di 17.Mai, 2005 13:14";p="32169"]Baue den Local Links Mod ein und ersetze dann die make_clickable() mit meinem Code.[/quote]


Die schwere Geburt habe ich endlich, dank eurer Hilfe, geschafft. *puh *schwitz
Ich war schon echt am verzweifeln.

Ich habe aber ein Problem noch, und ich denke dass dürfte bei euch allen auch nicht funktionieren.

Eure Seite

Beispiel:
Oxpus

Mit Klick auf Oxpus dürfte eigentlich kein extra Fenster aufgemacht werden.
Wie kann man das auch noch umgehen?


Gruß Stöbi


Edit:
@Oxpus
Ich hab mal eine Frage zu der Funktion fix_local_urls($text). Was bezweckt dieser Part?

Code: Alles auswählen

   // replace target with null string
   if (strpos($my_url, 'http://komsomolsk.spec-f.de/rlink/rlink.php?url=http://navig8.to/?http://komsomolsk.spec-f.de/'))
   
   { 
      $my_local_url = str_replace('target="_blank"', '', $my_url);
      $my_local_url = str_replace('http://komsomolsk.spec-f.de/rlink/rlink.php?url=http://navig8.to/?', '', $my_local_url);
   }
   else
   {
      $my_local_url = $my_url;
   }

Ich verstehe den Sinn darin nicht. Gruß Stöbi
Zuletzt geändert von Stoebi am So 05.Jun, 2005 16:32, insgesamt 3-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Das ein neues Ziel sprich Fenster geöffnet wird.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Stoebi
Beiträge: 447
Registriert: Do 24.Feb, 2005 16:35
Wohnort: Berlin
Kontaktdaten:

Beitrag von Stoebi »

[quote="oxpus - Di 17.Mai, 2005 14:11";p="32180"]Das ein neues Ziel sprich Fenster geöffnet wird.[/quote]

Ist denn der Part bzw. die Funktion überhaupt noch sinnvoll? Weil ich kann da eingeben, was ich will.
Also ob komsomolsk, oder nur http://

Keine Änderung tut sich da auf.


Gruß Stöbi
Zuletzt geändert von Stoebi am So 05.Jun, 2005 16:31, insgesamt 1-mal geändert.
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Stoebi hat geschrieben:Ich habe aber ein Problem noch, und ich denke dass dürfte bei euch allen auch nicht funktionieren.

Eure Seite

Beispiel:
Oxpus

Mit Klick auf Oxpus dürfte eigentlich kein extra Fenster aufgemacht werden.
Wie kann man das auch noch umgehen?
Ich hab das Problem nicht! => http://www.amigalink.de/phpbb2/viewtopic.php?t=167
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Stoebi
Beiträge: 447
Registriert: Do 24.Feb, 2005 16:35
Wohnort: Berlin
Kontaktdaten:

Beitrag von Stoebi »

[quote="AmigaLink - Di 17.Mai, 2005 15:17";p="32196"]
Stoebi hat geschrieben:Ich habe aber ein Problem noch, und ich denke dass dürfte bei euch allen auch nicht funktionieren.

Eure Seite

Beispiel:
Oxpus

Mit Klick auf Oxpus dürfte eigentlich kein extra Fenster aufgemacht werden.
Wie kann man das auch noch umgehen?
Ich hab das Problem nicht! => http://www.amigalink.de/phpbb2/viewtopic.php?t=167[/quote]

Ja, das stimmt, da hat sich wieder ein Denkfehler bei mir eingeschlichen.

Die Variable $_SERVER['SERVERNAME'] ist ja auch bei mir komsomolsk.spec-f.de und nicht spec-f.de/mp.

Da bin ich noch am grübeln, wie ich das anstelle, dass auf spec-f.de bzw. auch auf *.spec-f.de reagiert wird. Momentan wird ausschliesslich nur bei komsomolsk.spec-f.de bzw. komsomolsk.spec-f.de/xxxxx im eigenen Window geöffnet. Und natürlich nun auch ohne rlink.php dank eurer Hilfe.

Meine weitere Frage wurde leider noch nicht beantwortet.
Da ich Local Links installiert habe, ist eigentlich die Funktion von Oxpus aus seinem Beitrag #6 noch notwendig?

Denn der Part aus meinem Beitrag #11 und #13 zeigt keine Wirkung.


Gruß Stöbi
Zuletzt geändert von Stoebi am So 05.Jun, 2005 16:31, insgesamt 3-mal geändert.
Stoebi
Beiträge: 447
Registriert: Do 24.Feb, 2005 16:35
Wohnort: Berlin
Kontaktdaten:

Beitrag von Stoebi »

[quote="AmigaLink - Di 17.Mai, 2005 16:41";p="32205"]Der Local Links benötigt die von Oxpus gepostete Funktion nicht. Ich vermute mal das oxpus hier einen anderen mod einsetzt um locale links zu erkennen (es gibt nämlich noch einen).

// EDIT
Da bin ich noch am grübeln, wie ich das anstelle, dass auf spec-f.de bzw. auch auf *.spec-f.de reagiert wird. Momentan wird ausschliesslich nur bei komsomolsk.spec-f.de bzw. komsomolsk.spec-f.de/xxxxx im eigenen Window geöffnet.
Damit bin ich auch noch am kämpfen, hab mich aber noch nicht näher damit befasst.
Ich nutze ja 3 verschiedene Domainendungen (.info .net .de) und momentan erkennt der Lokal Links nur die die endung als lokal, die der jeweilige user aufgerufen hat.
(Also wenn man über .info kommt (was die meisten tun), werden nur .info links als lokal erkannt). :([/quote]


Ah, vielen Dank, das hilft mir ungemein weiter.
Dein Problem habe ich mal probiert nachzuvollziehen. Du hast echt Recht. Bischen unschön.
Ich versuche mich daran nun auch schon eine ganze Weile.

Ich habe das mal so probiert:

Code: Alles auswählen

 $local_patterns[1] = "#\[url\]([a-z]+?://){1}(".local.")([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]*)\[/url\]#si";
	echo $local_patterns[1];
	$local_replacements[1] = $bbcode_tpl['url_local1'];
Merkwürdig ist, dass hier nur local ausreicht, es wird auch im selben Fenster und ohne rlink geöffnet. Also anstelle ".$_SERVER["SERVER_NAME"].") dann (".local."). Es reicht auch
(".lo.") für localhost, aber auch (".l."). Funktioniert alles. Ändere ich es aber in (".la."),
ist es eine Weiterleitung und wird im extra Fenster geöffnet. Völlig logisch.

Vielleicht helfen die Infos dir weiter. Mir ist schon klar, das dann bei so einer Eingabe von
(".la.") dann Links die mit la anfangen, im eigenen Browser Fenster und ohne rlink geöffnet
werden. Aber ich muss das alles ausprobieren, sonst lerne ich ja nicht dazu.

Mal schauen, ob ich weiter komme. Muss ja schliesslich mit Domain, TLD und Subdomain funktionieren.


Gruß Stöbi
Zuletzt geändert von Stoebi am So 05.Jun, 2005 16:31, insgesamt 2-mal geändert.
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Merkwürdig ist, dass hier nur local ausreicht, es wird auch im selben Fenster und ohne rlink geöffnet. Also anstelle ".$_SERVER["SERVER_NAME"].") dann (".local."). Es reicht auch
(".lo.") für localhost, aber auch (".l."). Funktioniert alles. Ändere ich es aber in (".la."),
ist es eine Weiterleitung und wird im extra Fenster geöffnet. Völlig logisch.
^1 Eigentlich müstest du mit diesen versuchen einen error provoziert haben! ^2

Man muss $_SERVER["SERVER_NAME"] gegen eine Variable ersetzen die man aus $_SERVER["SERVER_NAME"] erstellt hat und deren inhalt um die TLD gekürzt wurde. Und ausserdem müssen die Regulären Ausdrücke noch um eine prüfung der möglichen TLDs erweitert werden!
Soviel zur theorie. Wie man das umsetzt hab ich mir noch nicht näher durch den Kopf gehen lassen, denn ich hab momentan noch ein paar andere sachen zu proggen.
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

Habe den rLink Mod eingebaut und den Lokal Links MOD und jetzt ist das problem so, das wenn ich eine URL eingib die auf eine fremde seite geleitet wird z.B.
Oxpus.de
Wird der rLink verwendet und in ein neues Fenster geöffnet das soll auch sein so.
Aber wenn ich jetzt eine URL eingebe die auf meine Seite verweisst, also
meineseite.de
Wird auch der rLink und neues Fenster benutzt aber ich will da haben das dann es im selbe fenster geöffnet wird und nicht als rLink.

Das es also nur bei fremde Seite wirklich der fall ist...

Weil meineseite.de Meineseite.de ist nicht blabla lol schwachsin wär das dann.

EDIT: bei den eine Link von AmgiaLink da funktioniert es da werde nur fremde Seite in neues Fenster geöffnet mit dem rLink
Zuletzt geändert von Christian_N am Di 24.Mai, 2005 19:39, insgesamt 1-mal geändert.
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Welche machen Probleme?
Die mit, oder die ohne BBCode?

ohne:
http://www.amigalink.de
www.amigalink.de

mit:
[url=http://www.amigalink.de]AmigaLink.de[/url]
[url]www.amigalink.de[/url]
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

mit bbcode ist es dieser code in den du den rlink nicht angeben darfst:

Code: Alles auswählen

    // MOD LOCAL URL BEGIN 
    // do any local urls first... 
    // [url]xxxx://www.phpbb.com[/url] code.. 
	$local_patterns[1] = "#\[url\]([a-z]+?://){1}(".$_SERVER["SERVER_NAME"].")([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]*)\[/url\]#si";
	$local_replacements[1] = $bbcode_tpl['url_local1'];                       

	// [url]www.phpbb.com[/url] code.. (no xxxx:// prefix).
	$local_patterns[2] = "#\[url\](".$_SERVER["SERVER_NAME"].")([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]*)\[/url\]#si";
	$local_replacements[2] = $bbcode_tpl['url_local2'];

	// [url=xxxx://www.phpbb.com]phpBB[/url] code..
	$local_patterns[3] = "#\[url=([a-z]+?://){1}(".$_SERVER["SERVER_NAME"].")([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]*)\](.*?)\[/url\]#si";
	$local_replacements[3] = $bbcode_tpl['url_local3'];

	// [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix).
	$local_patterns[4] = "#\[url=(".$_SERVER["SERVER_NAME"].")([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]*)\](.*?)\[/url\]#si";
	$local_replacements[4] = $bbcode_tpl['url_local4'];
    
    $text = preg_replace($local_patterns, $local_replacements, $text); 
    // now with the local urls done, it's safe to do any external urls 
    // MOD LOCAL URL END 
Und ohne ist es dieser:

Code: Alles auswählen

// MOD LOCAL URL BEGIN
// match a local URL and replace with a target="_self" href 
$ret = preg_replace("#([\n ])([a-z]+?)://(".$_SERVER["SERVER_NAME"].")((?:/[^\t <\n\r]*)?)#i", "\\1<a href=\"\\2://\\3\\4\" target=\"_self\">\\2://\\3\\4</a>", $ret); 
$ret = preg_replace("#([\n ])(".$_SERVER["SERVER_NAME"].")((?:/[^\t <\n\r]*)?)#i", "\\1<a href=\"http://\\2\\3\" target=\"_self\">\\2\\3</a>", $ret);
// MOD LOCAL URL END
Vorrausgesetzt du hast den gleichen rlink wie ich! ;)

BTW @ oxpus
Dein lokal links funktioniert auch wiedermal nicht :( und hier solltest du auch mal reinsehen. ;)

// EDIT zur info:
Das Doppelposting hab ich gemacht, weil im erstem Posting die BBCodes deaktiviert sind!

// EDIT 2
Nanu ^5
Oxpus - Schau mal in deine bbcode.tpl dort scheint etwas mit der code-box nicht zu stimmen!
(Vergleich, hier im Posting, die Schrift über den Boxen mit der unter den Boxen. ;))

// EDIT 3
Hat sich wohl erledigt. Ich sehe du bastelst gerade etwas. :D
Zuletzt geändert von AmigaLink am Di 24.Mai, 2005 20:13, insgesamt 3-mal geändert.
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

ogott zur Zeit kann man hier nichts gut lesen BBCode aus durch fehler in der bbcode.php ... tut oxpus wohl gerad was dran basteln *g*

Nun habe also mal getestet ohne und mit BBCode bei beide tut er auch bei meine Domain dann den rLink verwenden und in neues Fenster öffnen... :(

Ich muss nochmal mit dein Code schaun und hänge zu not mal die bbcode.php mit ran dann, wenn es mit dein Code ggf. net geht....
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Bei links ohne BBCode kommt noch die bbcode.tpl ins spiel, deren code ich etwas weiter oben bereits gepostet habe!
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

am beste ich hänge mal bbcode.php und bbcode.tpl an... hab irgendwie das net lösen können kannst mal bitte nachschaun?

Hab dein Code drin und in der bbcode.tpl auch das drin aber es bleibt unverändert :(

ich dank schonmal dir...
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Sorry, da muss ich leider passen. :(
  1. Hast du (mal abgesehen von den codes die ich gepostet habe) nicht den local links mod drin den ich verwende. (Den anderen kenne ich nicht!)
  2. Hast du die BBCode Box installiert!
    Wenn die installiert ist, machen viele BBCodes probleme die nicht extra für diese Box programmiert wurden! :(
    Und da ich mich mit dem code der Box nicht auskenne, kann ich leider auch nicht versuchen den mod anzupassen.
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

1. Welche benutz du den von local links?
2. jep dies hab ich muss aber auch mit dem gehn das mit den local... beim Siteimages tut er jedenfalls im selbe fenster ohne rLink öffnen...

EDIT: hab nochmal etwas ausprobiert, jetzt tut er bei fremde Links die mit BBCode erstellt wurde es so mache mit rLink und neues Fenster, bei eigene Links die meine domainname drin stehn haben werde im selbe Fenster ohne rLink geöffnet...

Aber wenn man jetzt im BBCode http://meinedomain.de also ohne www macht dann tut er ihn in eines Fenster öffne ohne rLink das sollte auch im selbe Fenster bleibe und bei http://oxpus.de sollte in neues mit rLink geöffnet werden.

Desweitere funktioniert der rLink auch nur bei Links die mit BBCode erstellt wurde, tut man ohne BBCode ein Link erstelle, so öffnet es zwar bei fremde Links im neues Fenster und bei Links die zu meine Domain gehören im selbe aber da sollte er auch bei fremde Links dann mit rLink öffnen wenn man ohne BBCode erstellen tut.

Hier nochmal die bbcode.php Datei vielleicht ist diesmal möglich was anzupassen da die Boxen BBCode erstmal rausnahm...
Zuletzt geändert von Christian_N am Di 24.Mai, 2005 22:50, insgesamt 1-mal geändert.
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Antworten