[SPIP Zone] BTE 1.9.2

Hello Jacques,
j'ai vu passé les dernieres modifs pour coller à la branche stable, il manque une fonction : afficher_textarea_barre
=> il y a une erreur sur les breves (et sans doute les forums)

sinon, j'ai finalement reporté mes modif de la barre typo extensible sur la derniere version de la BTE.

En fait, il y a 2 modifs :
- ajout de pipelines dans /inc/barre.php (ce qui ne coute pas cher et permet de rajouter des boutons)
- extension des tags : la, c'est beaucoup plus discutable.
Dans un premier temps, j'avais placé le traitement des raccourcis ajoutés dans un autre plugin.
Mais à la reflexion, je trouve ca dommage de ralonger le spip_path et de mettre en place toute une mecanique pour faire qqchose d'assez standard (je ne traite que du "avant_propre").

pour ajouter un bouton, j'ai donc juste à faire dans mon plugin :
function paginart3_BarreTypoEnrichie_avancees($paramArray){
$p=explode(basename(_DIR_PLUGINS)."/",str_replace('\\','/',realpath(dirname(__FILE__))));
    return " ".bouton_barre_racc ("barre_raccourci('\n\n{p{','}p}\n\n',".$paramArray[0].")", _DIR_PLUGINS.end($p).'/img_pack/icones_barre/intertitre_p.png', _T('paginart3:barre_intertitre_p'), $paramArray[1])." "; }

et pour ajouter le traitement qui va avec :
tester_variable('BarreTypoEnrichie',
                    array(
                        'intertitre_p_debut'=>array(
                            "chercher"=>"/(^|[^{])\{p\{/S",
                            "remplacer"=>"\$1\n\n<h3 class=\"paginart3\">"),
                        'intertitre_p_fin'=>array(
                            "chercher"=>"/\}p\}($|[^}])/S",
                            "remplacer"=>"</h3>\n\n\$1")
                        )
                    );

et bien sur, ajouter la fonction nettoyer_raccourcis_typo qui va avec.

voila le diff, à toi de voir ce que tu integres ou non dans la BTE.
Amha, les pipelines ont leur place ici, mais pas les traitements.
Ca permettrait de faire des plugins pour etendre la BTE sans trop se prendre la tete avec les traitements (charge à chaque plugin de faire son boulot).
Si qqun veut optimiser comme moi, il peut forker typo_enrichie.php.

Ou alors, il faudrait faire la aussi des "pipelines" pour permettre la modification/ajout des tableaux de traitement avant de les lancer (?)

inc/barre.php :
279,287d278
< ////////////////////////////
< //MODIFICATION
< ///////////////////////////
< //un pipeline pour ajouter une toolbox
< $params=array($champ,$champhelp,$spip_lang);
< $add=pipeline("BarreTypoEnrichie_toolbox",$params);
< if ($params!=$add)
< $toolbox .= $add;
< ///////////////////////////
298,306d288
< ////////////////////////////
< //MODIFICATION
< ///////////////////////////
< $params = array($champ,$champhelp,$spip_lang);
< $add = pipeline("BarreTypoEnrichie_tous",array($champ,$champhelp,$spip_lang));
< if ($params!=$add)
< $ret .= $add;
< ///////////////////////////
<
308,315d289
< ////////////////////////////
< //MODIFICATION
< ///////////////////////////
< $params = array($champ,$champhelp,$spip_lang);
< $add = pipeline("BarreTypoEnrichie_avancees",array($champ,$champhelp,$spip_lang));
< if ($params!=$add)
< $ret .= $add;
< ///////////////////////////
321,328d294
< ////////////////////////////
< //MODIFICATION
< ///////////////////////////
< $params = array($champ,$champhelp,$spip_lang);
< $add = pipeline("BarreTypoEnrichie_ecrire",array($champ,$champhelp,$spip_lang));
< if ($params!=$add)
< $ret .= $add;
< ///////////////////////////
349,356d314
< ////////////////////////////
< //MODIFICATION
< ///////////////////////////
< $params = array($champ,$champhelp,$spip_lang);
< $add = pipeline("BarreTypoEnrichie_forum",array($champ,$champhelp,$spip_lang));
< if ($params!=$add)
< $ret .= $add;
< ///////////////////////////
437,451d394
< // http://doc.spip.org/@afficher_textarea_barre
< function afficher_textarea_barre($texte, $forum=false)
< {
< global $spip_display, $spip_ecran;
<
< $rows = ($spip_ecran == "large") ? 28 : 15;
<
< return (($spip_display == 4) ? '' :
< afficher_barre('document.formulaire.texte', $forum))
< . "<textarea name='texte' id='texte' "
< . $GLOBALS['browser_caret']
< . " rows='$rows' class='formo' cols='40'>"
< . entites_html($texte)
< . "</textarea>\n";
< }

