Darathor
Citation :
But : Ajoute la balise BBcode note, permettant de définir des notes placées en fin de post.
Prérequis :
- [BBCODE] Multiple BBCode MOD
Auteur : Darathor (darathor@free.fr)
Version : 1.0 DEV - A (16/08/2005)
Compatibilité phpBB : 2.0.17
Dans "includes/bbcodes.php" :
Code :
#
# Trouver la ligne commençant par
#
$EMBB_widths = array(''
#
# Dans la ligne, trouver
#
array(''
#
# Dans la ligne, ajouter après
#
,'40'
#
# Trouver la ligne commençant par
#
$EMBB_values = array(''
#
# Dans la ligne, trouver
#
array(''
#
# Dans la ligne, ajouter après
#
,'Note'
#
# Trouver
#
$bbcode_tpl['email'] = str_replace('{EMAIL}', '\\1', $bbcode_tpl['email']);
#
# Ajouter après
#
// DEBUT MOD Notes bas de post
$bbcode_tpl['note_post'] = str_replace('{NOTE_ID}', '\\1', $bbcode_tpl['note_post']);
$bbcode_tpl['note_foot'] = str_replace('{NOTE_ID}', '\\1', $bbcode_tpl['note_foot']);
$bbcode_tpl['note_post'] = str_replace('{NOTE_NUMBER}', '\\2', $bbcode_tpl['note_post']);
$bbcode_tpl['note_foot'] = str_replace('{NOTE_NUMBER}', '\\2', $bbcode_tpl['note_foot']);
$bbcode_tpl['note_foot'] = str_replace('{NOTE_TEXT}', '\\3', $bbcode_tpl['note_foot']);
// DEBUT MOD Notes bas de post
#
# Trouver
#
// [email]user@domain.tld[/email] code..
$patterns[] = "#\[email\]([a-z0-9&\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+)\[/email\]#si";
$replacements[] = $bbcode_tpl['email'];
#
# Ajouter après
#
// DEBUT MOD Notes bas de post
$patterns[] = "#\[note=(([0-9]+):$uid)\](.*?)\[/note:$uid\]#si";
$replacements[] = $bbcode_tpl['note_post'];
// Génération des notes.
$notes_matches = array();
$note_foot = $bbcode_tpl['note_separ'];
preg_match_all("#\[note=([0-9]+):$uid\](.*?)\[/note:$uid\]#si", $text, &$notes_matches);
for($i=0; $i<count($notes_matches[0]); $i++)
{
$note_foot .= preg_replace("#\[note=(([0-9]+):$uid)\](.*?)\[/note:$uid\]#si", $bbcode_tpl['note_foot'], $notes_matches[0][$i]);
}
if($note_foot != $bbcode_tpl['note_separ']) { $text .= $note_foot; }
// FIN MOD Notes bas de post
#
# Trouver
#
// [i] and [/i] for italicizing text.
$text = preg_replace("#\[i\](.*?)\[/i\]#si", "[i:$uid]\\1[/i:$uid]", $text);
#
# Ajouter après
#
// DEBUT MOD Notes bas de post
$i = 1;
$new_text = $text;
while(!($text == $new_text && $i>1))
{
$text = $new_text;
$new_text = preg_replace("#\[note(|=([0-9]?))\](.*?)\[/note\]#si", "[note=$i:$uid]\\3[/note:$uid]", $text, 1);
$i++;
}
$text = $new_text;
// FIN MOD Notes bas de post
Dans "bbcodes.tpl" :
Code :
#
# Trouver
#
<!-- BEGIN email --><a href="mailto:{EMAIL}">{EMAIL}</A><!-- END email -->
#
# Ajouter après
#
<!-- BEGIN note_post --><sup><a href="#footnote-{NOTE_ID}" id="rev-footnote-{NOTE_ID}" class="postlink">{NOTE_NUMBER}</a></sup><!-- END note_post -->
<!-- BEGIN note_separ --><br />
_________________
<!-- END note_post -->
<!-- BEGIN note_foot --><br />
<sup><a href="#rev-footnote-{NOTE_ID}" id="footnote-{NOTE_ID}" class="postlink">{NOTE_NUMBER}</a></sup> : {NOTE_TEXT}
<!-- END note_foot -->
Dans "posting_body.tpl" :
Code :
#
# Trouver la ligne commençant par
#
bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]'
#
# Dans la ligne, trouver
#
'[url]','[/url]'
#
# Dans la ligne, ajouter après
#
, '[note]', '[/note]'
Dans "lang_french.php" :
Code :
#
# Trouver
#
$lang['bbcode_help']['value'] = 'BBCode Name: Info (Alt+%s)';
#
# Ajouter après
#
$lang['bbcode_help']['note'] = 'Insèrer une note en base de post : [note]texte de la note[/note] (Alt+%s)';