Changeset 73834 in spip-zone


Ignore:
Timestamp:
Jun 24, 2013, 3:40:44 PM (6 years ago)
Author:
marcimat@…
Message:
  • De la même manière, lors de l'édition d'un contact, ne pas chercher à créer un numéro vide.
  • par ailleurs, l'édition d'un contact ne nécessite pas que le contact existe (mais d'avoir un auteur + email), car le contact est créé dans ce cas dans le traitement du formulaire d'édition.
Location:
_plugins_/clients
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/clients/formulaires/editer_client.php

    r73832 r73834  
    169169        $contexte = array();
    170170
    171         // On vérifie qu'il y a un client correct (auteur+contact+adresse) quelque part
     171        // On vérifie qu'il y a un client correct possible (auteur avec email) quelque part
     172        // (cas d'un inscrit rédacteur qui deviendrait client)
     173        // Si le contact est déjà renseigné, on remplit la fiche
    172174        if (
    173175                $id_auteur > 0
    174176                and $email = sql_getfetsel('email', 'spip_auteurs', 'id_auteur = '.intval($id_auteur))
    175                 and $contact = sql_fetsel(
     177        ){
     178
     179                $contact = sql_fetsel(
    176180                        '*',
    177181                        'spip_contacts_liens LEFT JOIN spip_contacts USING(id_contact)',
     
    180184                                'id_objet = '.intval($id_auteur)
    181185                        )
    182                 )
    183         ){
     186                );
    184187
    185188                $contexte['email_rien'] = $email;
    186                 foreach ($contact as $cle=>$valeur) {
    187                         $contexte[$cle] = $valeur;
    188                 }
    189                
     189                if (is_array($contact)) {
     190                        foreach ($contact as $cle=>$valeur) {
     191                                $contexte[$cle] = $valeur;
     192                        }
     193                }
     194
    190195                // S'il y a une adresse principale, on charge les infos
    191196                if ($adresse = sql_fetsel(
     
    197202                                'type = '.sql_quote('principale')
    198203                        )
    199                 ))
     204                )) {
    200205                        $contexte = array_merge($contexte, $adresse);
    201                        
     206                }
     207
    202208                // S'il y a un numero principal, on charge les infos
    203209                if ($numero = sql_fetsel(
     
    209215                                'type = '.sql_quote('principal')
    210216                        )
    211                 ))
     217                )) {
    212218                        $contexte = array_merge($contexte, $numero);
    213                        
     219                }
     220
    214221                $conf=lire_config('clients/elm',array());
    215                 if (in_array('portable', $conf)){       
     222                if (in_array('portable', $conf)) {
    216223                        // S'il y a un numero portable, on charge les infos
    217224                        if ($portable = sql_fetsel(
     
    223230                                        'type = '.sql_quote('portable')
    224231                                )
    225                         )){
     232                        )) {
    226233                                foreach($portable as $c => $v){
    227234                                        if ($c == 'numero'){
     
    229236                                                        $_portable[$c] = $v;
    230237                                                        }
    231                                         }                               
     238                                        }
    232239                                $contexte = array_merge($contexte, $_portable);
    233240                        }
    234241                }
    235                 if (in_array('fax', $conf)){   
     242
     243                if (in_array('fax', $conf)) {
    236244                        // S'il y a un numero fax, on charge les infos
    237245                        if ($fax = sql_fetsel(
     
    243251                                        'type = '.sql_quote('fax')
    244252                                )
    245                         )){
     253                        )) {
    246254                                foreach($fax as $c => $v){
    247255                                        if ($c == 'numero'){
     
    254262                }
    255263        }
     264
    256265        // Sinon rien
    257         else{
     266        else {
    258267                $contexte['editable'] = false;
    259268        }
    260        
     269
    261270        return $contexte;
    262271}
    263272
     273
     274
    264275function formulaires_editer_client_verifier_dist($id_auteur, $retour=''){
    265276        $erreurs = array();
    266        
    267277        return $erreurs;
    268278}
     279
    269280
    270281function formulaires_editer_client_traiter_dist($id_auteur, $retour=''){
     
    281292        );
    282293
    283     //Si le contact n'existe pas encore, on doit le créer (cas d'un auteur prexistant à son statut de client)
    284     if (is_null($id_contact)) {
    285         $inscrire_client = charger_fonction('traiter','formulaires/inscription_client');
    286         $inscrire_client();
    287 
    288             $id_contact = sql_getfetsel(
    289                     'id_contact',
    290                     'spip_contacts_liens',
    291                     'objet = '.sql_quote('auteur').' and id_objet = '.$id_auteur
    292             );
    293     }
    294 
    295     $editer_contact = charger_fonction('editer_contact', 'action/');
    296     $editer_contact($id_contact);
     294        //Si le contact n'existe pas encore, on doit le créer (cas d'un auteur prexistant à son statut de client)
     295        if (is_null($id_contact)) {
     296                $inscrire_client = charger_fonction('traiter','formulaires/inscription_client');
     297                $inscrire_client();
     298
     299                $id_contact = sql_getfetsel(
     300                        'id_contact',
     301                        'spip_contacts_liens',
     302                        'objet = '.sql_quote('auteur').' and id_objet = '.$id_auteur
     303                );
     304        }
     305
     306        $editer_contact = charger_fonction('editer_contact', 'action/');
     307        $editer_contact($id_contact);
    297308
    298309        // Le pseudo SPIP est construit
    299310        $nom_save = _request('nom') ;
    300311        set_request('nom', trim(_request('prenom').' '._request('nom')));
    301        
     312
    302313        // On modifie l'auteur
    303314        $editer_auteur = charger_fonction('editer_auteur', 'action/');
    304315        $editer_auteur($id_auteur);
    305        
     316
    306317        // On modifie l'adresse
    307318        $id_adresse = sql_getfetsel(
     
    314325                )
    315326        );
     327
    316328        // S'il n'y a pas d'adresse principale, on la crée
    317329        if (!$id_adresse){
     
    321333                set_request('type', 'principale');
    322334        }
    323        
     335
    324336        $editer_adresse = charger_fonction('editer_adresse', 'action/');
    325337        $editer_adresse($id_adresse);
    326        
     338
    327339        // On modifie le numero
    328340        $id_numero = sql_getfetsel(
     
    335347                )
    336348        );
    337        
    338         // S'il n'y a pas de numero de telephone principal, on le crée
    339         if (!$id_numero){
    340                 $id_numero = 'oui';
    341                 set_request('objet', 'auteur');
    342                 set_request('id_objet', $id_auteur);
    343                 set_request('type', 'principal');
    344         }
    345        
    346         $editer_numero = charger_fonction('editer_numero', 'action/');
    347         $editer_numero($id_numero);
    348        
     349
     350        if (_request('numero')) {
     351                // S'il n'y a pas de numero de telephone principal, on le crée
     352                if (!$id_numero){
     353                        $id_numero = 'oui';
     354                        set_request('objet', 'auteur');
     355                        set_request('id_objet', $id_auteur);
     356                        set_request('type', 'principal');
     357                }
     358
     359                $editer_numero = charger_fonction('editer_numero', 'action/');
     360                $editer_numero($id_numero);
     361        } elseif ($id_numero) {
     362                // dans ce cas, c'est que le numéro a été supprimé par le client dans le formulaire
     363                // [Todo] il faudrait effacer aussi le numéro dans la base !
     364        }
     365
    349366        // On modifie le portable s'il existe dans l'environnement
    350         if(_request('portable')){
     367        if (_request('portable')){
    351368                // on stocke cette donnee
    352369                $numero = _request('numero');
     
    361378                        )
    362379                );
    363        
     380
    364381                // S'il n'y a pas de numero de portable, on le crée
    365382                if (!$id_portable){
     
    369386                        set_request('type', 'portable');
    370387                }
    371                
     388
    372389                $editer_portable = charger_fonction('editer_numero', 'action/');
    373390                $editer_portable($id_portable);
    374                
    375         }
    376        
     391        }
     392
    377393        // On modifie le fax s'il existe dans l'environnement
    378         if(_request('fax')){
     394        if (_request('fax')){
    379395                // on stocke cette donnee si elle ne l'est pas deja
    380396                $numero ? '' : $numero = _request('numero');
     
    389405                        )
    390406                );
    391        
     407
    392408                // S'il n'y a pas de numero de fax, on le crée
    393409                if (!$id_fax){
     
    400416                $editer_fax = charger_fonction('editer_numero', 'action/');
    401417                $editer_fax($id_fax);
    402                
    403         }
    404        
     418
     419        }
     420
    405421        // Quand on reste sur la même page, on peut toujours éditer après
    406422        $retours['editable'] = true;
    407423        // si necessaire on replace la bonne donnee dans l'environnement
    408424        $numero ? set_request('numero', $numero) : '';
    409        
     425
    410426        // Si on demande une redirection
    411427        if ($retour) $retours['redirect'] = $retour;
  • _plugins_/clients/plugin.xml

    r73832 r73834  
    33        <auteur>[Les D&#233;veloppements Durables->http://www.ldd.fr]</auteur>
    44        <licence>GPL v3</licence>
    5         <version>0.5.6</version>
     5        <version>0.5.7</version>
    66        <version_base>0.1</version_base>
    77        <etat>dev</etat>
Note: See TracChangeset for help on using the changeset viewer.