typo_enrichie.php :
63,125c63,117
< ///////////////////////////
< //MODIFICATION
< //////////////////////////
< $chercher_raccourcis=array();
< $remplacer_raccourcis=array();
< global $BarreTypoEnrichie;
< if (is_array($BarreTypoEnrichie))
< foreach($BarreTypoEnrichie as $item) {
< $chercher_raccourcis[]=$item['chercher']; < $remplacer_raccourcis[]=$item['remplacer'];
   < }
<
< /* 1 */ $chercher_raccourcis[]="/(^|[^{])[{][{][{]/S";
< /* 2 */ $chercher_raccourcis[]="/[}][}][}]($|[^}])/S";
< /* 3 */ $chercher_raccourcis[]="/(^|[^{])\{1\{/S";
< /* 4 */ $chercher_raccourcis[]="/\}1\}($|[^}])/S";
< /* 5 */ $chercher_raccourcis[]="/(^|[^{])\{2\{/S";
< /* 6 */ $chercher_raccourcis[]="/\}2\}($|[^}])/S";
< /* 7 */ $chercher_raccourcis[]="/(^|[^{])\{3\{/S";
< /* 8 */ $chercher_raccourcis[]="/\}3\}($|[^}])/S";
< /* 9 */ $chercher_raccourcis[]="/(^|[^{])\{4\{/S";
< /* 10 */ $chercher_raccourcis[]="/\}4\}($|[^}])/S";
< /* 9b */ $chercher_raccourcis[]="/(^|[^{])\{5\{/S";
< /* 10b */ $chercher_raccourcis[]="/\}5\}($|[^}])/S";
< /* 11 */ $chercher_raccourcis[]="/\{(�|§)\{/S"; # § Pour g�rer l'unicode aussi !
< /* 12 */ $chercher_raccourcis[]="/\}(�|§)\}/S";
< /* 13 */ $chercher_raccourcis[]="/<-->/S";
< /* 14 */ $chercher_raccourcis[]="/-->/S";
< /* 15 */ $chercher_raccourcis[]="/<--/S";
< /* 16 */ $chercher_raccourcis[]="/<==>/S";
< /* 17 */ $chercher_raccourcis[]="/==>/S";
< /* 18 */ $chercher_raccourcis[]="/<==/S";
< /* 19 */ $chercher_raccourcis[]="/\([cC]\)/S";
< /* 20 */ $chercher_raccourcis[]="/\([rR]\)/S";
< /* 21 */ $chercher_raccourcis[]="/\([tT][mM]\)/S";
< /* 22 */ $chercher_raccourcis[]="/\.\.\./S";
< /* 23 */ $chercher_raccourcis[]="/\[([^|?][^][]*)\|((?:[^][](?!->))*)\]/S";
<
< /* 1 */ $remplacer_raccourcis[]="/$1\n\n$debut_intertitre";
< /* 2 */ $remplacer_raccourcis[]="$fin_intertitre\n\n\$1";
< /* 3 */ $remplacer_raccourcis[]="/$1\n\n$debut_intertitre";
< /* 4 */ $remplacer_raccourcis[]="$fin_intertitre\n\n\$1";
< /* 5 */ $remplacer_raccourcis[]="/$1\n\n$debut_intertitre_2";
< /* 6 */ $remplacer_raccourcis[]="$fin_intertitre_2\n\n\$1";
< /* 7 */ $remplacer_raccourcis[]="/$1\n\n$debut_intertitre_3";
< /* 8 */ $remplacer_raccourcis[]="$fin_intertitre_3\n\n\$1";
< /* 9 */ $remplacer_raccourcis[]="/$1\n\n$debut_intertitre_4";
< /* 10 */ $remplacer_raccourcis[]="$fin_intertitre_4\n\n\$1";
< /* 9b */ $remplacer_raccourcis[]="/$1\n\n$debut_intertitre_5";
< /* 10b */ $remplacer_raccourcis[]="$fin_intertitre_5\n\n\$1";
< /* 11 */ $remplacer_raccourcis[]="<span style=\"font-variant: small-caps\">";
< /* 12 */ $remplacer_raccourcis[]="</span>";
< /* 13 */ $remplacer_raccourcis[]="&harr;";
< /* 14 */ $remplacer_raccourcis[]="&rarr;";
< /* 15 */ $remplacer_raccourcis[]="&larr;";
< /* 16 */ $remplacer_raccourcis[]="&hArr;";
< /* 17 */ $remplacer_raccourcis[]="&rArr;";
< /* 18 */ $remplacer_raccourcis[]="&lArr;";
< /* 19 */ $remplacer_raccourcis[]="&copy;";
< /* 20 */ $remplacer_raccourcis[]="&reg;";
< /* 21 */ $remplacer_raccourcis[]="&trade;";
< /* 22 */ $remplacer_raccourcis[]="&hellip;";
< /* 23 */ $remplacer_raccourcis[]="@@acro@@$2@@$1@@acro@@";
---
> $chercher_raccourcis = array(
> /* 1 */ "/(^|[^{])[{][{][{]/S",
> /* 2 */ "/[}][}][}]($|[^}])/S",
> /* 3 */ "/(^|[^{])\{1\{/S",
> /* 4 */ "/\}1\}($|[^}])/S",
> /* 5 */ "/(^|[^{])\{2\{/S",
> /* 6 */ "/\}2\}($|[^}])/S",
> /* 7 */ "/(^|[^{])\{3\{/S",
> /* 8 */ "/\}3\}($|[^}])/S",
> /* 9 */ "/(^|[^{])\{4\{/S",
> /* 10 */ "/\}4\}($|[^}])/S",
> /* 9b */ "/(^|[^{])\{5\{/S",
> /* 10b */ "/\}5\}($|[^}])/S",
> /* 11 */ "/\{(§|§)\{/S", # § Pour gérer l'unicode aussi !
> /* 12 */ "/\}(§|§)\}/S",
> /* 13 */ "/<-->/S",
> /* 14 */ "/-->/S",
> /* 15 */ "/<--/S",
> /* 16 */ "/<==>/S",
> /* 17 */ "/==>/S",
> /* 18 */ "/<==/S",
> /* 19 */ "/\([cC]\)/S",
> /* 20 */ "/\([rR]\)/S",
> /* 21 */ "/\([tT][mM]\)/S",
> /* 22 */ "/\.\.\./S",
> /* 23 */ "/\[([^|?][^][]*)\|((?:[^][](?!->))*)\]/S"
> );
>
> $remplacer_raccourcis = array(
> /* 1 */ "\$1\n\n$debut_intertitre",
> /* 2 */ "$fin_intertitre\n\n\$1",
> /* 3 */ "\$1\n\n$debut_intertitre",
> /* 4 */ "$fin_intertitre\n\n\$1",
> /* 5 */ "\$1\n\n$debut_intertitre_2",
> /* 6 */ "$fin_intertitre_2\n\n\$1",
> /* 7 */ "\$1\n\n$debut_intertitre_3",
> /* 8 */ "$fin_intertitre_3\n\n\$1",
> /* 9 */ "\$1\n\n$debut_intertitre_4",
> /* 10 */ "$fin_intertitre_4\n\n\$1",
> /* 9b */ "\$1\n\n$debut_intertitre_5",
> /* 10b */ "$fin_intertitre_5\n\n\$1",
> /* 11 */ "<span style=\"font-variant: small-caps\">",
> /* 12 */ "</span>",
> /* 13 */ "&harr;",
> /* 14 */ "&rarr;",
> /* 15 */ "&larr;",
> /* 16 */ "&hArr;",
> /* 17 */ "&rArr;",
> /* 18 */ "&lArr;",
> /* 19 */ "&copy;",
> /* 20 */ "&reg;",
> /* 21 */ "&trade;",
> /* 22 */ "&hellip;",
> /* 23 */ "@@acro@@$2@@$1@@acro@@"
> );

