コード例 #1
0
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;
}
コード例 #2
0
/**
 * 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) : '';
}
コード例 #3
0
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;
}
コード例 #4
0
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;
}