Changeset 114667 in spip-zone


Ignore:
Timestamp:
Mar 28, 2019, 8:31:38 PM (4 months ago)
Author:
rastapopoulos@…
Message:

Enfin l'export complet des données des profils, pas juste les colonnes ! (et plus d'erreur 500 en ajax, mais de toute façon faudrait enlever l'ajax pour ce form je crois)

Location:
_plugins_/profils/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/profils/trunk/formulaires/exporter_profils.php

    r111029 r114667  
    3737
    3838function formulaires_exporter_profils_traiter_dist($id_profil) {
     39        refuser_traiter_formulaire_ajax();
    3940        $retours = array();
    4041       
     
    9091                }
    9192               
     93                // Si on demande tout, on va charger les données de chaque profil
     94                if (!_request('seulement_colonnes')) {
     95                        // On récupère tous les auteurs de ce profil
     96                        if ($ids = sql_allfetsel('id_auteur', 'spip_auteurs', 'id_profil = '.$profil['id_profil'])) {
     97                                $ids = array_map('reset', $ids);
     98                               
     99                                foreach ($ids as $id_auteur) {
     100                                        $infos = profils_recuperer_infos($id_auteur, $profil['id_profil']);
     101                                        $ligne = array();
     102                                       
     103                                        // On refait tout comme pour les colonnes
     104                                        foreach (array('auteur', 'organisation', 'contact') as $objet) {
     105                                                // Si c'est autre chose que l'utilisateur, faut le plugin qui va avec et que ce soit activé
     106                                                if ($objet == 'auteur' or (defined('_DIR_PLUGIN_CONTACTS') and $config["activer_$objet"])) {
     107                                                        // Pour chaque chaque champ vraiment configuré
     108                                                        if ($config[$objet]) {
     109                                                                foreach ($config[$objet] as $champ => $config_champ) {
     110                                                                        // On prend les champs d'édition de profil uniquement
     111                                                                        if (in_array('edition', $config_champ)) {
     112                                                                                $ligne[] = $infos[$objet][$champ];
     113                                                                        }
     114                                                                }
     115                                                        }
     116                                                       
     117                                                        // On cherche des coordonnées pour cet objet
     118                                                        if (
     119                                                                defined('_DIR_PLUGIN_COORDONNEES')
     120                                                                and $config["activer_coordonnees_$objet"]
     121                                                                and $coordonnees = $config['coordonnees'][$objet]
     122                                                        ) {
     123                                                                // Pour chaque type de coordonnéees (num, email, adresse)
     124                                                                foreach ($coordonnees as $coordonnee => $champs) {
     125                                                                        // Pour chaque champ ajouté
     126                                                                        foreach ($champs as $cle => $champ) {
     127                                                                                // Si ce cette coordonnées est configurée pour le form demandé
     128                                                                                if ($champ['edition']) {
     129                                                                                        // Attention, si pas de type, on transforme ici en ZÉRO
     130                                                                                        if (!$champ['type']) {
     131                                                                                                $champ['type'] = 0;
     132                                                                                        }
     133                                                                                        // On va chercher les saisies de ce type de coordonnées
     134                                                                                        $saisies_coordonnee = profils_chercher_saisies_objet($coordonnee);
     135                                                                                        // On vire le titre libre
     136                                                                                        $saisies_coordonnee = saisies_supprimer($saisies_coordonnee, 'titre');
     137                                                                                        // On cherche uniquement le nom des champs
     138                                                                                        $saisies_noms = saisies_lister_champs($saisies_coordonnee);
     139                                                                                       
     140                                                                                        // On ajoute aux colonnes
     141                                                                                        foreach ($saisies_noms as $nom) {
     142                                                                                                $ligne[] = $infos['coordonnees'][$objet][$coordonnee][$champ['type']][$nom];
     143                                                                                        }
     144                                                                                }
     145                                                                        }
     146                                                                }
     147                                                        }
     148                                                }
     149                                        }
     150                                       
     151                                        $donnees[] = $ligne;
     152                                }
     153                        }
     154                }
     155               
    92156                $exporter_csv = charger_fonction('exporter_csv', 'inc/');
    93157                $exporter_csv($profil['identifiant'], $donnees, ',', $colonnes);
  • _plugins_/profils/trunk/inc/profils.php

    r112225 r114667  
    390390 */
    391391function profils_recuperer_infos($id_auteur=0, $id_ou_identifiant_profil='') {
     392        include_spip('inc/editer');
    392393        $retour = '';
    393394        $infos = array();
  • _plugins_/profils/trunk/paquet.xml

    r114512 r114667  
    22        prefix="profils"
    33        categorie="auteur"
    4         version="1.3.8"
     4        version="1.4.0"
    55        schema="1.0.0"
    66        etat="stable"
Note: See TracChangeset for help on using the changeset viewer.