Changeset 10039 in spip-zone


Ignore:
Timestamp:
Mar 2, 2007, 12:03:12 AM (13 years ago)
Author:
cedric@…
Message:

"une table des acronym/abbr c'est tellement plus souple (avec f&t)"

Location:
_plugins_/_stable_/acronymes
Files:
11 added
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_stable_/acronymes/acronymes_filtres.php

    r9477 r10039  
    6666  {
    6767        if (!count($acro_patterns)){
    68                         #définition des remplacements
     68                        #definition des remplacements
    6969                        $set = array();
    7070
    71                         #Récupération des mots et des définitions dans une rubrique locale
    72                 $res = spip_query("SELECT titre,descriptif FROM spip_articles WHERE id_rubrique=".spip_abstract_quote($id_rubrique_acronymes));
    73                         while($row = spip_fetch_array($res)){
    74                                 $accro=str_replace(".","",$row['titre']);
    75                                 if (!isset($set[$accro])){
     71                        #Recuperation des mots et des definitions dans une table des acronymes
     72                        if (include_spip('base/forms_base_api') AND count($liste=Forms_liste_tables('acronymes_sigles'))){
     73                                include_spip('forms_fonctions');
     74                                $id_form = intval(reset($liste));
     75                        $res = spip_query("SELECT id_donnee FROM spip_forms_donnees WHERE id_form="._q($id_form));
     76                        while ($row = spip_fetch_array($res)){
     77                                $accro=str_replace(".","",forms_calcule_les_valeurs('forms_donnees_champs', $row['id_donnee'], 'ligne_1', $id_form,' ', true));
     78                                $desc = forms_calcule_les_valeurs('forms_donnees_champs', $row['id_donnee'], 'texte_1', $id_form,' ', true);
     79                                $balise = forms_calcule_les_valeurs('forms_donnees_champs', $row['id_donnee'], 'select_1', $id_form,' ', true);
     80                                $lang = forms_calcule_les_valeurs('forms_donnees_champs', $row['id_donnee'], 'select_2', $id_form,' ', true);
    7681                                        $acro_patterns[] = $accro;
    77                                         $acro_replacements[] = $row['descriptif'];
     82                                        $acro_replacements[] = $desc;
     83                                        $acro_balise[] = $balise;
    7884                                        $set[$accro] = 1;
     85                        }
     86                        }
     87                        #Recuperation des mots et des definitions dans une rubrique locale
     88                        if ($id_rubrique_acronymes) {
     89                        $res = spip_query("SELECT titre,descriptif FROM spip_articles WHERE id_rubrique=".spip_abstract_quote($id_rubrique_acronymes));
     90                                while($row = spip_fetch_array($res)){
     91                                        $accro=str_replace(".","",$row['titre']);
     92                                        if (!isset($set[$accro])){
     93                                                $acro_patterns[] = $accro;
     94                                                $acro_replacements[] = $row['descriptif'];
     95                                                $acro_balise[] = 'acronym';
     96                                                $set[$accro] = 1;
     97                                        }
    7998                                }
    8099                        }
    81                        
    82                         #Récupération des mots et des définitions dans un site syndique distant
    83                 $res = spip_query("SELECT titre,descriptif FROM spip_syndic_articles WHERE id_syndic=".spip_abstract_quote($id_syndic_acronymes));
    84                         while($row = spip_fetch_array($res)){
    85                                 $accro=str_replace(".","",$row['titre']);
    86                                 if (!isset($set[$accro])){
    87                                         $acro_patterns[] = $accro;
    88                                         $acro_replacements[] = $row['descriptif'];
    89                                         $set[$accro] = 1;
     100                        #Recuperation des mots et des definitions dans un site syndique distant
     101                        if ($id_syndic_acronymes) {
     102                        $res = spip_query("SELECT titre,descriptif FROM spip_syndic_articles WHERE id_syndic=".spip_abstract_quote($id_syndic_acronymes));
     103                                while($row = spip_fetch_array($res)){
     104                                        $accro=str_replace(".","",$row['titre']);
     105                                        if (!isset($set[$accro])){
     106                                                $acro_patterns[] = $accro;
     107                                                $acro_replacements[] = $row['descriptif'];
     108                                                $acro_balise[] = 'acronym';
     109                                                $set[$accro] = 1;
     110                                        }
    90111                                }
    91112                        }
     
    95116                        {
    96117                                $desc_temp = trim(attribut_html(supprimer_tags($acro_replacements[$key])));
    97                                 $desc_temp = str_replace("'","'",$desc_temp);
     118                                $desc_temp = supprimer_tags(str_replace("'","'",$desc_temp));
    98119                                $pattern="{([^\w@\.])(";
    99120                                for ($i=0;$i<strlen($accro);$i++)
     
    101122                                $pattern.=")(?![\w@])}";
    102123                                $acro_patterns[$key] = $pattern;
    103                                 $acro_replacements[$key] = "\\1<acronym title='@A@C@R@O@$key@@'>\\2@</acronym>";
     124                                $balise = $acro_balise[$key];
     125                                $acro_replacements[$key] = "\\1<$balise title='@A@C@R@O@$key@@'>\\2@</$balise>";
    104126                                $acro_step2["@A@C@R@O@$key@@"] = $desc_temp;
    105127                        }
    106128                        $acro_step2["@</acronym>"] = "</acronym>"; // nettoyer les balises fermantes
     129                        $acro_step2["@</abbr>"] = "</abbr>"; // nettoyer les balises fermantes
    107130                       
    108                         #tri nécessaire
     131                        #tri necessaire
    109132                        ksort($acro_patterns);
    110133                        ksort($acro_replacements);
     
    113136        if (count($acro_patterns)){
    114137                        // reperage des balises acronym existantes
    115                         $pattern="{<acronym[^>]*>([^<]*)</acronym>}";
     138                        $pattern="{<(?:acronym|abbr)[^>]*>([^<]*)</(?:acronym|abbr)>}";
    116139                        preg_match_all ($pattern, $chaine, $tagMatches, PREG_SET_ORDER);
    117140                        $textMatches = preg_split ($pattern, $chaine);
     
    120143                  for ($i = 0; $i < count ($textMatches); $i ++){
    121144                    $texte=$textMatches[$i];
    122                           $pattern = '<([a-zA-Zéàèçùûôâîê0-9\. \s"\'_\/\-\+=;,!:@~\(\)\?&#%\n\[\]]+)>';
     145                          $pattern = '<([a-z]+[^<>]*)>';
    123146                          preg_match_all ('/' . $pattern . '/', $texte, $xtagMatches, PREG_SET_ORDER);
    124147                          $xtextMatches = preg_split ('/' . $pattern . '/', $texte);
  • _plugins_/_stable_/acronymes/plugin.xml

    r8642 r10039  
    88_ &copy; 2006 - Licence GPL
    99        </auteur>
    10         <version>
    11         0.1
    12         </version>
     10        <version>0.1</version>
     11        <version_base>0.1</version_base>
     12        <install>base/acronymes_upgrade.php</install>
    1313        <etat>
    1414        stable
     
    3232        </fonctions>
    3333        <pipeline>
     34                <nom>ajouter_boutons</nom>
     35                <inclure>acronymes_pipeline.php</inclure>
     36        </pipeline>
     37        <pipeline>
    3438                <nom>post_propre</nom>
    3539                <action>traiter_raccourcis</action>
Note: See TracChangeset for help on using the changeset viewer.