[spip-dev] sauts de ligne dans les forums

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'>&para;</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

Puisqu'elle ne servait à personne, et avant que tout le monde ne s'en serve, tu la renommerais pas mieux ?

Cédric

2) dans la branche dev/, ce traitement appelle la fonction post_autobr
(mal nommée),

Puisqu'elle ne servait à personne, et avant que tout le monde ne s'en serve,
tu la renommerais pas mieux ?

Si tu as une suggestion. Elle n'a pas de vocation particulière pour
les forums ; elle ne fait rien d'autre que transformer *certains*
sauts de ligne en BR.

-- Fil