Changeset 58145 in spip-zone


Ignore:
Timestamp:
Feb 8, 2012, 1:34:52 PM (8 years ago)
Author:
rastapopoulos@…
Message:

Ajout d'une option "sensible à la casse" pour les définitions qui obligera alors le détecteur à prendre uniquement ce qu'on a mis comme terme : "ce" ne sera plus reconnu pour "CE".

+ correction de bug qui faisait que les cases à cocher ne pouvaient pas être décochées...

+ chaine d'explication en plus

Location:
_plugins_/dictionnaires/trunk
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/dictionnaires/trunk/action/editer_definition.php

    r57744 r58145  
    8888                unset($c['id_dictionnaire']);
    8989        }
    90 
     90       
    9191        include_spip('inc/modifier');
    9292        revision_definition($id_definition, $c);
  • _plugins_/dictionnaires/trunk/base/dictionnaires_tables.php

    r58087 r58145  
    5050                'titre' => 'text not null default ""',
    5151                'texte' => 'text not null default ""',
     52                'termes' => 'text not null default ""',
    5253                'type' => 'varchar(255) not null default ""',
    53                 'termes' => 'text not null default ""',
     54                'casse' => 'tinyint(1) not null default 0',
    5455                'statut' => 'varchar(255) not null default "prop"',
    5556                'lang' => 'varchar(10) not null default ""',
  • _plugins_/dictionnaires/trunk/dictionnaires_administrations.php

    r57745 r58145  
    3737                       
    3838                        // On ajoute un champ pour choisir le type par défaut dans un dictionnaire
    39                         sql_alter("TABLE spip_dictionnaires ADD COLUMN type_defaut varchar(255) not null default ''");
     39                        maj_tables('spip_dictionnaires');
    4040                       
    4141                        // On change la version
    4242                        ecrire_meta($nom_meta_version_base, $version_actuelle=$version_cible, 'non');
    4343                }
    44        
     44               
     45                if (version_compare($version_actuelle,$version_cible='0.3.0','<')){
     46                        include_spip('base/abstract_sql');
     47                       
     48                        // On ajoute un champ pour forcer la prise en compte de la casse pour une définition
     49                        maj_tables('spip_definitions');
     50                       
     51                        // On change la version
     52                        ecrire_meta($nom_meta_version_base, $version_actuelle=$version_cible, 'non');
     53                }
    4554        }
    4655
  • _plugins_/dictionnaires/trunk/dictionnaires_pipelines.php

    r57769 r58145  
    9696       
    9797        // On cherche la définition du terme trouvé
    98         $mot = strtolower($captures[2]);
    99         if ($definition = $definitions[$mot]){
     98        if ($definition = $definitions[$captures[2]] or $definition = $definitions[strtolower($captures[2])]){
    10099                $type = $definition['type'];
    101100               
  • _plugins_/dictionnaires/trunk/formulaires/editer_definition.php

    r57619 r58145  
    5050                        )
    5151                ),
     52                array(
     53                        'saisie' => 'case',
     54                        'options' => array(
     55                                'nom' => 'casse',
     56                                'label' => _T('definition:champ_casse_label'),
     57                                'label_case' => _T('definition:champ_casse_label_case'),
     58                                'valeur_oui' => '1',
     59                        )
     60                ),
    5261        );
    5362       
     
    7382function formulaires_editer_definition_traiter_dist($id_definition='new',  $id_dictionnaire=0, $retour=''){
    7483        if ($retour) refuser_traiter_formulaire_ajax();
     84        if (is_null(_request('type'))){ set_request('type', ''); }
     85        if (is_null(_request('casse'))){ set_request('casse', ''); }
    7586        $retours = formulaires_editer_objet_traiter('definition', $id_definition, $id_dictionnaire, 0, $retour, '');
    7687       
  • _plugins_/dictionnaires/trunk/formulaires/editer_dictionnaire.php

    r57619 r58145  
    3737                                'nom' => 'actif',
    3838                                'label' => _T('dictionnaire:champ_actif_label'),
     39                                'explication' => _T('dictionnaire:champ_actif_explication'),
    3940                                'datas' => array(
    4041                                        '0' => _T('dictionnaire:champ_actif_non'),
     
    6162function formulaires_editer_dictionnaire_traiter_dist($id_dictionnaire='new', $retour=''){
    6263        if ($retour) refuser_traiter_formulaire_ajax();
     64        if (is_null(_request('type_defaut'))){ set_request('type_defaut', ''); }
    6365        $retours = formulaires_editer_objet_traiter('dictionnaire', $id_dictionnaire, 0, 0, $retour, '');
    6466       
  • _plugins_/dictionnaires/trunk/inc/dictionnaires.php

    r57447 r58145  
    5252                        // À l'intérieur on récupère toutes les définitions publiées
    5353                        $definitions_publiees = sql_allfetsel(
    54                                 'id_dictionnaire, id_definition, titre, termes, type, texte',
     54                                'id_dictionnaire, id_definition, titre, termes, type, casse, texte',
    5555                                'spip_definitions',
    5656                                array(
     
    8484                        // Si c'est une abbréviation, on reconnait automatique une version avec des p.o.i.n.t.s.?
    8585                        if ($definition['type'] == 'abbr'){
    86                                 $titre = strtolower($definition['titre']);
     86                                $titre = $definition['casse'] ? $definition['titre'] : strtolower($definition['titre']);
    8787                                $avec_points = $titre[0];
    8888                                for ($i=1 ; $i<strlen($titre) ; $i++){
    8989                                        $avec_points .= '.'.$titre{$i};
    9090                                }
     91                                $definition['termes'][] = $avec_points.'.';
    9192                                $definition['termes'][] = $avec_points;
    92                                 $definition['termes'][] = $avec_points.'.';
    9393                        }
    9494                       
    9595                        // On nettoie les termes = pas de truc vide, tout en minuscule, pas de doublons
    9696                        $definition['termes'] = array_filter($definition['termes']);
    97                         $definition['termes'] = array_map('strtolower', $definition['termes']);
     97                        if (!$definition['casse']){
     98                                $definition['termes'] = array_map('strtolower', $definition['termes']);
     99                        }
    98100                        $definition['termes'] = array_unique($definition['termes']);
    99101                       
     
    107109                                        )
    108110                                )
    109                                 .')(?=([^\w]|\s|&nbsp;|$))}is';
     111                                .')(?=([^\w]|\s|&nbsp;|$))}s'.($definition['casse']?'':'i');
    110112                       
    111113                        // Et voilà
  • _plugins_/dictionnaires/trunk/lang/definition_fr.php

    r57442 r58145  
    66$GLOBALS[$GLOBALS['idx_lang']] = array(
    77'bulledaide_definitions' => 'Consulter le glossaire du site (sigles et définitions)',
     8'champ_casse_label' => 'Sensibilité de la casse',
     9'champ_casse_label_case' => 'La détection de ce terme sera sensible aux minuscules et majuscules.',
    810'champ_statut_label' => 'Statut',
    911'champ_termes_explication' => 'Des termes supplémentaires qui permettront de détecter la définition, séparés par des virgules.',
  • _plugins_/dictionnaires/trunk/lang/dictionnaire_fr.php

    r58087 r58145  
    55
    66$GLOBALS[$GLOBALS['idx_lang']] = array(
     7'champ_actif_explication' => 'Un dictionnaire actif aura ses termes détectés dans les contenus du site.',
    78'champ_actif_label' => 'Activé',
     9'champ_actif_non' => 'Inactif',
    810'champ_actif_oui' => 'Actif',
    9 'champ_actif_non' => 'Inactif',
    1011'champ_descriptif_label' => 'Descriptif',
    1112'champ_titre_label' => 'Titre',
    1213'champ_type_defaut_label' => 'Abréviation par défaut',
    13 'champ_type_defaut_label_case' => 'Les nouvelles définitions de ce dictionnaire seront par défaut des abréviations',
     14'champ_type_defaut_label_case' => 'Les nouvelles définitions de ce dictionnaire seront par défaut des abréviations.',
    1415'configurer_champ_remplacer_premier_abbr_label' => 'Remplacer uniquement la première occurence d\'une abbréviation',
    1516'configurer_champ_remplacer_premier_defaut_label' => 'Remplacer uniquement la première occurence d\'une définition',
  • _plugins_/dictionnaires/trunk/plugin.xml

    r58087 r58145  
    44        <auteur>[Les Développements Durables->http://www.ldd.fr]</auteur>
    55        <licence>GPL v3</licence>
    6         <version>0.2.4</version>
    7         <version_base>0.2.0</version_base>
     6        <version>0.3.0</version>
     7        <version_base>0.3.0</version_base>
    88        <etat>dev</etat>
    99        <description>Permet la création de dictionnaires regroupant des définitions. Les termes définis sont automatiquement détectés dans les textes du site et il est alors possible de les insérer dans le HTML du texte de manière accessible.</description>
Note: See TracChangeset for help on using the changeset viewer.