* spipcarto tapotait, le 21/02/2007 15:12:

Hello Jacques,
j'ai vu passé les dernieres modifs pour coller à la branche stable, il manque une fonction : afficher_textarea_barre
=> il y a une erreur sur les breves (et sans doute les forums)

Merci.
Je vais regarder ça...
Si tu as directement le code, n'hésite pas à le commiter.

sinon, j'ai finalement reporté mes modif de la barre typo extensible sur la derniere version de la BTE.

En fait, il y a 2 modifs :
- ajout de pipelines dans /inc/barre.php (ce qui ne coute pas cher et permet de rajouter des boutons)
- extension des tags : la, c'est beaucoup plus discutable.
Dans un premier temps, j'avais placé le traitement des raccourcis ajoutés dans un autre plugin.
Mais à la reflexion, je trouve ca dommage de ralonger le spip_path et de mettre en place toute une mecanique pour faire qqchose d'assez standard (je ne traite que du "avant_propre").

pour ajouter un bouton, j'ai donc juste à faire dans mon plugin :
function paginart3_BarreTypoEnrichie_avancees($paramArray){
$p=explode(basename(_DIR_PLUGINS)."/",str_replace('\\','/',realpath(dirname(__FILE__))));
    return "&nbsp;".bouton_barre_racc ("barre_raccourci('\n\n{p{','}p}\n\n',".$paramArray[0].")", _DIR_PLUGINS.end($p).'/img_pack/icones_barre/intertitre_p.png', _T('paginart3:barre_intertitre_p'), $paramArray[1])."&nbsp;"; }

