Darathor
Citation :
But :Permet de transformer les liens internes au forum en liens relatifs afin d'éviter les liens morts en cas de changement d'adresse. Le fonctionalités implémentées sont les suivantes :
- ajout d'une balise pour "url interne" qui prend en argument une adresse relative à la racine du site (ex : posting.php?mode=reply&t=93742).
- conversion automatique des adresse internes en balises urli (ça marche avec n'importe quel lien interne au forum, pas seulement les posts ou les topics).
- quand le lien est collé tel quel et non sur un texte, le lien visible est placé sur un texte par défaut "~lien~". Ce texte par défaut est modifiable dans le fichier de langue.
Auteur : Darathor (darathor@free.fr)
Version : 1.1 (24/06/2005)
Compatibilité phpBB : 2.0.15
Changements :
1.1 (24/06/2005) : Correction d'un bug qui posait des problèmes lors de l'utilisation de la balise [img] avec une adresse interne. La balise [imgi] a été ajoutée et est une transposition de la balise [urli].
Dans "includes/bbcodes.php" :
Code :
#
# Trouver
#
// [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix).
$patterns[] = "#\[url=((www|ftp)\.[^ \"\n\r\t<]*?)\]([^?].*?)\[/url\]#i";
$replacements[] = $bbcode_tpl['url4'];
#
# Ajouter après
#
// DEBUT MOD Liens internes
$patterns[] = "#\[imgi:$uid\]([^?].*?)\[/imgi:$uid\]#i";
$replacements[] = $bbcode_tpl['img'];
$patterns[] = "#\[urli:$uid=(.*?)\](.*?)\[/urli:$uid\]#is";
$replacements[] = $bbcode_tpl['url3'];
// FIN MOD Liens internes
#
# Trouver
#
// [i] and [/i] for italicizing text.
$text = preg_replace("#\[i\](.*?)\[/i\]#si", "[i:$uid]\\1[/i:$uid]", $text);
#
# Ajouter après
#
// DEBUT MOD Liens internes
global $board_config, $lang;
$text = preg_replace("#\[img\]((http|ftp|https|ftps)://)" . $board_config['server_name'] . $board_config['script_path'] . "([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))\[/img\]#sie", "'[imgi:$uid]' . str_replace(' ', '%20', '\\3') . '[/imgi:$uid]'", $text);
$text = preg_replace("#\[url=(http|https)://" . $board_config['server_name'] . $board_config['script_path'] . "([^ \"\n\r\t<]*?)\](.*?)\[/url\]#is", "[urli:$uid=\\2]\\3[/urli:$uid]", $text);
$text = preg_replace("#\[url\](http|https)://" . $board_config['server_name'] . $board_config['script_path'] . "([^ \"\n\r\t<]*?)\[/url\]#is", "[urli:$uid=\\2]" . $lang['LiIn_titre_defaut'] . "[/urli:$uid]", $text);
$text = preg_replace("#(\s)(http|https)://" . $board_config['server_name'] . $board_config['script_path'] . "([^ \"\n\r\t<]*?)(\s)#is", "\\1[urli:$uid=\\3]" . $lang['LiIn_titre_defaut'] . "[/urli:$uid]\\4", $text);
$text = preg_replace("#\[imgi\]([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))\[/imgi\]#sie", "'[imgi:$uid]' . str_replace(' ', '%20', '\\3') . '[/imgi:$uid]'", $text);
$text = preg_replace("#\[urli=([^ \"\n\r\t<]*?)](.*?)\[/urli\]#is", "[urli:$uid=\\1]\\2[/urli:$uid]", $text);
// FIN MOD Liens internes
Dans "lang_main.php" :
Code :
#
# Trouver
#
?>
#
# Ajouter avant
#
// DEBUT MOD Liens internes
$lang['LiIn_titre_defaut'] = "~lien~";
// FIN MOD Liens internes