Affichage :
Le laboratoire de Darathor Index du Forum

Le laboratoire de Darathor

Ressources diverses, principalement sur les fourms phpBB
[MOD] Liens internes (1.4)

Poster un nouveau sujet Répondre au sujet

Rechercher dans ce sujet :
Messages
Darathor Sexe : Masculin
Site Admin
Membre

Inscrit le : 02 Nov 2003
Messages : 1101
Localisation : Strasbourg
MessagePosté le : 04 Mar 2007 16:08
Masquer ce messageAfficher ce message
Répondre en citantAjouter à liste des messages à citerRetirer de la liste des messages à citer
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 fonctionnalité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 messages ou les sujets).
- 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.4 (04/03/2007)
Compatibilité phpBB : 2.0.22

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 rationnelles 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.
1.4 (04/03/2007) : Correction d'un bug qui faisait que les adresse en fin de message étaient ignorées.



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

Revenir en haut Aller en bas
Hors ligne | Profil | MP | E-mail | Site web
  Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum