Skip to content

Instantly share code, notes, and snippets.

@phenix-factory
Created September 24, 2015 09:16
Show Gist options
  • Save phenix-factory/745b16443e689673d693 to your computer and use it in GitHub Desktop.
Save phenix-factory/745b16443e689673d693 to your computer and use it in GitHub Desktop.
SPIP: Utiliser saisie dans le formulaire d'inscription SPIP 3.0
<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>
&#91;<a href='./'><:pass_retour_public:></a>&#93;
</noscript>
</div>]
<?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