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) et d'une balise [imgi][/imgi] similaire pour les images.
- 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.3 (17/08/2005)
Compatibilité phpBB : 2.0.17
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].
1.2 (20/07/2005) : Adaptation pour la version 2.0.17 de phpBB et remplacement des expressions rationelles reconnaissant les lien par des expressions similaires à celle de la balise URL version 2.0.17.
1.3 (17/08/2005) : Correction d'un bug concernant les images internes.
Dans "includes/bbcodes.php" :
Code :
#
# Trouver
#
// [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix).
$patterns[] = "#\[url=((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url4'];
#
# Ajouter après
#
// DEBUT MOD Liens internes
$patterns[] = "#\[imgi:$uid\]([\w\#$%&~/.\-;:=,?@\[\]+]*?)\[/imgi:$uid\]#i";
$replacements[] = $bbcode_tpl['img'];
$patterns[] = "#\[urli:$uid=([\w\#$%&~/.\-;:=,?@\[\]+]*?)\](.*?)\[/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', '\\1') . '[/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