et pour ajouter le traitement qui va avec :
tester_variable('BarreTypoEnrichie',
                    array(
                        'intertitre_p_debut'=>array(
                            "chercher"=>"/(^|[^{])\{p\{/S",
                            "remplacer"=>"\$1\n\n<h3 class=\"paginart3\">"),
                        'intertitre_p_fin'=>array(
                            "chercher"=>"/\}p\}($|[^}])/S",
                            "remplacer"=>"</h3>\n\n\$1")
                        )
                    );

et bien sur, ajouter la fonction nettoyer_raccourcis_typo qui va avec.

voila le diff, à toi de voir ce que tu integres ou non dans la BTE.
Amha, les pipelines ont leur place ici, mais pas les traitements.
Ca permettrait de faire des plugins pour etendre la BTE sans trop se prendre la tete avec les traitements (charge à chaque plugin de faire son boulot).
Si qqun veut optimiser comme moi, il peut forker typo_enrichie.php.

Ou alors, il faudrait faire la aussi des "pipelines" pour permettre la modification/ajout des tableaux de traitement avant de les lancer (?)

inc/barre.php :

Est-ce que tu peux m'envoyer le fichier modifié ? (Je ne sais pas récupérer un diff à ce format).

Jacques

RealET a écrit :

Est-ce que tu peux m'envoyer le fichier modifié ? (Je ne sais pas récupérer un diff à ce format).

en fait, j'ai beaucoup modifié le code pour mes besoins et c'est pas tres propre...
Je me suis amusé à ajouter la BTE aux textarea de crayon.

Ca pose pas mal de problemes car les appels sont fait en Ajax et les swap_couche se melangent (voir mon message sur spip-dev).
Autre souci : la preview qui ne fonctionne qu'avec une barre...

Bref, j'ai pas mal bidouillé pour que ca marche, sachant que sur ce projet, j'utilise interface, j'en ai profité pour mettre la preview dans une petite fenetre (draggable/resizable)

Donc en gros, je ne sais pas trop quoi faire, je ne peux vraiment pas commiter en l'etat sur la BTE.
Je vais peut etre poser ca sur ma barre typo extensible, comme ca tu pourras jeter un oeil et porter ce qui peut t'interesser (sans doute juste les pipelines)

@++

* spipcarto tapotait, le 23/02/2007 00:02:

RealET a écrit :

Est-ce que tu peux m'envoyer le fichier modifié ? (Je ne sais pas récupérer un diff à ce format).

en fait, j'ai beaucoup modifié le code pour mes besoins et c'est pas tres propre...
Je me suis amusé à ajouter la BTE aux textarea de crayon.

Cool !

Ca pose pas mal de problemes car les appels sont fait en Ajax et les swap_couche se melangent (voir mon message sur spip-dev).
Autre souci : la preview qui ne fonctionne qu'avec une barre...

Bref, j'ai pas mal bidouillé pour que ca marche, sachant que sur ce projet, j'utilise interface, j'en ai profité pour mettre la preview dans une petite fenetre (draggable/resizable)

En l'état, tu n'as pas joint interface à ton plugin : il est donc strictement non fonctionnel pour la préview.
Il faut cocher quoi sur Interface elements for jQuery - Download Interface pour télécharger la version minimum nécessaire ?
Et comment rajouter l'appel d'interface.js ?

Donc en gros, je ne sais pas trop quoi faire, je ne peux vraiment pas commiter en l'etat sur la BTE.
Je vais peut etre poser ca sur ma barre typo extensible, comme ca tu pourras jeter un oeil et porter ce qui peut t'interesser (sans doute juste les pipelines)

