Changeset 5942 in spip-zone


Ignore:
Timestamp:
Oct 6, 2006, 11:32:29 AM (13 years ago)
Author:
fil@…
Message:

le plugin revision_nbsp prend de l'embonpoint : il sait maintenant transformer les notes de pas de page faites a la main en raccourcis SPIP (fonction sale, un peu)

Location:
_plugins_/_stable_/revision_nbsp
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_stable_/revision_nbsp/plugin.xml

    r5534 r5942  
    11<plugin>
    22        <nom> <!-- Nom du plugin -->
    3         R&eacute;vision des espaces ins&eacute;cables
     3        R&eacute;vision typographique (ins&eacute;cables & notes)
    44        </nom>
    55        <auteur>        <!-- Auteur du plugin -->
    66        fil@rezo.net
    7 _ &copy; 2005 - Distribu&eacute; sous licence GNU/GPL
     7_ &copy; 2005-6 - Distribu&eacute; sous licence GNU/GPL
    88        </auteur>
    99        <version>
    10         0.1
     10        0.2
    1111        </version>
    1212        <etat>
     
    1414        </etat>
    1515        <description>
    16         Dans l'espace priv&eacute;, souligne en gris les espaces ins&eacute;cables, pour faciliter la relecture.
     16        Dans l'espace priv&eacute;:
     17- souligne en gris les espaces ins&eacute;cables, pour faciliter la relecture;
     18- propose un bouton pour transformer les notes r&eacute;dig&eacute;es &laquo; en dur &raquo; -- de la forme (1), (2), (3)... -- en raccourcis SPIP.
     19
    1720_ Compatibilit&eacute; : SPIP versions 1.9.0 et sup&eacute;rieures
    1821        </description>
     
    2528                <inclure>revision_nbsp.php</inclure>
    2629        </pipeline>
     30        <pipeline>
     31                <nom>affiche_droite</nom>
     32                <action>ajoute_bouton_corriger_les_notes</action>
     33                <inclure>revision_nbsp.php</inclure>
     34        </pipeline>
    2735</plugin>
  • _plugins_/_stable_/revision_nbsp/revision_nbsp.php

    r5534 r5942  
    2121        }
    2222
     23        function RevisionNbsp_ajoute_bouton_corriger_les_notes($x) {
     24                if ($x['args']['exec'] == 'articles') {
     25                        $id_article = intval($x['args']['id_article']);
     26                        $t = spip_fetch_array(spip_query("SELECT texte FROM spip_articles WHERE id_article=$id_article"));
     27                        if ($c = notes_automatiques($t['texte'])) {
     28                                $x['data'] .= '<a href="'.generer_url_action('corriger_notes', 'id_article='.$id_article).'">Transformer les notes de cet article.</a>';
     29                        }
     30#                       else $x['data'] .= "<div>pas de notes a corriger</div>";
     31                }
     32                return $x;
     33        }
     34
     35
     36        function notes_automatiques($texte) {
     37
     38                // Attrapper les notes
     39                $regexp = ', *\[\[(.*?)\]\],msS';
     40                if ($s = preg_match_all($regexp, $texte, $matches, PREG_SET_ORDER)
     41                AND $s==1
     42                AND preg_match(",^ *<>(.*),s", $matches[0][1], $r)) {
     43                        $lesnotes = $r[1];
     44                        $letexte = trim(str_replace($matches[0][0], '', $texte));
     45
     46                        $num = 0;
     47                        while (($a = strpos($lesnotes, '('.(++$num).')')) !== false
     48                        AND ($b = strpos($letexte, '('.($num).')')) !== false
     49                        ) {
     50                                if (!isset($debut))
     51                                        $debut = trim(substr($lesnotes, 0, $a));
     52
     53                                $lanote = substr($lesnotes,$a+strlen('('.$num.')'));
     54
     55                                $lanote = preg_replace(
     56                                ',[(]'.($num+1).'[)].*,s', '',$lanote
     57                                );
     58
     59                                $lanote = trim($lanote);
     60                                $lanote = (strlen($lanote) ? '[[ '.$lanote.' ]]' : '');
     61
     62                                $letexte = substr($letexte,0,$b)
     63                                        . $lanote
     64                                        . substr($letexte,$b+strlen('('.$num.')'));
     65                        }
     66
     67                        if (isset($debut)) {
     68                                return (strlen($debut)?"\n\n[[<>$debut ]]":'') . $letexte;
     69                        }
     70                }
     71        }
    2372
    2473?>
Note: See TracChangeset for help on using the changeset viewer.