Changeset 75805 in spip-zone


Ignore:
Timestamp:
Sep 13, 2013, 10:31:30 AM (6 years ago)
Author:
cy_altern@…
Message:

creation rubriques admin manquantes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/csv2spip/dev_spip3/formulaires/csv2spip_importation.php

    r74238 r75805  
    1212        "traitement_article_efface"  => "rien_faire",
    1313        "transfere_article"          => "",
    14         "rubrique_parent_archive"    => "0",
     14        "id_rubrique_parent_archive"    => "0",
    1515        "nom_rubrique_archive"       => "archive_$annee",
    16         "rubrique_parent"            => "0",
     16        "id_rubrique_parent"            => "0",
    1717    );
    1818       
     
    5050    $suppression_article_efface = _request('suppression_article_efface');
    5151    $traitement_article_efface = _request('traitement_article_efface');
    52     $id_rubrique_parent = _request('rubrique_parent_archive');
    5352    $nom_rubrique_archive = _request('nom_rubrique_archive');
    54     $rubrique_parent = _request('rubrique_parent');
    55 
    56     //récupération de l'id de la rubrique parent
    57     $id_rubrique_parent=explode('|',$id_rubrique_parent[0]);
    58     $id_rubrique_parent=$id_rubrique_parent[1];
     53
     54    // recuperation de l'id de la rubrique parent des rubriques admins
     55    $id_rubrique_parent_admin = _request('id_rubrique_parent');
     56    $id_rubrique_parent_admin = explode('|',$id_rubrique_parent_admin[0]);
     57    $id_rubrique_parent_admin = $id_rubrique_parent_admin[1];
     58
     59    //récupération de l'id de la rubrique parent archive
     60    $id_rubrique_parent_archive = _request('id_rubrique_parent_archive');
     61    $id_rubrique_parent_archive=explode('|',$id_rubrique_parent[0]);
     62    $id_rubrique_parent_archive=$id_rubrique_parent_archive[1];
    5963   
    6064    $retour = array();
    6165
     66        include_spip('action/editer_rubrique');
    6267        if ($abs_redacs OR $abs_admins OR $abs_visiteurs){
    6368                include_spip('action/editer_objet');
     
    8388    // $tableau_csv_admins
    8489    $tableau_csv_visiteurs = $tableau_csv_redacs = $tableau_csv_admins = array();
     90    $tableau_csv_rubriques_admins = array();
    8591    $fichiercsv= fopen($destination, "r");
    8692    $i=0;
     
    106112                        }
    107113           } else {
     114                        // correspondance statut spip / statut csv
     115                        $Tcorrespondances = array('administrateur'=>'0minirezo', 'redacteur'=>'1comite', 'visiteur'=>'5forum');
    108116                        for ($j = 0; $j < $nombre_elements; $j++) {
    109117                                if ($data[$num_login] OR $data[$num_email]) {   //creation du tableau contenant l'ensemble des données à importer
    110                                    if ($data[$num_statut] == '6forum')
     118                                   if ($Tcorrespondances[$data[$num_statut]] == '6forum')
    111119                                                $tableau_csv_visiteurs[$data[$num_login]?$data[$num_login]:$data[$num_email]][$en_tete[$j]] = $data[$j];
    112                                    if ($data[$num_statut] == '1comite')
     120                                   if ($Tcorrespondances[$data[$num_statut]] == '1comite')
    113121                                                $tableau_csv_redacs[$data[$num_login]?$data[$num_login]:$data[$num_email]][$en_tete[$j]] = $data[$j];
    114                                    if ($data[$num_statut] == '0minirezo')
     122                                   if ($Tcorrespondances[$data[$num_statut]] == '0minirezo') {
    115123                                                $tableau_csv_admins[$data[$num_login]?$data[$num_login]:$data[$num_email]][$en_tete[$j]] = $data[$j];
     124                                                if ($en_tete[$j] == 'ss_groupe' AND $data[$j]) {
     125                                                        $Trub = explode('|', $data[$j]);
     126                                                        foreach($Trub as $rub)
     127                                                                if (!in_array($rub, $tableau_csv_rubriques_admins))
     128                                                                        $tableau_csv_rubriques_admins[] = $rub;
     129                                                }
     130                                        }
    116131                                }
    117132                        }
     
    121136    fclose($fichiercsv);
    122137    unlink($destination);
    123     
     138   
    124139
    125140    //récupération des auteurs de la bdd en 3 array
     
    150165    }
    151166
     167        // traitement rubriques admin
     168    // construction du tableau de correspondance nom_rubrique avec leur id
     169    // création des rubriques n'existant pas
     170    $tableau_bdd_rubriques_admins = array();
     171    $result = sql_select(array('id_rubrique', 'titre'), 'spip_rubriques');
     172    while ($row = sql_fetch($result)){
     173                $tableau_bdd_rubriques_admins[$row['id_rubrique']] = strtolower($row['titre']);
     174        }
     175
     176
     177        // créer les rubriques admins du csv n'existant pas et les indexer
     178        foreach($tableau_csv_rubriques_admins as $id_rub=>$rub){
     179                if (!in_array(strtolower($rub), $tableau_bdd_rubriques_admins)) {
     180                        $set = array('titre'=>$rub);
     181                        $id_rub = rubrique_inserer($id_rubrique_parent_admin);
     182                        rubrique_modifier($id_rub, $set);
     183                        $tableau_bdd_rubriques_admins[$id_rub] = $rub;
     184                }
     185        }
     186
    152187
    153188    // PARTIE II : Suppresions des absents (changer le statut des auteurs en 5.poubelle)  avec 3 choix pour la gestion des articles associés
     
    158193    // Si choix3 : transferer les articles , création de la rubrique d'archive (en tenant compte d'une rubrique parent)
    159194        if($traitement_article_efface == "transferer_articles"){
    160                 if(!$id_rubrique_archive = sql_fetsel('id_rubrique','spip_rubriques',array('titre ="'.$nom_rubrique_archive.'"',"id_parent=$id_rubrique_parent"))){
     195                if(!$id_rubrique_archive = sql_fetsel('id_rubrique','spip_rubriques',array('titre ="'.$nom_rubrique_archive.'"',"id_parent=$id_rubrique_parent_archive"))){
    161196                        $objet = 'rubrique';
    162197                        $set = array('titre'=>$nom_rubrique_archive);
    163                         $id_rubrique_archive = objet_inserer($objet,$id_rubrique_parent);
     198                        $id_rubrique_archive = objet_inserer($objet,$id_rubrique_parent_archive);
    164199                        objet_modifier($objet, $id_rubrique_archive, $set);
    165200                }
     
    178213                csv2spip_supprimer_auteurs($Tid_admins, '0minirezo',$traitement_article_efface,$id_rubrique_archive);
    179214        }
     215
     216    // PARTIE III : maj des existants
     217    // 1. ras
     218    // 2. supprimer les articles
     219    // 3. transferer les articles dans une rubrique d'archivage
    180220
    181221   
Note: See TracChangeset for help on using the changeset viewer.