J'ai vu que tu avais ajouté des variables pour le parsage des FSBCodes. Seul truc, tu ne passe pas ces infos aux fonctions generatrices résultat, si on a besoin de ces infos pour faire un traitement, c'est pas facile (enfin si, on peux toujours faire un global mais ça fais pas tres propre ici je trouve).
T'en penses quoi Géno ?
Note : Voici le corps de la méthode nommée (celle qui est dans FSB 2.0.1) :
public function parse($str, $info = array())
{
if (!isset(self::$cache_fsbcode[$this->is_signature]))
{
$sql = 'SELECT *
FROM ' . SQL_PREFIX . 'fsbcode
WHERE fsbcode_activated' . (($this->is_signature) ? '_sig' : '') . ' = 1
ORDER BY fsbcode_priority DESC';
$result = Fsb::$db->query($sql, 'fsbcode_');
$list = Fsb::$db->rows($result);
self::$cache_fsbcode[$this->is_signature] = $list;
}
else
{
$list = self::$cache_fsbcode[$this->is_signature];
}
foreach ($list AS $data)
{
if ($this->only_wysiwyg && !$data['fsbcode_wysiwyg'])
{
continue ;
}
if ($this->is_signature && !$data['fsbcode_activated_sig'])
{
continue ;
}
if ($data['fsbcode_fct'])
{
$callback = '';
if (method_exists($this, $data['fsbcode_fct']))
{
$callback = array(&$this, $data['fsbcode_fct']);
}
else if (function_exists($data['fsbcode_fct']))
{
$callback = $data['fsbcode_fct'];
}
if ($callback)
{
$pattern = '#\[' . $data['fsbcode_tag'] . '([=:]([^\]]*?))?\](.*?)\[/' . $data['fsbcode_tag'] . '\]#i' . ((!$data['fsbcode_inline']) ? 's' : '');
while (preg_match($pattern, $str))
{
$str = preg_replace_callback($pattern, $callback, $str);
}
}
}
else
{
$str = $this->parse_fsbcode_patterns($str, $data['fsbcode_search'], $data['fsbcode_replace'], $info);
}
}
$str = str_ireplace('[br]', '<br />', $str);
if ($this->parse_eof)
{
$str = str_replace("\0", "\n", $str);
}
return ($str);
}