Changeset 34149 in spip-zone


Ignore:
Timestamp:
Jan 3, 2010, 5:26:14 PM (11 years ago)
Author:
patfr@…
Message:

L'outil "Décoration" entre dans le Porte Plume.
Les icônes de chaque raccourci doivent se placer dans le répertoire icones_barre/ sous la forme : decoration_monRaccourci.png

Location:
_plugins_/couteau_suisse
Files:
10 added
6 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/couteau_suisse/config_outils.php

    r34115 r34149  
    777777        'pipeline:pre_typo' => 'decoration_pre_typo',
    778778        'pipeline:bt_toolbox' => 'decoration_BarreTypo',
     779        'pipeline:porte_plume_barre_pre_charger' => 'decoration_PP_pre_charger',
     780        'pipeline:porte_plume_lien_classe_vers_icone' => 'decoration_PP_icones',
    779781));
    780782
  • _plugins_/couteau_suisse/inc/description_outil.php

    r34115 r34149  
    131131        // ajout des variables liees a la barre typo
    132132        if(defined('_DIR_PLUGIN_PORTE_PLUME')
    133          && strpos(serialize($outil),':porte_plume_barre_pre_charger"')!==false
     133         && isset($outil['pipeline:porte_plume_barre_pre_charger'])
    134134         && count($barres = cs_pp_liste_barres())) {
    135135                $descrip .= "\n\n@puce@ "._T('couteauprive:barres_typo_intro');
    136136                $i=0;
    137137                foreach($barres as $f=>$b) {
    138                         $descrip .= ($i?'[[->':'[[')."%pp_{$b}_$outil[id]%]]";
     138                        $nom = "pp_{$b}_$outil[id]";
     139                        $descrip .= ($i?'[[->':'[[')."%$nom%]]";
    139140                        add_variables( array(
    140                                 'nom' => "pp_{$b}_$outil[id]",
     141                                'nom' => $nom,
    141142                                'check' => ($b=='edition' || $b=='forum')?'couteauprive:barres_typo_'.$b:$f,
    142143                                'defaut' => 1, // par defaut les boutons seront toujours inseres
  • _plugins_/couteau_suisse/lang/couteau_fr.php

    r34033 r34149  
    2424        // D
    2525        'date_court' => '@jour@/@mois@/@annee@',
     26        'decoration_inserer' => 'Décoration « @balise@.@racc@ »',
     27        'decoration_inserer_drop' => 'Appliquer au texte une « décoration » personnalisée',
    2628        'derniers_connectes' => 'Derniers connectés :',
    2729
  • _plugins_/couteau_suisse/outils/decoration.php

    r19687 r34149  
    1717                if (preg_match('/(span|div|auto)\.([^.]+)\.(class|lang)\s*=(.+)$/', $balise, $regs)) {
    1818                        // les class/lang
    19                         list($div, $racc, $attr, $valeur) = array($regs[1], trim($regs[2]), trim($regs[3]), trim($regs[4]));
     19                        list($auto, $div, $racc, $attr, $valeur) = array($regs[1]=='auto', $regs[1], trim($regs[2]), trim($regs[3]), trim($regs[4]));
     20                        $BT[] = array($racc, $auto, $div);
    2021                        $attr="$attr=\"$valeur\"";
    21                         $BT[] = array(
    22                                 $racc,//$div=='div'?strtoupper($racc):$racc,
    23                                 $div=='auto'?"('<$racc>','</$racc>'":"_etendu('<$racc>','</$racc>','<$racc/>'",
    24                         );
    25                         if ($div=='auto') {
     22                        if ($auto) {
    2623                                $auto_balises[] = $racc;
    2724                                $auto_remplace[$racc] = "$attr>";
     
    3431                } elseif (preg_match('/(span|div|auto)\.([^=]+)=(.+)$/', $balise, $regs)) {
    3532                        // les styles inline
    36                         list($div, $racc, $style) = array($regs[1], trim($regs[2]), trim($regs[3]));
     33                        list($auto, $div, $racc, $style) = array($regs[1]=='auto', $regs[1], trim($regs[2]), trim($regs[3]));
     34                        $BT[] = array($racc, $auto, $div);
    3735                        $attr="style=\"$style\"";
    38                         $BT[] = array(
    39                                 $racc,//$div=='span'?"<$div $attr>$racc</$div>":($div=='div'?strtoupper($racc):$racc),
    40                                 $div=='auto'?"('<$racc>','</$racc>'":"_etendu('<$racc>','</$racc>','<$racc/>'",
    41                         );
    42                         if ($div=='auto') {
     36                        if ($auto) {
    4337                                $auto_balises[] = $racc;
    4438                                $auto_remplace[$racc] = "$attr>";
     
    7367                // balises fixes a trouver
    7468                $trouve,
    75                 // replacement des balises fixes
     69                // remplacement des balises fixes
    7670                $remplace,
    7771                // RegExpr pour les balises automatiques
     
    132126        // les raccoucis de couleur sont-il dispo ?
    133127        if (!isset($GLOBALS['meta']['cs_decoration'])) decoration_installe();
    134         // le tableau des smileys est present dans les metas
    135 decoration_installe();
     128        // le tableau des decorations est present dans les metas
     129        decoration_installe();
    136130        $balises = unserialize($GLOBALS['meta']['cs_decoration']);
    137 //print_r($balises);die();
    138131        $res = array();
    139         foreach($balises[4] as $v)
    140                 $res[] = "<a href=\"javascript:barre_raccourci$v[1],@@champ@@)\"><span class=\"cs_BT\">$v[0]</span></a>";
     132        foreach($balises[4] as $v) {
     133                $tmp = $v[1]?"('<$v[0]>','</$v[0]>'":"_etendu('<$v[0]>','</$v[0]>','<$v[0]/>'";
     134                $res[] = "<a href=\"javascript:barre_raccourci$tmp,@@champ@@)\"><span class=\"cs_BT\">$v[0]</span></a>";
     135        }
    141136        $res = join(' ', $res);
    142137        return $tr.'<tr><td><p style="margin:0; line-height:1.8em;">'._T('couteauprive:decoration:nom')."&nbsp;$res</p></td></tr>";
    143138}
    144139
     140// les 2 fonctions suivantes inserent les boutons pour le plugin Porte Plume, s'il est present (SPIP>=2.0)
     141function decoration_PP_pre_charger($flux) {
     142        // les raccoucis sont-il dispo ?
     143        if (!isset($GLOBALS['meta']['cs_decoration'])) decoration_installe();
     144        // le tableau des decorations est present dans les metas
     145        $balises = unserialize($GLOBALS['meta']['cs_decoration']);
     146        $max = count($balises[4]);
     147        $r = array();
     148        foreach($balises[4] as $b) {
     149                $id = 'decoration_'.$b[0];
     150                $r[] = array(
     151                                "id"          => $id,
     152                                "name"        => _T('couteau:decoration_inserer', array('racc'=>$b[0], 'balise'=>$b[2])),
     153                                "className"   => $id,
     154                                "selectionType" => $b[2]=='div'?"line":"word",
     155                                // $b[1] est vrai si la balise <racc/> est interdite
     156                                "replaceWith" => "function(h){ return outil_decoration(h.selection, '$b[0]', '$b[2]', '".($b[1]?'':"<$b[0]/>")."'); }",
     157                                "display"     => true);
     158        }
     159        $a = array(
     160                "id"    => 'cs_decoration_drop',
     161                "name"  => _T('couteau:decoration_inserer_drop'),
     162                "className"     => 'cs_decoration_drop',
     163                "replaceWith"   => '',
     164                "display"       => true,
     165                "dropMenu"      => $r,
     166
     167        );
     168        foreach(cs_pp_liste_barres('decoration') as $b) {
     169                $flux[$b]->ajouterApres('stroke_through', $a);
     170                $flux[$b]->ajouterFonction("function outil_decoration(sel, racc, balise, defaut) {
     171                        if(sel) {
     172                                r='<'+racc+'>'+sel+'</'+racc+'>';
     173                                return balise=='span'?r.replace(/(\\n\\n|\\r\\n\\r\\n|\\r\\r)/g,'</'+racc+'>\$1<'+racc+'>'):r;
     174                        }
     175                        return defaut;
     176                }");
     177        }
     178        return $flux;
     179}
     180function decoration_PP_icones($flux){
     181        // les raccoucis sont-il dispo ?
     182        if (!isset($GLOBALS['meta']['cs_decoration'])) decoration_installe();
     183        // le tableau des decorations est present dans les metas
     184        $balises = unserialize($GLOBALS['meta']['cs_decoration']);
     185        $icones = array();
     186        foreach($balises[4] as $b) {
     187                $id = 'decoration_'.$b[0];
     188                $icones[$id] = find_in_path("icones_barre/{$id}.png")?$id.'.png'
     189                        :"decoration_{$b[2]}.png";
     190        }
     191        // icones utilisees. Attention : mettre les drop-boutons en premier !!
     192        $flux = array_merge($flux, array(
     193                'cs_decoration_drop' => 'decoration_div.png',
     194        ), $icones);
     195        return $flux;
     196}
     197
    145198?>
  • _plugins_/couteau_suisse/outils/smileys.php

    r34115 r34149  
    150150// les 2 fonctions suivantes inserent les boutons pour le plugin Porte Plume, s'il est present (SPIP>=2.0)
    151151function cs_smileys_PP_pre_charger($flux) {
    152         // les raccoucis de couleur sont-il dispo ?
     152        // les smileys sont-il dispo ?
    153153        if (!isset($GLOBALS['meta']['cs_smileys']))     smileys_installe();
    154154        // le tableau des smileys est present dans les metas
     
    178178}
    179179function cs_smileys_PP_icones($flux){
    180         // les raccoucis de couleur sont-il dispo ?
     180        // les smileys sont-il dispo ?
    181181        if (!isset($GLOBALS['meta']['cs_smileys']))     smileys_installe();
    182182        // le tableau des smileys est present dans les metas
  • _plugins_/couteau_suisse/plugin.xml

    r34115 r34149  
    22        <nom><multi>Swiss Knife[fr]Le Couteau Suisse[ca]El Ganivet Su&#237;s[ar]&#1587;&#1603;&#1610;&#1606; &#1575;&#1604;&#1580;&#1610;&#1576;[nl]Het Zwitserland Mes[gl]A navalla su&#237;za[es]La Navaja Suiza[de]Schweizer Taschenmesser[tr]&#304;svi&#231;re &#199;ak&#305;s&#305;[br]Ar Gontell Suis[pt_br]Canivete Su&#237;&#231;o[ast]La Navaya Suiza[gl]A navalla su&#237;za[ro]Cu&#355;itul Elve&#355;ian[it]Coltellino Svizzero</multi></nom>
    33        <icon>img/couteau-50.gif</icon>
    4         <version>1.8.10.12</version>
     4        <version>1.8.11.00</version>
    55        <auteur>Patrice Vanneufville
    66_ &#169; 2007-2009 - Distribu&#233; sous licence GPL
Note: See TracChangeset for help on using the changeset viewer.