A la demande de tetue je me suis penché sur les sauts de ligne dans
les forums ; il s'avère que j'avais déjà codé la fonction nécessaire
en 2003-2004, mais pas dans la bonne optique [Mon idée alors était de
respecter les sauts de ligne dans les articles aussi]. Après un gros
débat on avait démonté la chose. Comme quoi rien ne se perd...
Bref après avoir un peu bidouillé et appliqué cette fonction à une
grosse série de forums en conditions réelles, j'en suis arrivé à ceci
:
1) la prévisu utilise le même "traitement" que le #TEXTE des forums
(aussi bien dans la branche stable que dans le core/plugin/forum de la
branche dev)
2) dans la branche dev/, ce traitement appelle la fonction post_autobr
(mal nommée), qui met les bons sauts de ligne où il faut ; j'ai
débuggué cette fonction et les deux branches en ont une version
fraîche
3) pour appeler cette fonction dans la branche stable, il faut
utiliser le code suivant dans mes_options :
// passer le filtre de forums
$table_des_traitements['TEXTE']['forums'] = str_replace(
'%s', 'post_autobr(%s)',
'safehtml(propre(%s,$connect))'
);
4) Pour TESTER ce que fait cette fonction, sans l'appliquer
réellement, il faut se placer dans la branche stable
branches/spip-2.0/ (future 2.0.9 donc), mettre à jour, puis installer
le squelette suivant, qui liste les forums que la fonction modifie,
indiquant au centre l'ancienne version, et à droite la nouvelle ; un
joli symbole paragraphe de couleur verte indique les BR :
forumsautsdeligne.html:
<style>
td {vertical-align:top; width:32%}
br {width:2px; background-color:red;}
</style>
#SET{repl,<span style='color:green'>¶</span>}
<table>
<B_f>
#PAGINATION
<BOUCLE_f(FORUMS){texte==\n[^\n]}{!par date_heure}{pagination 100}>
#SET{texte,#TEXTE}
[(#SET{t2,[(#TEXTE*|post_autobr|propre|safehtml)]})]
[(#GET{texte}|trim|=={#GET{t2}|trim}|?{'',
<tr style="background-color: #[(#COMPTEUR_BOUCLE|alterner{fff,ccc})];">
<td><textarea style='width:99%; height:99%'>#TEXTE*</textarea></td>
<td>[(#GET{texte}|replace{<br,[(#GET{repl})]<br})]</td>
<td>[(#GET{t2}|replace{<br,[(#GET{repl})]<br})]</td>
</tr>
})]
</BOUCLE_f>
</table>
et se rendre sur ?page=forumsautsdeligne
enjoy.
-- Fil