Created
September 24, 2015 09:16
-
-
Save phenix-factory/745b16443e689673d693 to your computer and use it in GitHub Desktop.
SPIP: Utiliser saisie dans le formulaire d'inscription SPIP 3.0
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<div class="formulaire_spip formulaire_inscription ajax" id="formulaire_inscription"> | |
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>] | |
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>] | |
[(#ENV{editable}) | |
<form method="post" action="#ENV{action}"> | |
#ACTION_FORMULAIRE{#ENV{action}} | |
<fieldset> | |
#INCLURE{fond=formulaires/inc-inscription-explication,env} | |
<legend><:form_forum_identifiants:></legend> | |
<p class='explication'><:form_forum_indiquer_nom_email:></p> | |
<ul> | |
#GENERER_SAISIES{#ENV{_saisies}} | |
</ul> | |
</fieldset> | |
[(#REM) Piege a robots spammeurs ] | |
<p style="display: none;"> | |
<label for="nobot"><:antispam_champ_vide:></label> | |
<input type="text" class="text" name="nobot" id="nobot" value="#ENV{nobot}" size="10" /> | |
</p> | |
<p class="boutons"><input type="submit" class="submit" value="<:bouton_valider:>" /></p> | |
</form> | |
[<script type="text/javascript"><!-- | |
document.getElementById('(#ENV{focus})').focus(); | |
--></script>] | |
] | |
</div> | |
[(#ENV{focus,''}|?{' '}) | |
<div style="text-align: #LANG_RIGHT;"> | |
<script type="text/javascript">/*<!#EVAL{chr(91)}CDATA#EVAL{chr(91)}*/ | |
document.write("<a style='color: #e86519' href='") | |
document.write((window.opener) ? "javascript:close()" : "./") | |
document.write("'><:pass_quitter_fenetre:><" + "/a>"); | |
/*#EVAL{chr(93)}[(#EVAL{chr(93)})]>*/</script> | |
<noscript> | |
[<a href='./'><:pass_retour_public:></a>] | |
</noscript> | |
</div>] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/***************************************************************************\ | |
* SPIP, Systeme de publication pour l'internet * | |
* * | |
* Copyright (c) 2001-2014 * | |
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * | |
* * | |
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. * | |
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * | |
\***************************************************************************/ | |
if (!defined('_ECRIRE_INC_VERSION')) return; | |
function formulaires_inscription_saisies_dist($mode, $id=0) { | |
$saisies = array( | |
array( | |
'saisie' => 'input', | |
'options' => array( | |
'nom' => 'nom_inscription', | |
'label' => _T('entree_nom_pseudo'), | |
'obligatoire' => 'oui' | |
) | |
), | |
array( | |
'saisie' => 'email', | |
'options' => array( | |
'nom' => 'mail_inscription', | |
'label' => _T('entree_adresse_email'), | |
'obligatoire' => 'oui' | |
) | |
) | |
); | |
return $saisies; | |
} | |
function formulaires_inscription_charger_dist($mode='', $id=0) { | |
global $visiteur_session; | |
// fournir le mode de la config ou tester si l'argument du formulaire est un mode accepte par celle-ci | |
// pas de formulaire si le mode est interdit | |
include_spip('inc/autoriser'); | |
if (!autoriser('inscrireauteur', $mode, $id)) | |
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; | |
$valeurs = array('nom_inscription'=>'','mail_inscription'=>'', 'id'=>$id, '_mode'=>$mode); | |
return $valeurs; | |
} | |
// Si inscriptions pas autorisees, retourner une chaine d'avertissement | |
function formulaires_inscription_verifier_dist($mode='', $id=0) { | |
include_spip('inc/filtres'); | |
$erreurs = array(); | |
include_spip('inc/autoriser'); | |
if (!autoriser('inscrireauteur', $mode, $id) | |
OR (strlen(_request('nobot'))>0)) | |
$erreurs['message_erreur'] = _T('pass_rien_a_faire_ici'); | |
if (!$nom = _request('nom_inscription')) | |
$erreurs['nom_inscription'] = _T("info_obligatoire"); | |
elseif (!nom_acceptable(_request('nom_inscription'))) | |
$erreurs['nom_inscription'] = _T("ecrire:info_nom_pas_conforme"); | |
if (!$mail = strval(_request('mail_inscription'))) | |
$erreurs['mail_inscription'] = _T("info_obligatoire"); | |
// compatibilite avec anciennes fonction surchargeables | |
// plus de definition par defaut | |
if (!count($erreurs)){ | |
include_spip('action/inscrire_auteur'); | |
if (function_exists('test_inscription')) | |
$f = 'test_inscription'; | |
else | |
$f = 'test_inscription_dist'; | |
$declaration = $f($mode, $mail, $nom, $id); | |
if (is_string($declaration)) { | |
$k = (strpos($declaration, 'mail') !== false) ? | |
'mail_inscription' : 'nom_inscription'; | |
$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'); | |
else if (($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 formulaires_inscription_traiter_dist($mode='', $id=0) { | |
include_spip('inc/filtres'); | |
include_spip('inc/autoriser'); | |
if (!autoriser('inscrireauteur', $mode, $id)) | |
$desc = "rien a faire ici"; | |
else { | |
$nom = _request('nom_inscription'); | |
$mail_complet = _request('mail_inscription'); | |
$inscrire_auteur = charger_fonction('inscrire_auteur','action'); | |
$desc = $inscrire_auteur($mode, $mail_complet, $nom, array('id'=>$id)); | |
} | |
// erreur ? | |
if (is_string($desc)){ | |
return array('message_erreur'=> $desc); | |
} | |
// OK | |
else | |
return array('message_ok' => _T('form_forum_identifiant_mail'), 'id_auteur' => $desc['id_auteur']); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment