Changeset 57324 in spip-zone


Ignore:
Timestamp:
Jan 19, 2012, 9:29:49 AM (8 years ago)
Author:
rastapopoulos@…
Message:

Une fonction d'importation des acronymes depuis F&T lors de l'installation de notre plugin Dictionnaires.
Commit à l'aveugle car je n'ai pas de base de test sous la main là. Il faut donc tester en activant ce plugin pour la première fois sur un site qui contient des acronymes dans F&T.

Location:
_plugins_/dictionnaires/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/dictionnaires/trunk/dictionnaires_administrations.php

    r57316 r57324  
    2626                        ecrire_config('dictionnaires/remplacer_premier_abbr', 'on');
    2727                       
     28                        // Migration depuis F&T si présent
     29                        dictionnaires_migrer_acronymes();
     30                       
    2831                        echo "Installation du plugin dictionnaires<br/>";
    2932                        ecrire_meta($nom_meta_version_base, $version_actuelle=$version_cible, 'non');
     
    4649}
    4750
     51function dictionnaires_migrer_acronymes(){
     52        // Si F&T est actif là tout de suite et qu'il y a une table d'acronymes
     53        if (
     54                _DIR_PLUGIN_FORMS
     55                and include_spip('base/forms_base_api')
     56                and count($liste=Forms_liste_tables('acronymes_sigles'))
     57        ){
     58                include_spip('forms_fonctions');
     59                $id_form = intval(reset($liste));
     60                spip_query("SELECT id_donnee FROM spip_forms_donnees WHERE id_form="._q($id_form)." AND statut='publie'");
     61                $acronymes = sql_allfetsel('id_donnee, statut, date', 'spip_forms_donnees', 'id_form = '.$id_form);
     62                if ($acronymes and is_array($acronymes)){
     63                        // On commence par créer un dictionnaire pour l'importation
     64                        include_spip('action/editer_dictionnaire');
     65                        if ($id_dictionnaire = insert_dictionnaire()){
     66                                // On lui met des champs par défaut
     67                                dictionnaire_set($id_dictionnaire, array(
     68                                        'titre' => _T('dictionnaire:importer_acronymes_titre'),
     69                                        'actif' => 0,
     70                                        'descriptif' => _T('dictionnaire:importer_acronymes_descriptif'),
     71                                ));
     72                               
     73                                // On parcourt ensuite les acronymes à importer pour récupérer leurs infos
     74                                foreach ($acronymes as $acronyme){
     75                                        if ($titre = trim(str_replace("." , "", forms_calcule_les_valeurs('forms_donnees_champs', $acronyme['id_donnee'], 'ligne_1', $id_form,' ', true)))){
     76                                                $definition = array(
     77                                                        'id_dictionnaire' => $id_dictionnaire,
     78                                                        'titre' => $titre,
     79                                                        'texte' => forms_calcule_les_valeurs('forms_donnees_champs', $acronyme['id_donnee'], 'texte_1', $id_form,' ', true),
     80                                                        'date' => $acronyme['date'],
     81                                                        'statut' => ($acronyme['statut'] == 'publie') ? 'publie' : 'prop',
     82                                                        'lang' => forms_calcule_les_valeurs('forms_donnees_champs', $acronyme['id_donnee'], 'select_2', $id_form,' ', true)
     83                                                );
     84                                               
     85                                                // On crée la définition dans la base
     86                                                include_spip('action/editer_definition');
     87                                                if ($id_definition = insert_definition()){
     88                                                        definition_set($id_definition, $definition);
     89                                                }
     90                                        }
     91                                }
     92                        }
     93                }
     94        }
     95}
     96
    4897// Désinstallation
    4998function dictionnaires_vider_tables($nom_meta_version_base){
  • _plugins_/dictionnaires/trunk/lang/dictionnaire_fr.php

    r57316 r57324  
    1515'icone_creer_dictionnaire' => 'Ajouter un nouveau dictionnaire',
    1616'icone_modifier_dictionnaire' => 'Modifier ce dictionnaire',
     17'importer_acronymes_descriptif' => 'Importation des acronymes depuis le plugin éponyme qui utilisait Forms & Tables',
     18'importer_acronymes_titre' => 'Importation des acronymes',
    1719'info_1_dictionnaire' => 'Un dictionnaire',
    1820'info_aucun_dictionnaire' => 'Aucun dictionnaire',
Note: See TracChangeset for help on using the changeset viewer.