Changeset 84516 in spip-zone


Ignore:
Timestamp:
Sep 7, 2014, 11:19:57 PM (6 years ago)
Author:
rastapopoulos@…
Message:

Nouvelle option dans la migration des Albums : permettre de migrer TOUT le site, et non plus secteur par secteur, ce qui était très chiant quand on avait plein de secteurs. + Migration correcte des auteurs ! En effet, on perdait les auteurs dans la migration. Maintenant les auteurs des articles migrés se retrouvent sur les albums qui les remplacent.

Location:
_plugins_/albums/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/albums/trunk/formulaires/migrer_albums.html

    r84515 r84516  
    2020
    2121                        [(#REM) Select: choix de la rubrique ]
     22                        #SET{id_parent,#ENV{id_parent}}
     23                        [(#ENV{id_parent}|=={-1000}|oui) #SET{id_parent,0} ]
    2224                        [<li class="editer editer_parent[ (#ENV**{erreurs}|table_valeur{id_parent}|oui)erreur]">
    2325                                <label for="id_parent"><:migreralbums:label_rubrique_source:></label>[
    2426                                <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{id_parent})</span>
    2527                                ]
    26                                 (#VAL|chercher_rubrique{0,#ENV{id_parent},'article',0,0,0,form_simple})
     28                                (#VAL|chercher_rubrique{0,#GET{id_parent},'article',0,0,0,form_simple}|replace{value=("|')0("|'),value="-1000"}|replace{\(<option\[^>\]*value="-1000"\[^>\]*>\),$1<:migreralbums:label_tout_le_site:>})
    2729                         </li>]
    2830
  • _plugins_/albums/trunk/formulaires/migrer_albums.php

    r84515 r84516  
    8989function formulaires_migrer_albums_traiter_dist(){
    9090        $id_rubrique = _request('id_parent');
    91         $where_articles = migrer_albums_where_articles($id_rubrique,_request('toute_la_branche'));
    92         $refuser = (_request('refuser_articles')?true:false);
     91        $where_articles = migrer_albums_where_articles($id_rubrique, _request('toute_la_branche'));
     92        $refuser = (_request('refuser_articles') ? true : false);
     93        $lier_rubriques = (_request('lier_rubriques') ? true : false);
    9394        $groupes = _request('groupes_mots');
    9495        if (!$groupes)
     
    9798
    9899        // et migrer les articles
    99         $nb = albums_migrer_articles($where_articles, $where_mots, $refuser);
     100        $nb = albums_migrer_articles($where_articles, $where_mots, $refuser, $lier_rubriques);
    100101
    101102        $message = sinon(singulier_ou_pluriel($nb,'info_1_article','info_nb_articles'),_T('info_aucun_article'));
     
    110111 * @return int nombre d'articles migrés
    111112 */
    112 function albums_migrer_articles($where_articles, $where_mots, $refuser){
     113function albums_migrer_articles($where_articles, $where_mots, $refuser, $lier_rubriques){
    113114        include_spip("action/editer_objet");
    114115        include_spip("action/editer_liens");
     
    127128                        objet_associer(array('album'=>$id_album),array('article'=>$row['id_article']));
    128129                        // et peut-être en plus à la rubrique
    129                         if (_request('lier_rubriques') == 'oui'){
     130                        if ($lier_rubriques){
    130131                                objet_associer(array('album'=>$id_album),array('rubrique'=>$row['id_rubrique']));
    131132                        }
    132 
     133                       
     134                        // réassocier les bons auteurs
     135                        if ($liens_auteurs = objet_trouver_liens(array('auteur'=>'*'), array('article'=>$row['id_article']))){
     136                                $auteurs = array();
     137                                foreach ($liens_auteurs as $lien){
     138                                        $auteurs[] = $lien['id_auteur'];
     139                                }
     140                                objet_dissocier(array('auteur'=>'*'), array('album'=>$id_album));
     141                                objet_associer(array('auteur'=>$auteurs), array('album'=>$id_album));
     142                        }
     143                       
     144                       
    133145                        // titrer et decrire
    134146                        $descriptif = array();
     
    197209        $where = array();
    198210        $where[] = "statut=".sql_quote('publie');
    199         if ($branche){
    200                 include_spip("inc/rubriques");
    201                 $where[] = sql_in('id_rubrique',calcul_branche_in($id_rubrique));
    202         }
    203         else
    204                 $where[] = "id_rubrique=".intval($id_rubrique);
     211        if ($id_rubrique > 0){
     212                if ($branche){
     213                        include_spip("inc/rubriques");
     214                        $where[] = sql_in('id_rubrique',calcul_branche_in($id_rubrique));
     215                }
     216                else
     217                        $where[] = "id_rubrique=".intval($id_rubrique);
     218        }
    205219
    206220        return $where;
  • _plugins_/albums/trunk/lang/migreralbums_fr.php

    r84515 r84516  
    2525        'label_refuser_articles_oui' => 'Passer les articles en "refusé" après leur transformation en albums',
    2626        'label_rubrique_source' => 'Rubrique à migrer',
     27        'label_tout_le_site' => 'Tout le site !',
    2728        'label_toute_la_branche_oui' => 'Inclure les sous-rubriques',
    2829
Note: See TracChangeset for help on using the changeset viewer.