|
|
|
<?php
|
|
|
|
|
|
|
|
function bbDecode($string) {
|
|
|
|
|
|
|
|
$find = array(
|
|
|
|
"'\[b\](.*?)\[/b\]'is",
|
|
|
|
"'\[u\](.*?)\[/u\]'is",
|
|
|
|
"'\[i\](.*?)\[/i\]'is",
|
|
|
|
"'\[s\](.*?)\[/s\]'is",
|
|
|
|
"'\[code\](.*?)\[/code\]'is",
|
|
|
|
"'\[quote\](.*?)\[/quote\]'is",
|
|
|
|
"'\[quote=(.*?)\](.*?)\[/quote\]'is",
|
|
|
|
"'\[span=(.*?)\](.*?)\[/span\]'i",
|
|
|
|
"'\[div=(.*?)\](.*?)\[/div\]'is",
|
|
|
|
"'\[h\](.*?)\[/h\]'i",
|
|
|
|
"'\[url\](.*?)\[/url\]'i",
|
|
|
|
"'\[url=(.*?)\](.*?)\[/url\]'i",
|
|
|
|
"'\[video\](.*?)\[/video\]'i",
|
|
|
|
"'\[video width=(.*?) height=(.*?)\](.*?)\[/video\]'i",
|
|
|
|
"'\[img\](.*?)\[/img\]'i",
|
|
|
|
"'\[img title=(.*?) rel=(.*?)\](.*?)\[/img\]'i",
|
|
|
|
"'\[img title=(.*?)\](.*?)\[/img\]'i",
|
|
|
|
);
|
|
|
|
|
|
|
|
$replace = array(
|
|
|
|
"<strong>\\1</strong>",
|
|
|
|
"<u>\\1</u>",
|
|
|
|
"<i>\\1</i>",
|
|
|
|
"<del>\\1</del>",
|
|
|
|
"<pre>\\1</pre>",
|
|
|
|
"<q>\\1</q>",
|
|
|
|
"<q><span class=\"cite\">\\1 a écrit</span><br />\\2</q>",
|
|
|
|
"<span class=\"\\1\">\\2</span>",
|
|
|
|
"<div class=\"\\1\">\\2</div>",
|
|
|
|
"<b>\\1</b><br />",
|
|
|
|
"<a href=\"\\1\">\\1</a>",
|
|
|
|
"<a href=\"\\1\">\\2</a>",
|
|
|
|
"<object width=\"480\" height=\"387\" class=\"center\"><param name=\"movie\" value=\"\\1\"></param><embed src=\"\\1\" type=\"application/x-shockwave-flash\" width=\"480\" height=\"387\"></embed></object>",
|
|
|
|
"<object width=\"\\1\" height=\"\\2\" class=\"center\"><param name=\"movie\" value=\"\\3\"></param><embed src=\"\\3\" type=\"application/x-shockwave-flash\" width=\"\\1\" height=\"\\2\"></embed></object>",
|
|
|
|
"<a href=\"\\1\" rel=\"prettyPhoto\"><img src=\"\\1\" alt=\"\" /></a>",
|
|
|
|
"<img class=\"illustration\" src=\"\\3\" alt=\"\\1\" />",
|
|
|
|
"<img src=\"\\2\" alt=\"\\1\" />",
|
|
|
|
);
|
|
|
|
|
|
|
|
$string = makeLinks(preg_replace ($find, $replace, $string));
|
|
|
|
$string = nl2brPlus ($string);
|
|
|
|
|
|
|
|
return $string;
|
|
|
|
}
|
|
|
|
|
|
|
|
// do nl2br except when in a <pre> tag
|
|
|
|
function nl2brPlus($string) {
|
|
|
|
$string = str_replace("\n", "<br />", $string);
|
|
|
|
if(preg_match_all('/\<pre\>(.*?)\<\/pre\>/', $string, $match)){
|
|
|
|
foreach($match as $a){
|
|
|
|
foreach($a as $b){
|
|
|
|
$string = str_replace('<pre>'.$b.'</pre>', "<pre>".str_replace("<br />", "", $b)."</pre>", $string);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return $string;
|
|
|
|
}
|
|
|
|
|
|
|
|
# Transform URL and e-mails into links
|
|
|
|
function makeLinks($string) {
|
|
|
|
$string = preg_replace_callback('/\s(http|https|ftp):(\/\/){0,1}([^\"\s]*)/i','splitUri',$string);
|
|
|
|
return $string;
|
|
|
|
}
|
|
|
|
|
|
|
|
# Split links, require for makeLinks
|
|
|
|
function splitUri($matches) {
|
|
|
|
$uri = $matches[1].':'.$matches[2].$matches[3];
|
|
|
|
$t = parse_url($uri);
|
|
|
|
$link = $matches[3];
|
|
|
|
|
|
|
|
if (!empty($t['scheme'])) {
|
|
|
|
return ' <a href="'.$uri.'">'.$link.'</a>';
|
|
|
|
} else {
|
|
|
|
return $uri;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// parse la description pour ajouter les liens sur les tags
|
|
|
|
function parse_tags ($desc) {
|
|
|
|
$desc_parse = preg_replace ('/#([\w\dÀÇÈÉÊËÎÏÔÙÚÛÜàáâçèéêëîïóùúûü]+)/i', '<a class="linktag" href="?addtag=\\1">\\1</a>', $desc);
|
|
|
|
|
|
|
|
return $desc_parse;
|
|
|
|
}
|
|
|
|
|
|
|
|
function lazyimg($content) {
|
|
|
|
return preg_replace(
|
|
|
|
'/<img([^<]+)src=([\'"])([^"\']*)([\'"])([^<]*)>/i',
|
|
|
|
'<img$1src="' . Url::display('/data/grey.gif') . '" data-original="$3"$5>',
|
|
|
|
$content
|
|
|
|
);
|
|
|
|
}
|