Changeset 112249 in spip-zone


Ignore:
Timestamp:
Nov 1, 2018, 12:38:58 AM (12 months ago)
Author:
rastapopoulos@…
Message:

Lors d'une création en mode admin pour un autre, si l'email existe déjà avec un compte qui a déjà le même profil uniquement ou s'il n'y a PAS d'email (normalement pas possible en formulaire CVT mais par contre possible en CSV) et qu'il y a un compte avec pile le même nom et qui n'a pas d'email et là aussi déjà le même profil lié : alors on utilise cet utilisateur déjà existant et ces objets liés potentiels (orga, coord etc), et donc on met à jour plutôt que de créer. Du coup cet ajout permet désormais d'importer un CSV autant de fois qu'on veut, et de mettre à jour des dizaines ou centaines de profils, avec l'email comme pivot

Location:
_plugins_/profils/trunk
Files:
2 edited

Legend:

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

    r112213 r112249  
    209209                        // Sinon c'est qu'une personne crée un profil pour une autre, donc édition classique
    210210                        else {
    211                                 // On crée juste l'auteur vide, les champs seront ajoutés après
    212                                 include_spip('action/editer_objet');
    213                                 $id_auteur = objet_inserer('auteur', null, array('statut' => '6forum'));
     211                                // MAIS AVANT on cherche si cette personne existe déjà, identifiée par son email ou son nom et avec le même profil
     212                                if (
     213                                        (
     214                                                $email_principal
     215                                                and $auteur = sql_fetsel(
     216                                                        'id_auteur',
     217                                                        'spip_auteurs',
     218                                                        // même email et même profil
     219                                                        array('email='.sql_quote($email_principal), 'id_profil='.$profil['id_profil'])
     220                                                )
     221                                        )
     222                                        or (
     223                                                !$email_principal
     224                                                and $nom_principal
     225                                                and $auteur = sql_fetsel(
     226                                                        'id_auteur',
     227                                                        'spip_auteurs',
     228                                                        // même nom exactement et même profil et email VIDE
     229                                                        array('nom='.sql_quote($nom_principal), 'email=""', 'id_profil='.$profil['id_profil'])
     230                                                )
     231                                        )
     232                                ) {
     233                                        $id_auteur = $auteur['id_auteur'];
     234                                       
     235                                        // Vu que c'était pas prévu, on va refaire la recherche de tous les objets possibles à partir de cet id_auteur là
     236                                        extract(profils_chercher_ids_profil($id_auteur, $id_ou_identifiant_profil));
     237                                }
     238                                // Sinon on crée juste l'auteur vide, les champs seront ajoutés après
     239                                else {
     240                                        include_spip('action/editer_objet');
     241                                        $id_auteur = objet_inserer('auteur', null, array('statut' => '6forum'));
     242                                }
    214243                        }
    215244                       
     
    218247                }
    219248               
    220                 // Si on a un utilisateur déjà connecté, on modifie déjà l'auteur existant
     249                // Si on a un auteur, on modifie déjà l'auteur existant
    221250                if ($id_auteur > 0) {
    222251                        // On met en request racine les champs trouvés pour l'auteur
  • _plugins_/profils/trunk/paquet.xml

    r112225 r112249  
    22        prefix="profils"
    33        categorie="auteur"
    4         version="1.3.5"
     4        version="1.3.6"
    55        schema="1.0.0"
    66        etat="test"
Note: See TracChangeset for help on using the changeset viewer.