/** * Inscrire un nouvel auteur sur la base de son nom et son email * L'email est utilise pour reperer si il existe deja ou non * => identifiant par defaut * * @param string $statut * @param string $mail_complet * @param string $nom * @param array $options * login : login precalcule * id : id_rubrique fournit en second arg de #FORMULAIRE_INSCRIPTION * from : email de l'envoyeur pour l'envoi du mail d'inscription * force_nouveau : forcer le statut nouveau sur l'auteur inscrit, meme si il existait deja en base * @return array|string */ function action_inscrire_auteur_dist($statut, $mail_complet, $nom, $options = array()) { if (!is_array($options)) { $options = array('id' => $options); } if (function_exists('test_inscription')) { $f = 'test_inscription'; } else { $f = 'test_inscription_dist'; } $desc = $f($statut, $mail_complet, $nom, $options); // erreur ? if (!is_array($desc)) { return _T($desc); } include_spip('base/abstract_sql'); $res = sql_select("statut, id_auteur, login, email", "spip_auteurs", "email=" . sql_quote($desc['email'])); // erreur ? if (!$res) { return _T('titre_probleme_technique'); } $row = sql_fetch($res); sql_free($res); if ($row) { if (isset($options['force_nouveau']) and $options['force_nouveau'] == true) { $desc['id_auteur'] = $row['id_auteur']; $desc = inscription_nouveau($desc); } else { $desc = $row; } } else { // s'il n'existe pas deja, creer les identifiants $desc = inscription_nouveau($desc); } // erreur ? if (!is_array($desc)) { return $desc; } // generer le mot de passe (ou le refaire si compte inutilise) $desc['pass'] = creer_pass_pour_auteur($desc['id_auteur']); // attribuer un jeton pour confirmation par clic sur un lien $desc['jeton'] = auteur_attribuer_jeton($desc['id_auteur']); // charger de suite cette fonction, pour ses utilitaires $envoyer_inscription = charger_fonction("envoyer_inscription", ""); list($sujet, $msg, $from, $head) = $envoyer_inscription($desc, $nom, $statut, $options); $notifications = charger_fonction('notifications', 'inc'); notifications_envoyer_mails($mail_complet, $msg, $sujet, $from, $head); // Notifications $notifications('inscription', $desc['id_auteur'], array('nom' => $desc['nom'], 'email' => $desc['email'])); return $desc; }
/** * Inscrire un nouvel auteur sur la base de son nom et son email * L'email est utilise pour reperer si il existe deja ou non * => identifiant par defaut * * @param string $statut * @param string $mail_complet * @param string $nom * @param array $options * login : login precalcule * id : id_rubrique fournit en second arg de #FORMULAIRE_INSCRIPTION * from : email de l'envoyeur pour l'envoi du mail d'inscription * force_nouveau : forcer le statut nouveau sur l'auteur inscrit, meme si il existait deja en base * @return array|string */ function action_inscrire_auteur($statut, $mail_complet, $nom, $options = array()) { if (!is_array($options)) { $options = array('id' => $options); } if (function_exists('test_inscription')) { $f = 'test_inscription'; } else { $f = 'test_inscription_dist'; } $desc = $f($statut, $mail_complet, $nom, $options); // erreur ? if (!is_array($desc)) { return _T($desc); } include_spip('base/abstract_sql'); $row = sql_fetsel('statut, id_auteur, login, email', 'spip_auteurs', 'email=' . sql_quote($desc['email'])); if ($row) { if (isset($options['force_nouveau']) and $options['force_nouveau'] == true) { $desc['id_auteur'] = $row['id_auteur']; $desc = inscription_nouveau($desc); } else { $desc = $row; } } else { // s'il n'existe pas deja, creer les identifiants $desc = inscription_nouveau($desc); } // erreur ? if (!is_array($desc)) { return $desc; } $notifications = charger_fonction('notifications', 'inc'); $notifications('inscription_a_valider', 0, array('nom' => $desc['nom'], 'email' => $desc['email'], 'id' => $desc['id_auteur'])); return $desc; }
function inscrire_visiteur_candidatures_fraap($statut, $mail_complet, $nom, $prenom, $activite, $pass, $options = array()) { if (!is_array($options)) { $options = array('id' => $options); } include_spip('action/inscrire_auteur'); if (function_exists('test_inscription')) { $f = 'test_inscription'; } else { $f = 'test_inscription_dist'; } $desc = $f($statut, $mail_complet, $nom, $options); if (!is_array($desc)) { return _T($desc); } // ajouter les arguments restants $desc['prenom'] = $prenom; $desc['activite'] = $activite; $desc['pass'] = $pass; include_spip('base/abstract_sql'); $res = sql_select("statut, id_auteur, login, email", "spip_auteurs", "email=" . sql_quote($desc['email'])); // erreur ? if (!$res) { return _T('titre_probleme_technique'); } $row = sql_fetch($res); sql_free($res); if ($row) { if (isset($options['force_nouveau']) and $options['force_nouveau'] == true) { $desc['id_auteur'] = $row['id_auteur']; $desc = inscription_nouveau($desc); } else { $desc = $row; } } else { // s'il n'existe pas deja, creer les identifiants $desc = inscription_nouveau($desc); } if (!is_array($desc)) { return $desc; } // le mot de passe a été saisi par le visiteur, // donc on ne fait rien ici // generer le mot de passe (ou le refaire si compte inutilise) // $desc['pass'] = creer_pass_pour_auteur($desc['id_auteur']); // attribuer un jeton pour confirmation par clic sur un lien $desc['jeton'] = auteur_attribuer_jeton($desc['id_auteur']); // ajouter la zone restreinte stages sql_insertq("spip_zones_liens", array('id_zone' => '1', "id_objet" => $desc['id_auteur'], "objet" => "auteur")); // charger de suite cette fonction, pour ses utilitaires $envoyer_inscription = charger_fonction("envoyer_inscription_fraap_candidatures", "action"); list($sujet, $msg, $from, $head) = $envoyer_inscription($desc, $nom, $prenom, $statut, $options); $notifications = charger_fonction('notifications', 'inc'); notifications_envoyer_mails($mail_complet, $msg, $sujet, $from, $head); // Notifications $notifications('inscription', $desc['id_auteur'], array('nom' => $desc['nom'], 'email' => $desc['email'])); return $desc; }
function formulaires_inscription_traiter_dist($mode, $focus, $id=0) { $nom = _request('nom_inscription'); $mail_complet = _request('mail_inscription'); if (function_exists('test_inscription')) $f = 'test_inscription'; else $f = 'test_inscription_dist'; $desc = $f($mode, $mail_complet, $nom, $id); if (!is_array($desc)) { $desc = _T($desc); } else { include_spip('base/abstract_sql'); $res = sql_select("statut, id_auteur, login, email", "spip_auteurs", "email=" . sql_quote($desc['email'])); if (!$res) $desc = _T('titre_probleme_technique'); else { $row = sql_fetch($res); // s'il n'existe pas deja, creer les identifiants $desc = $row ? $row : inscription_nouveau($desc); } } if (is_array($desc)) { // generer le mot de passe (ou le refaire si compte inutilise) $desc['pass'] = creer_pass_pour_auteur($desc['id_auteur']); // charger de suite cette fonction, pour ses utilitaires $envoyer_mail = charger_fonction('envoyer_mail','inc'); if (function_exists('envoyer_inscription')) $f = 'envoyer_inscription'; else $f = 'envoyer_inscription_dist'; list($sujet,$msg,$from,$head) = $f($desc, $nom, $mode, $id); if (!$envoyer_mail($mail_complet, $sujet, $msg, $from, $head)) $desc = _T('form_forum_probleme_mail'); // Notifications if (is_array($desc) and $notifications = charger_fonction('notifications', 'inc')) { $notifications('inscription', $desc['id_auteur'], array('nom' => $desc['nom'], 'email' => $desc['email']) ); } } return array('message_ok'=>is_string($desc) ? $desc : _T('form_forum_identifiant_mail')); }