J'ai pris les pipelines et l'extensibilité des raccourcis de propre()
Pour le reste, je n'ai pas pu le prendre : c'est non fonctionnel.

RealET

RealET a écrit :

* spipcarto tapotait, le 23/02/2007 00:02:
  

RealET a écrit :
    

Est-ce que tu peux m'envoyer le fichier modifié ? (Je ne sais pas récupérer un diff à ce format).
      

en fait, j'ai beaucoup modifié le code pour mes besoins et c'est pas tres propre...
Je me suis amusé à ajouter la BTE aux textarea de crayon.
    

Cool !
  

non... compliqué et plein de bidouilles en l'etat...

Ca pose pas mal de problemes car les appels sont fait en Ajax et les swap_couche se melangent (voir mon message sur spip-dev).
Autre souci : la preview qui ne fonctionne qu'avec une barre...

Bref, j'ai pas mal bidouillé pour que ca marche, sachant que sur ce projet, j'utilise interface, j'en ai profité pour mettre la preview dans une petite fenetre (draggable/resizable)
    

En l'état, tu n'as pas joint interface à ton plugin : il est donc strictement non fonctionnel pour la préview.
Il faut cocher quoi sur Interface elements for jQuery - Download Interface pour télécharger la version minimum nécessaire ?
  
c'est juste pour la preview, j'utilise draggable et resizable, mais c'est gadget....

Et comment rajouter l'appel d'interface.js ?
  
soit dans jquery.js.html, soit via INSERT_HEAD.
Pas moyen de l'embarquer à la volée, IE ne gere pas les appels à des scripts externes dans les retours Ajax.

Donc en gros, je ne sais pas trop quoi faire, je ne peux vraiment pas commiter en l'etat sur la BTE.
Je vais peut etre poser ca sur ma barre typo extensible, comme ca tu pourras jeter un oeil et porter ce qui peut t'interesser (sans doute juste les pipelines)
    

J'ai pris les pipelines et l'extensibilité des raccourcis de propre()
Pour le reste, je n'ai pas pu le prendre : c'est non fonctionnel.
  

Tu as bien fait, c'est tout ce qu'il y a d'utilisable...

Je regarde ca rapidement.

@++

* RealET tapotait, le 27/02/2007 18:49:

J'ai pris les pipelines et l'extensibilité des raccourcis de propre()
Pour le reste, je n'ai pas pu le prendre : c'est non fonctionnel.

C'est bon, je les ais remis (depuis que tu as fait le fichier de déclaration des pipelines).
J'ai aussi ajouter un pipeline pour #INSERT_HEAD

--
RealET

RealET a écrit :

* RealET tapotait, le 27/02/2007 18:49:

J'ai pris les pipelines et l'extensibilité des raccourcis de propre()
Pour le reste, je n'ai pas pu le prendre : c'est non fonctionnel.
    

C'est bon, je les ais remis (depuis que tu as fait le fichier de déclaration des pipelines).
J'ai aussi ajouter un pipeline pour #INSERT_HEAD

OK, vu.
C'est nickel, j'ai plus que 2 ou 3 fichers modifiés maintenant, je regarde la gestion des tableaux, ca a l'air mieux comme ca.

le plugin pagination_article3 est compatible (il faut au moins 2 intertitres paginés pour qu'il s'active) !

Par contre, pourquoi le pipeline insert_head dans un autre fichier ?

Je continue mon fork pour aller vers du WYSIWYG.
En fait, le but est, à l'activation de la barre, de laisser le texte en place, mais celui ci deviendrait la preview, et d'afficher le formulaire dans une "fenetre modale" (jquery/interface)
C'est un savant melange entre crayon, la barre typo et une barre d'outil maison, mais il y a encore du boulot avant de pouvoir publier qqchose, et ca risque d'etre dans un plugin plus vaste (surchargeant les droits pour les ramener au niveau rubrique)

je te fais signe dès que j'ai quelque chose de montrable.

@++

* spipcarto tapotait, le 07/03/2007 15:46:

Je continue mon fork pour aller vers du WYSIWYG.

Regarde du côté de http://codepress.org/
AMHA, en utilisant ce machin afin de présenter les raccourcis typo en gris clair (un peu comme le texte des message dans GMail, dans la liste de tous les messages), on aurait un texte beaucoup plus facile à lire.
En traitant en plus le gras, l'italique et la titraille, on aurait l'essentiel des mises en formes usuelles.

--
RealET