function formulaires_vacarme_inscription_client_traiter_dist($retour = '', $url = '') { // Si redirection demandée, on refuse le traitement en ajax if ($retour) { refuser_traiter_formulaire_ajax(); } // Le pseudo SPIP est construit set_request('nom_inscription', trim(_request('prenom') . ' ' . _request('nom'))); // On active le traitement du formulaire d'inscription classique, donc on crée un nouvel utilisateur if (!($id_auteur = verifier_session())) { $mode = tester_config(0); $inscription_dist = charger_fonction('traiter', 'formulaires/inscription'); $retours = $inscription_dist($mode, ''); $id_auteur = sql_getfetsel('id_auteur', 'spip_auteurs', 'email = ' . sql_quote(_request('mail_inscription'))); } // On récupère l'auteur qu'on vient de créer avec l'email du form if ($id_auteur) { // On ajoute des infos au contexte set_request('objet', 'auteur'); set_request('id_objet', $id_auteur); set_request('type', 'principale'); // On crée un contact pour cet utilisateur $editer_contact = charger_fonction('editer_contact', 'action/'); list($id_contact, $err) = $editer_contact('nouveau'); // on ajoute les infos propres au plugin vacarme_commande : organisation, service, type_client $type_client = _request('type_client'); if ($type_client == 'organisation') { $organisation = _request('organisation'); $service = _request('service'); sql_updateq('spip_contacts', array('type_client' => $type_client, 'organisation' => $organisation, 'service' => $service), "id_contact=" . intval($id_contact)); } else { sql_updateq('spip_contacts', array('type_client' => $type_client), "id_contact=" . intval($id_contact)); } //On lie le contact à l'auteur sql_insertq('spip_contacts_liens', array('id_objet' => $id_auteur, 'objet' => 'auteur', "id_contact" => $id_contact)); //assurer la compatibilite sql_updateq('spip_contacts', array('id_auteur' => $id_auteur), "id_contact=" . intval($id_contact)); // On crée l'adresse $editer_adresse = charger_fonction('editer_adresse', 'action/'); $editer_adresse('oui'); // On crée le numero de tel set_request('type', 'principal'); $editer_numero = charger_fonction('editer_numero', 'action/'); $editer_numero('oui'); // On crée le portable if (_request('portable')) { // on stocke cette donnee $numero = _request('numero'); set_request('numero', _request('portable')); set_request('type', 'portable'); set_request('titre', 'Portable'); $editer_portable = charger_fonction('editer_numero', 'action/'); $editer_portable('oui'); } // On crée le fax if (_request('fax')) { // on stocke cette donnee si elle ne l'est pas deja $numero ? '' : ($numero = _request('numero')); set_request('numero', _request('fax')); set_request('type', 'fax'); set_request('titre', 'Fax'); $editer_fax = charger_fonction('editer_numero', 'action/'); $editer_fax('oui'); } } // si necessaire on replace la bonne donnee dans l'environnement $numero ? set_request('numero', $numero) : ''; // Comme conseillé dans la documentation on informe de l'id auteur inscrit $retours['id_auteur'] = $id_auteur; if ($retours['message_ok']) { $lien = generer_url_public("compte", "c=identification"); if ($url) { $lien = parametre_url($lien, 'retour', $url); $retours['message_ok'] = _T('vacarme_commande:formulaire_inscription_message_ok', array(url => $lien)); } else { $retours['message_ok'] = _T('vacarme_commande:formulaire_inscription_message_ok', array(url => $lien)); } } if ($retour) { $retours['redirect'] = $retour; } return $retours; }
/** * http://doc.spip.org/@balise_FORMULAIRE_INSCRIPTION_stat * * [(#FORMULAIRE_INSCRIPTION{nom_inscription, #ID_RUBRIQUE})] * * @param array $args * args[0] un statut d'auteur (redacteur par defaut) * args[1] indique la rubrique eventuelle de proposition * @param array $context_compil * @return array|string */ function balise_FORMULAIRE_INSCRIPTION_stat($args, $context_compil) { list($mode, $id) = $args; $mode = tester_config($id, $mode); return $mode ? array($mode, $id) : ''; }
function formulaires_stages_inscription_verifier_dist($mode, $focus, $id = 0) { $erreurs = array(); include_spip('inc/filtres'); if (!tester_config($id, $mode) or strlen(_request('nobot')) > 0) { $erreurs['message_erreur'] = _T('rien_a_faire_ici'); } if (!($nom = _request('nom'))) { $erreurs['nom'] = _T("fraap_candidatures:form_nom_obligatoire"); } if (!($mail = _request('mail'))) { $erreurs['mail'] = _T("fraap_candidatures:form_mail_obligatoire"); } if (!($prenom = _request('prenom'))) { $erreurs['prenom'] = _T("fraap_candidatures:form_prenom_obligatoire"); } if (!($activite = _request('activite'))) { $erreurs['activite'] = _T("fraap_candidatures:form_activite_obligatoire"); } if (!($pass = _request('pass'))) { $erreurs['pass'] = _T("fraap_candidatures:form_pass_obligatoire"); } if (!($pass2 = _request('pass2'))) { $erreurs['pass2'] = _T('fraap_candidatures:form_pass_obligatoire'); } if (strlen($pass) < 6) { $erreurs['pass'] = _T("fraap_candidatures:pass_trop_court"); } else { if ($pass != $pass2) { $erreurs['pass2'] = _T("fraap_candidatures:pass_pas_identique"); } } if (!($conditions = _request('conditions'))) { $erreurs['conditions'] = _T("fraap_candidatures:form_conditions_obligatoire"); } // compatibilite avec anciennes fonction surchargeables // plus de definition par defaut if (!count($erreurs)) { if (function_exists('test_inscription')) { $f = 'test_inscription'; } else { $f = 'test_inscription_dist'; } $declaration = $f($mode, $mail, $nom, $prenom, $pass, $activite, $id); if (is_string($declaration)) { $k = strpos($declaration, 'mail') !== false ? 'mail' : 'nom'; $erreurs[$k] = _T($declaration); } else { include_spip('base/abstract_sql'); if ($row = sql_fetsel("statut, id_auteur, login, email", "spip_auteurs", "email=" . sql_quote($declaration['email']))) { if ($row['statut'] == '5poubelle' and !$declaration['pass']) { // irrecuperable $erreurs['message_erreur'] = _T('form_forum_access_refuse'); } elseif ($row['statut'] != 'nouveau' and !$declaration['pass']) { // deja inscrit $erreurs['message_erreur'] = _T('form_forum_email_deja_enregistre'); } spip_log($row['id_auteur'] . " veut se resinscrire"); } } } return $erreurs; }
function inscription_possible() { global $visiteur_session; // fournir le mode de la config ou tester si l'argument du formulaire est un mode accepte par celle-ci include_spip('inc/filtres'); $mode = tester_config(0, ''); // pas de formulaire si le mode est interdit if (!$mode) { return false; } // pas de formulaire si on a déjà une session avec un statut égal ou meilleur au mode if (isset($visiteur_session['statut']) && $visiteur_session['statut'] <= $mode) { return false; } return true; }