Skip to content
Extraits de code Groupes Projets
Valider 6d0db555 rédigé par kent1's avatar kent1
Parcourir les fichiers

Devrait être bon maintenant ... on récupère les anciens formulaires

parent cc4a43fa
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Affichage de
avec 1284 ajouts et 0 suppression
...@@ -1129,6 +1129,14 @@ prive/vignettes/zip.png -text ...@@ -1129,6 +1129,14 @@ prive/vignettes/zip.png -text
/rien.gif -text /rien.gif -text
/spip.php -text /spip.php -text
squelettes-dist/favicon.ico.html -text squelettes-dist/favicon.ico.html -text
squelettes-dist/formulaires/ecrire_auteur.php -text
squelettes-dist/formulaires/inscription.php -text
squelettes-dist/formulaires/mot_de_passe.html -text
squelettes-dist/formulaires/mot_de_passe.php -text
squelettes-dist/formulaires/oubli.php -text
squelettes-dist/formulaires/recherche.php -text
squelettes-dist/formulaires/signature.php -text
squelettes-dist/formulaires/site.php -text
squelettes-dist/identifiants.html -text squelettes-dist/identifiants.html -text
squelettes-dist/robots.txt.html -text squelettes-dist/robots.txt.html -text
squelettes-dist/sitemap.xml.html -text squelettes-dist/sitemap.xml.html -text
......
<div[ class="(#ENV{divclass,spip-admin-bloc})"] id='spip-admin' dir="#LANG_DIR">[
<a href="(#ENV{analyser})" class="spip-admin-boutons"
id="analyser"><:analyse_xml:>[ ((#ENV{xhtml_error}))]</a>]
[<a href="[(#ENV{voir_article})]" class="spip-admin-boutons"
id="voir_article"><:article:>
((#ENV{id_article}))</a>]
[<a href="[(#ENV{voir_breve})]" class="spip-admin-boutons"
id="voir_breve"><:breve:>
((#ENV{id_breve}))</a>]
[<a href="[(#ENV{voir_rubrique})]" class="spip-admin-boutons"
id="voir_rubrique"><:rubrique:>
((#ENV{id_rubrique}))</a>]
[<a href="[(#ENV{voir_mot})]" class="spip-admin-boutons"
id="voir_mot"><:mots_clef:>
((#ENV{id_mot}))</a>]
[(#ENV{id_syndic}|oui)[(#AUTORISER{modifier,site,#ENV{id_syndic}}|oui)
<a href="[(#ENV{voir_site})]" class="spip-admin-boutons"
id="voir_site"><:info_site:>
[((#ENV{id_syndic}))]</a>]]
[<a href="[(#ENV{voir_auteur})]" class="spip-admin-boutons"
id="voir_auteur"><:auteur:>
((#ENV{id_auteur}))</a>]<!--extra-->[
<a href="(#ENV{ecrire})" class="spip-admin-boutons"
id="ecrire"><:espace_prive:></a>]
<a href="[(#SELF|parametre_url{var_mode,#ENV{calcul}})]" class="spip-admin-boutons"
id="var_mode"><:admin_recalculer:>[(#ENV{use_cache})]</a>[
<a href="(#ENV{preview})" class="spip-admin-boutons"
id="preview"><:previsualisation:></a>][
<a href="(#ENV{debug})" class="spip-admin-boutons"
id="debug"><:admin_debug:></a>]
</div>
<div class="formulaire_spip formulaire_ecrire_auteur ajax" id="formulaire_ecrire_auteur#ENV{id}">
<br class='bugajaxie' />
[<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}#formulaire_ecrire_auteur#ENV{id}' enctype='multipart/form-data'>
[(#REM) declarer les hidden qui declencheront le service du formulaire parametre : url d'action ]
#ACTION_FORMULAIRE{#ENV{action}}
[(#REM) Previsualisation... ]
[(#ENV*{erreurs}|table_valeur{previsu}|oui)
<fieldset class="previsu">
<legend><:previsualisation:></legend>
<ul>
<li><strong>#ENV{sujet_message_auteur}</strong> - <em>#ENV{email_message_auteur}</em></li>
<li>[(#ENV{texte_message_auteur}|nl2br)]</li>
</ul>
<p class="boutons"><input type="submit" class="submit" name="confirmer" value="<:form_prop_confirmer_envoi:>" /></p>
</fieldset>
]
[(#REM) Sinon, formulaire normal ]
<fieldset>
<legend><:envoyer_message:></legend>
<ul>
<li class='saisie_email_message_auteur obligatoire[ (#ENV*{erreurs}|table_valeur{email_message_auteur}|oui)erreur]'>
<label for="email_message_auteur#ENV{id}"><:form_pet_votre_email:></label>
[<span class="erreur_message">(#ENV*{erreurs}|table_valeur{email_message_auteur})</span>]
<input type="text" class="text" name="email_message_auteur" id="email_message_auteur#ENV{id}" value="#ENV{email_message_auteur}" size="30" />
</li>
<li class='saisie_sujet_message_auteur obligatoire[ (#ENV*{erreurs}|table_valeur{sujet_message_auteur}|oui)erreur]'>
<label for="sujet_message_auteur#ENV{id}"><:form_prop_sujet:></label>
[<span class="erreur_message">(#ENV*{erreurs}|table_valeur{sujet_message_auteur})</span>]
<input type="text" class="text" name="sujet_message_auteur" id="sujet_message_auteur#ENV{id}" value="#ENV{sujet_message_auteur}" size="30" />
</li>
<li class='saisie_texte_message_auteur obligatoire[ (#ENV*{erreurs}|table_valeur{texte_message_auteur}|oui)erreur]'>
<label for="texte_message_auteur#ENV{id}"><:info_texte_message:></label>
[<span class="erreur_message">(#ENV*{erreurs}|table_valeur{texte_message_auteur})</span>]
<textarea name="texte_message_auteur" id="texte_message_auteur#ENV{id}" rows="8" cols="60">#ENV{texte_message_auteur}</textarea>
</li>
</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" name="valide" value="<:form_prop_envoyer:>" /></p>
</form>
]
</div>
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2010 *
* 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. *
\***************************************************************************/
function formulaires_ecrire_auteur_charger_dist($id_auteur, $id_article, $mail){
include_spip('inc/texte');
$puce = definir_puce();
$valeurs = array(
'sujet_message_auteur'=>'',
'texte_message_auteur'=>'',
'email_message_auteur'=>$GLOBALS['visiteur_session']['email']
);
// id du formulaire (pour en avoir plusieurs sur une meme page)
$valeurs['id'] = ($id_auteur ? '_'.$id_auteur : '_ar'.$id_article);
// passer l'id_auteur au squelette
$valeurs['id_auteur'] = $id_auteur;
$valeurs['id_article'] = $id_article;
return $valeurs;
}
function formulaires_ecrire_auteur_verifier_dist($id_auteur, $id_article, $mail){
$erreurs = array();
include_spip('inc/filtres');
if (!$adres = _request('email_message_auteur'))
$erreurs['email_message_auteur'] = _T("info_obligatoire");
elseif(!email_valide($adres))
$erreurs['email_message_auteur'] = _T('form_prop_indiquer_email');
else {
include_spip('inc/session');
session_set('email', $adres);
}
if (!$sujet=_request('sujet_message_auteur'))
$erreurs['sujet_message_auteur'] = _T("info_obligatoire");
elseif(!(strlen($sujet)>3))
$erreurs['sujet_message_auteur'] = _T('forum_attention_trois_caracteres');
if (!$texte=_request('texte_message_auteur'))
$erreurs['texte_message_auteur'] = _T("info_obligatoire");
elseif(!(strlen($texte)>10))
$erreurs['texte_message_auteur'] = _T('forum_attention_dix_caracteres');
if (!_request('confirmer') AND !count($erreurs))
$erreurs['previsu']=' ';
return $erreurs;
}
function formulaires_ecrire_auteur_traiter_dist($id_auteur, $id_article, $mail){
$adres = _request('email_message_auteur');
$sujet=_request('sujet_message_auteur');
$texte=_request('texte_message_auteur');
$texte .= "\n\n-- "._T('envoi_via_le_site')." ".supprimer_tags(extraire_multi($GLOBALS['meta']['nom_site']))." (".$GLOBALS['meta']['adresse_site']."/) --\n";
$envoyer_mail = charger_fonction('envoyer_mail','inc');
if ($envoyer_mail($mail, $sujet, $texte, $adres,
"X-Originating-IP: ".$GLOBALS['ip']))
$message = _T('form_prop_message_envoye');
else
$message = _T('pass_erreur_probleme_technique');
return array('message_ok'=>$message);
}
?>
<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>
[(#REM) on affiche plus ce message en cas d'erreur pour eviter d'allonger trop le formulaire]
[(#ENV*{message_erreur}|non)
[<legend><:pass_vousinscrire:></legend>
<p class='explication'>(#ENV*{_commentaire})</p>]
]<legend><:form_forum_identifiants:></legend>
<p class='explication'><:form_forum_indiquer_nom_email:></p>
<ul>
<li class='saisie_nom_inscription obligatoire[ (#ENV*{erreurs}|table_valeur{nom_inscription}|oui)erreur]'>
<label for="nom_inscription"><:form_pet_votre_nom:></label>
[<span class="erreur_message">(#ENV*{erreurs}|table_valeur{nom_inscription})</span>]
<input type="text" class="text" name="nom_inscription" id="nom_inscription" value="#ENV{nom_inscription}" size="30" />
</li>
<li class='saisie_mail_inscription obligatoire[ (#ENV*{erreurs}|table_valeur{mail_inscription}|oui)erreur]'>
<label for="mail_inscription"><:form_pet_votre_email:></label>
[<span class="erreur_message">(#ENV*{erreurs}|table_valeur{mail_inscription})</span>]
<input type="text" class="text" name="mail_inscription" id="mail_inscription" value="#ENV{mail_inscription}" size="30" />
</li>
</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>]
\ No newline at end of file
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2010 *
* 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_charger_dist($mode, $focus, $id=0) {
$valeurs = array('nom_inscription'=>'','mail_inscription'=>'', 'id'=>$id);
if ($mode=='1comite')
$valeurs['_commentaire'] = _T('pass_espace_prive_bla');
else
$valeurs['_commentaire'] = _T('pass_forum_bla');
if (!tester_config($id, $mode))
$valeurs['editable'] = false;
return $valeurs;
}
// Si inscriptions pas autorisees, retourner une chaine d'avertissement
function formulaires_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_inscription'))
$erreurs['nom_inscription'] = _T("info_obligatoire");
if (!$mail = _request('mail_inscription'))
$erreurs['mail_inscription'] = _T("info_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, $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, $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 ($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'));
}
// fonction qu'on peut redefinir pour filtrer les adresses mail et les noms,
// et donner des infos supplementaires
// Std: controler que le nom (qui sert a calculer le login) est plausible
// et que l'adresse est valide. On les normalise au passage (trim etc).
// Retour:
// - si ok un tableau avec au minimum email, nom, mode (redac / forum)
// - si ko une chaine de langue servant d'argument a _T expliquant le refus
// http://doc.spip.org/@test_inscription_dist
function test_inscription_dist($mode, $mail, $nom, $id=0) {
include_spip('inc/filtres');
$nom = trim(corriger_caracteres($nom));
if((strlen ($nom) < _LOGIN_TROP_COURT) OR (strlen($nom) > 64))
return 'ecrire:info_login_trop_court';
if (!$r = email_valide($mail)) return 'info_email_invalide';
return array('email' => $r, 'nom' => $nom, 'bio' => $mode);
}
// On enregistre le demandeur comme 'nouveau', en memorisant le statut final
// provisoirement dans le champ Bio, afin de ne pas visualiser les inactifs
// A sa premiere connexion il obtiendra son statut final.
// http://doc.spip.org/@inscription_nouveau
function inscription_nouveau($desc)
{
if (!isset($desc['login']))
$desc['login'] = test_login($desc['nom'], $desc['email']);
$desc['statut'] = 'nouveau';
include_spip('action/editer_auteur');
$id_auteur = insert_auteur();
if (!$id_auteur) return _T('titre_probleme_technique');
include_spip('inc/modifier');
revision_auteur($id_auteur, $desc);
instituer_auteur($id_auteur, $desc);
$desc['id_auteur'] = $id_auteur;
return $desc;
}
// construction du mail envoyant les identifiants
// fonction redefinissable qui doit retourner un tableau
// dont les elements seront les arguments de inc_envoyer_mail
// http://doc.spip.org/@envoyer_inscription_dist
function envoyer_inscription_dist($desc, $nom, $mode, $id) {
$nom_site_spip = nettoyer_titre_email($GLOBALS['meta']["nom_site"]);
$adresse_site = $GLOBALS['meta']["adresse_site"];
if ($mode == '6forum') {
$adresse_login = generer_url_public('login');
$msg = 'form_forum_voici1';
} else {
$adresse_login = $adresse_site .'/'. _DIR_RESTREINT_ABS;
$msg = 'form_forum_voici2';
}
$msg = _T('form_forum_message_auto')."\n\n"
. _T('form_forum_bonjour', array('nom'=>$nom))."\n\n"
. _T($msg, array('nom_site_spip' => $nom_site_spip,
'adresse_site' => $adresse_site . '/',
'adresse_login' => $adresse_login)) . "\n\n- "
. _T('form_forum_login')." " . $desc['login'] . "\n- "
. _T('form_forum_pass'). " " . $desc['pass'] . "\n\n";
return array("[$nom_site_spip] "._T('form_forum_identifiants'), $msg);
}
// http://doc.spip.org/@test_login
function test_login($nom, $mail) {
include_spip('inc/charsets');
$nom = strtolower(translitteration($nom));
$login_base = preg_replace("/[^\w\d_]/", "_", $nom);
// il faut eviter que le login soit vraiment trop court
if (strlen($login_base) < 3) {
$mail = strtolower(translitteration(preg_replace('/@.*/', '', $mail)));
$login_base = preg_replace("/[^\w\d]/", "_", $nom);
}
if (strlen($login_base) < 3)
$login_base = 'user';
// eviter aussi qu'il soit trop long (essayer d'attraper le prenom)
if (strlen($login_base) > 10) {
$login_base = preg_replace("/^(.{4,}(_.{1,7})?)_.*/",
'\1', $login_base);
$login_base = substr($login_base, 0,13);
}
$login = $login_base;
for ($i = 1; ; $i++) {
if (!sql_countsel('spip_auteurs', "login='$login'"))
return $login;
$login = $login_base.$i;
}
}
// http://doc.spip.org/@creer_pass_pour_auteur
function creer_pass_pour_auteur($id_auteur) {
include_spip('inc/acces');
$pass = creer_pass_aleatoire(8, $id_auteur);
include_spip('action/editer_auteur');
instituer_auteur($id_auteur, array('pass'=>$pass));
return $pass;
}
?>
<div class="formulaire_spip formulaire_mot_de_passe">
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
[(#ENV*{editable}|?{' '})
<form id="oubli_form" action="[(#ENV{action})]" method="post">
[(#REM) activer le traitement auto et dispatch sur charger/verifier/traiter]
#ACTION_FORMULAIRE{#ENV{action}}
<fieldset>
<legend><:pass_nouveau_pass:></legend>
<ul>
<li class="saisie_oubli obligatoire[ (#ENV*{erreurs}|table_valeur{oubli}|oui)erreur]">
<label for="oubli"><:pass_choix_pass:></label>
[<span class='erreur'>(#ENV**{erreurs}|table_valeur{oubli})</span>]
<input type='password' name='oubli' id='oubli' value="#ENV**{oubli}" />
</li>
</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="<:pass_ok:>" /></p>
</form>
<script type='text/javascript'>/*<!#EVAL{chr(91)}CDATA#EVAL{chr(91)}*/
document.getElementById('oubli').focus()
/*#EVAL{chr(93)}[(#EVAL{chr(93)})]>*/</script>
]
</div>
\ No newline at end of file
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2010 *
* 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;
// chargement des valeurs par defaut des champs du formulaire
/**
* Chargement de l'auteur qui peut changer son mot de passe.
* Soit un cookie d'oubli fourni par #FORMULAIRE_OUBLI est passe dans l'url par &p=
* Soit un id_auteur est passe en parametre #FORMULAIRE_MOT_DE_PASSE{#ID_AUTEUR}
* Dans les deux cas on verifie que l'auteur est autorise
*
* @param int $id_auteur
* @return array
*/
function formulaires_mot_de_passe_charger_dist($id_auteur=null){
$valeurs = array();
if ($id_auteur=intval($id_auteur)) {
$id_auteur = sql_getfetsel('id_auteur','spip_auteurs',array('id_auteur='.intval($id_auteur),"statut<>'5poubelle'","pass<>''"));
}
elseif ($p=_request('p')) {
$p = preg_replace(',[^0-9a-f.],i','',$p);
if ($p AND $id_auteur = sql_getfetsel('id_auteur','spip_auteurs',array('cookie_oubli='.sql_quote($p),"statut<>'5poubelle'","pass<>''")))
$valeurs['_hidden'] = '<input type="hidden" name="p" value="'.$p.'" />';
}
if ($id_auteur){
$valeurs['id_auteur'] = $id_auteur; // a toutes fins utiles pour le formulaire
}
else {
$valeurs['_hidden'] = _T('pass_erreur_code_inconnu');
$valeurs['editable'] = false; // pas de saisie
}
return $valeurs;
}
/**
* Verification de la saisie du mot de passe.
* On verifie qu'un mot de passe est saisi, et que sa longuer est suffisante
* Ce serait le lieu pour verifier sa qualite (caracteres speciaux ...)
*
* @param int $id_auteur
*/
function formulaires_mot_de_passe_verifier_dist($id_auteur=null){
$erreurs = array();
if (!_request('oubli'))
$erreurs['oubli'] = _T('info_obligatoire');
else if (strlen(_request('oubli')) < 6)
$erreurs['oubli'] = _T('info_passe_trop_court');
return $erreurs;
}
/**
* Modification du mot de passe d'un auteur.
* Utilise le cookie d'oubli fourni en url ou l'argument du formulaire pour identifier l'auteur
*
* @param int $id_auteur
*/
function formulaires_mot_de_passe_traiter_dist($id_auteur=null){
$message = '';
include_spip('base/abstract_sql');
if ($id_auteur=intval($id_auteur)) {
$row = sql_fetsel('id_auteur,login','spip_auteurs',array('id_auteur='.intval($id_auteur),"statut<>'5poubelle'","pass<>''"));
}
elseif ($p=_request('p')) {
$p = preg_replace(',[^0-9a-f.],i','',$p);
$row = sql_fetsel('id_auteur,login,source','spip_auteurs',array('cookie_oubli='.sql_quote($p),"statut<>'5poubelle'","pass<>''"));
}
if ($row
&& ($id_auteur = $row['id_auteur'])
&& ($oubli = _request('oubli'))) {
include_spip('action/editer_auteur');
auteurs_set($id_auteur, array('pass'=>$oubli,'cookie_oubli'=>''));
$login = $row['login'];
$message = "<b>" . _T('pass_nouveau_enregistre') . "</b>".
"<p>" . _T('pass_rappel_login', array('login' => $login));
}
return array('message_ok'=>$message);
}
?>
<div class="formulaire_spip formulaire_oubli">
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
[(#ENV*{editable}|?{' '})
<form id="oubli_form" action="[(#ENV{action})]" method="post">
[(#REM) activer le traitement auto et dispatch sur charger/verifier/traiter]
#ACTION_FORMULAIRE{#ENV{action}}
<fieldset>
<legend><:pass_nouveau_pass:></legend>
<ul>
<li class="saisie_oubli obligatoire[ (#ENV*{erreurs}|table_valeur{oubli}|oui)erreur]">
<label for="oubli"><:form_pet_votre_email:></label>
[<span class='erreur'>(#ENV**{erreurs}|table_valeur{oubli})</span>]
<input type='text' name='oubli' id='oubli' value="#ENV**{oubli}" />
</li>
</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="<:pass_ok:>" /></p>
</form>
<script type='text/javascript'>/*<!#EVAL{chr(91)}CDATA#EVAL{chr(91)}*/
document.getElementById('oubli').focus()
/*#EVAL{chr(93)}[(#EVAL{chr(93)})]>*/</script>
]
</div>
\ No newline at end of file
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2010 *
* 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;
// chargement des valeurs par defaut des champs du formulaire
function formulaires_oubli_charger_dist(){
$valeurs = array('oubli'=>'');
return $valeurs;
}
// http://doc.spip.org/@message_oubli
function message_oubli($email, $param)
{
$r = formulaires_oubli_mail($email);
if (is_array($r) AND $r[1]) {
include_spip('inc/acces'); # pour creer_uniqid
$cookie = creer_uniqid();
sql_updateq("spip_auteurs", array("cookie_oubli" => $cookie), "id_auteur=" . $r[1]['id_auteur']);
$nom = $GLOBALS['meta']["nom_site"];
$envoyer_mail = charger_fonction('envoyer_mail','inc');
if ($envoyer_mail($email,
("[$nom] " . _T('pass_oubli_mot')),
_T('pass_mail_passcookie',
array('nom_site_spip' => $nom,
'adresse_site' => url_de_base(),
'sendcookie' => generer_url_public('spip_pass',
"$param=$cookie", true)))) )
return _T('pass_recevoir_mail');
else
return _T('pass_erreur_probleme_technique');
}
return _T('pass_erreur_probleme_technique');
}
// la saisie a ete validee, on peut agir
function formulaires_oubli_traiter_dist(){
$message = message_oubli(_request('oubli'),'p');
return array('message_ok'=>$message);
}
// fonction qu'on peut redefinir pour filtrer les adresses mail
// http://doc.spip.org/@test_oubli
function test_oubli_dist($email)
{
include_spip('inc/filtres'); # pour email_valide()
if (!email_valide($email) )
return _T('pass_erreur_non_valide', array('email_oubli' => htmlspecialchars($email)));
return array('mail' => $email);
}
function formulaires_oubli_verifier_dist(){
$erreurs = array();
$email = _request('oubli');
$r = formulaires_oubli_mail($email);
if (!is_array($r))
$erreurs['oubli'] = $r;
else {
if (!$r[1])
$erreurs['oubli'] = _T('pass_erreur_non_enregistre', array('email_oubli' => htmlspecialchars($email)));
elseif ($r[1]['statut'] == '5poubelle' OR $r[1]['pass'] == '')
$erreurs['oubli'] = _T('pass_erreur_acces_refuse');
}
return $erreurs;
}
function formulaires_oubli_mail($email)
{
if (function_exists('test_oubli'))
$f = 'test_oubli';
else
$f = 'test_oubli_dist';
$declaration = $f($email);
if (!is_array($declaration))
return $declaration;
else {
include_spip('base/abstract_sql');
return array($declaration, sql_fetsel("id_auteur,statut,pass", "spip_auteurs", "email =" . sql_quote($declaration['mail'])));
}
}
?>
<div class="formulaire_spip formulaire_recherche" id="formulaire_recherche">
<form action="[(#ENV{action})]" method="get"><div>
[(#ENV{action}|form_hidden)]
[<input type="hidden" name="lang" value="(#ENV{lang})" />]
<label for="recherche"><:info_rechercher_02:></label>
<input type="text" class="text" size="10" name="recherche" id="recherche"[ value="(#ENV{recherche})"] accesskey="4" />
<input type="submit" class="submit" value="&gt;&gt;" title="<:info_rechercher:>" />
</div></form>
</div>
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2010 *
* 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;
// chargement des valeurs par defaut des champs du formulaire
function formulaires_recherche_charger_dist($lien_filtre = NULL,$lien_arg = NULL){
$lien = $lien_filtre ? $lien_filtre : $lien_arg;
if ($GLOBALS['spip_lang'] != $GLOBALS['meta']['langue_site'])
$lang = $GLOBALS['spip_lang'];
else
$lang='';
return
array(
'action' => ($lien ? $lien : generer_url_public('recherche')), # action specifique, ne passe pas par Verifier, ni Traiter
'recherche' => _request('recherche'),
'lang' => $lang
);
}
?>
<div class="formulaire_spip formulaire_signature ajax" id="sp#ENV{id_article}">
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok,#ENV*{_confirm}|affiche_reponse_confirmation})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
[(#ENV{editable})
<form method="post" action="#ENV{action}#sp#ENV{id_article}">
#ACTION_FORMULAIRE{#ENV{action}}
<input type="hidden" name="url_page" value="[(#SELF|url_absolue)]" />
[<fieldset>
<legend><:info_descriptif:></legend>
<div class='explication'>(#ENV*{_texte}|propre)</div>
</fieldset>]
<fieldset>
<legend><:form_forum_identifiants:></legend>
<ul>
<li class='saisie_nom_email[ (#ENV*{erreurs}|table_valeur{session_nom}|oui)erreur] obligatoire'>
<label for="session_nom"><:form_pet_votre_nom:></label>
[<span class="erreur_message">(#ENV*{erreurs}|table_valeur{session_nom})</span>]
<input type="text" class="text" name="session_nom" id="session_nom" value="#ENV{session_nom}" size="30" />
</li>
<li class='saisie_adresse_email[ (#ENV*{erreurs}|table_valeur{session_email}|oui)erreur] obligatoire'>
<label for="session_email"><:form_pet_votre_email:></label>
[<span class="erreur_message">(#ENV*{erreurs}|table_valeur{session_email})</span>]
<input type="text" class="text" name="session_email" id="session_email" value="#ENV{session_email}" size="30" />
</li>
</ul>
</fieldset>
<fieldset>
<legend><:info_lien_hypertexte:></legend>
[<p class='explication'>(#ENV{site_obli})<:form_pet_votre_site:></p>]
<ul>
<li class='saisie_signature_nom_site[ (#ENV*{erreurs}|table_valeur{signature_nom_site}|oui)erreur][(#ENV{site_obli})obligatoire]'>
<label for="signature_nom_site"><:form_pet_nom_site2:></label>
[<span class="erreur_message">(#ENV*{erreurs}|table_valeur{signature_nom_site})</span>]
<input type="text" class="text" name="signature_nom_site" id="signature_nom_site" value="#ENV{signature_nom_site}" size="30" />
</li>
<li class='saisie_signature_url_site[ (#ENV*{erreurs}|table_valeur{signature_url_site}|oui)erreur][(#ENV{site_obli})obligatoire]'>
<label for="signature_url_site"><:form_pet_adresse_site:></label>
[<span class="erreur_message">(#ENV*{erreurs}|table_valeur{signature_url_site})</span>]
<input type="text" class="text" name="signature_url_site" id="signature_url_site" value="#ENV{signature_url_site}" size="30" />
</li>
</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>
[(#ENV{_message})
<fieldset>
<legend><:form_pet_message_commentaire:></legend>
<ul>
<li class='saisie_message'>
<label for="message"><:info_texte_message:></label>
<textarea name="message" id="message" rows="6" cols="60">#ENV{message}</textarea>
</li>
</ul>
</fieldset>]
<p class="boutons"><input type="submit" class="submit" value="<:bouton_valider:>" /></p>
</form>
]
</div>
\ No newline at end of file
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2010 *
* 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_signature_charger_dist($id_article, $petition, $texte, $site_obli, $message) {
$valeurs = array(
'id_article' => $id_article,
'session_nom' => sinon($GLOBALS['visiteur_session']['session_nom'],
$GLOBALS['visiteur_session']['nom']),
'session_email'=> sinon($GLOBALS['visiteur_session']['session_email'],
$GLOBALS['visiteur_session']['email']),
'signature_nom_site'=>'',
'signature_url_site'=>'http://',
'_texte'=>$petition,
'_message'=>$message,
'message'=>'',
'site_obli' => $site_obli,
'debut_signatures'=>'' // pour le nettoyer de l'url d'action !
);
if ($c = _request('var_confirm')) {
$valeurs['_confirm'] = $c;
$valeurs['editable'] = false;
}
return $valeurs;
}
function affiche_reponse_confirmation($confirm) {
$reponse_confirmation = charger_fonction('reponse_confirmation','formulaires/signature/');
return $reponse_confirmation($confirm); # calculee plus tot: assembler.php
}
function formulaires_signature_verifier_dist($id_article, $petition, $texte, $site_obli, $message) {
$erreurs = array();
$oblis = array('session_email','session_email');
if ($site_obli){
$oblis[] = 'signature_nom_site';
$oblis[] = 'signature_url_site';
set_request('signature_url_site', vider_url(_request('signature_url_site')));
}
foreach ($oblis as $obli)
if (!_request($obli))
$erreurs[$obli] = _T('info_obligatoire');
if ($nom = _request('session_nom') AND strlen($nom) < 2)
$erreurs['nom_email'] = _T('form_indiquer_nom');
include_spip('inc/filtres');
if (($mail=_request('session_email')) == _T('info_mail_fournisseur'))
$erreurs['adresse_email'] = _T('form_indiquer');
elseif ($mail AND !email_valide($mail))
$erreurs['adresse_email'] = _T('form_email_non_valide');
elseif (strlen(_request('nobot'))
OR (@preg_match_all(',\bhref=[\'"]?http,i', // bug PHP
$message
# , PREG_PATTERN_ORDER
)
>2)) {
#$envoyer_mail = charger_fonction('envoyer_mail','inc');
#envoyer_mail('email_moderateur@example.tld', 'spam intercepte', var_export($_POST,1));
$erreurs['message_erreur'] = _T('form_pet_probleme_liens');
}
if ($site_obli){
if (!vider_url($url_site = _request('signature_url_site'))) {
$erreurs['signature_url_site'] = _T('form_indiquer_nom_site');
}
elseif (!count($erreurs)) {
include_spip('inc/distant');
if (!recuperer_page($url_site, false, true, 0))
$erreurs['signature_url_site'] = _T('form_pet_url_invalide');
}
}
if (!count($erreurs)){
// tout le monde est la.
include_spip('base/abstract_sql');
$row = sql_fetsel('*', 'spip_petitions', "id_article=".intval($id_article));
if (!$row)
$erreurs['message_erreur'] = _T('form_pet_probleme_technique');
else {
$email_unique = $row['email_unique'] == "oui";
$site_unique = $row['site_unique'] == "oui";
// Refuser si deja signe par le mail ou le site quand demande
// Il y a un acces concurrent potentiel,
// mais ca n'est qu'un cas particulier de qq n'ayant jamais confirme'.
// On traite donc le probleme a la confirmation.
if ($email_unique) {
$r = sql_countsel('spip_signatures', "id_article=$id_article AND ad_email=" . sql_quote($mail) . " AND statut='publie'");
if ($r) $erreurs['message_erreur'] = _T('form_pet_deja_signe');
}
if ($site_unique) {
$r = sql_countsel('spip_signatures', "id_article=$id_article AND url_site=" . sql_quote($url_site) . " AND (statut='publie' OR statut='poubelle')");
if ($r) $erreurs['message_erreur'] = _T('form_pet_site_deja_enregistre');
}
}
}
return $erreurs;
}
function formulaires_signature_traiter_dist($id_article, $petition, $texte, $site_obli, $message) {
$reponse = _T('form_pet_probleme_technique');
include_spip('base/abstract_sql');
if (spip_connect()) {
$controler_signature = charger_fonction('controler_signature', 'inc');
$reponse = $controler_signature($id_article,
_request('session_nom'), _request('session_email'),
_request('message'), _request('signature_nom_site'),
_request('signature_url_site'), _request('url_page'));
}
return array('message_ok'=>$reponse);
}
// Retour a l'ecran du lien de confirmation d'une signature de petition.
// Si var_confirm est non vide, c'est l'appel dans public/assembler.php
// pour vider le cache au demarrage afin que la nouvelle signature apparaisse.
// Sinon, c'est l'execution du formulaire et on retourne le message
// de confirmation ou d'erreur construit lors de l'appel par assembler.php
// Le controle d'unicite du mail ou du site (si requis) refait ici correspond
// au cas de mails de demande de confirmation laisses sans reponse
// http://doc.spip.org/@reponse_confirmation_dist
function formulaires_signature_reponse_confirmation_dist($var_confirm = '') {
static $confirm = null;
// reponse mise en cache dans la session ?
$code_message = 'signature_message_'.strval($var_confirm);
if (isset($GLOBALS['visiteur_session'][$code_message]))
return $GLOBALS['visiteur_session'][$code_message];
// reponse deja calculee depuis public/assembler.php
if (isset($confirm))
return $confirm;
if ($var_confirm == 'publie' OR $var_confirm == 'poubelle')
return '';
if (!spip_connect()) {
$confirm = _T('form_pet_probleme_technique');
return '';
}
include_spip('inc/texte');
include_spip('inc/filtres');
// Suppression d'une signature par un moderateur ?
// Cf. plugin notifications
if (isset($_GET['refus'])) {
// verifier validite de la cle de suppression
// l'id_signature est dans var_confirm
include_spip('inc/securiser_action');
if ($id_signature = intval($var_confirm)
AND (
$_GET['refus'] == _action_auteur("supprimer signature $id_signature", '', '', 'alea_ephemere')
OR
$_GET['refus'] == _action_auteur("supprimer signature $id_signature", '', '', 'alea_ephemere_ancien')
)) {
sql_updateq("spip_signatures", array("statut" => 'poubelle'), "id_signature=$id_signature");
$confirm = _T('info_signature_supprimee');
} else $confirm = _T('info_signature_supprimee_erreur');
return '';
}
$row = sql_fetsel('*', 'spip_signatures', "statut=" . sql_quote($var_confirm), '', "1");
if (!$row) {
$confirm = _T('form_pet_aucune_signature');
return '';
}
$id_signature = $row['id_signature'];
$id_article = $row['id_article'];
$adresse_email = $row['ad_email'];
$url_site = $row['url_site'];
$row = sql_fetsel('email_unique, site_unique', 'spip_petitions', "id_article=$id_article");
$email_unique = $row['email_unique'] == "oui";
$site_unique = $row['site_unique'] == "oui";
sql_updateq('spip_signatures',
array('statut' => 'publie', 'date_time' => 'NOW()'),
"id_signature=$id_signature");
if ($email_unique) {
$r = "id_article=$id_article AND ad_email=" . sql_quote($adresse_email);
if (signature_entrop($r))
$confirm = _T('form_pet_deja_signe');
}
if ($site_unique) {
$r = "id_article=$id_article AND url_site=" . sql_quote($url_site);
if (signature_entrop($r))
$confirm = _T('form_pet_site_deja_enregistre');
}
include_spip('inc/session');
if (!$confirm) {
$confirm = _T('form_pet_signature_validee');
// noter dans la session que l'email est valide
// de facon a permettre de signer les prochaines
// petitions sans refaire un tour d'email
session_set('email_confirme', $adresse_email);
// invalider les pages ayant des boucles signatures
include_spip('inc/invalideur');
suivre_invalideur("id='varia/pet$id_article'");
}
// Conserver la reponse dans la session du visiteur
if ($confirm)
session_set($code_message, $confirm);
}
//
// Recevabilite de la signature d'une petition
// les controles devraient mantenant etre faits dans formulaires_signature_verifier()
//
// http://doc.spip.org/@inc_controler_signature_dist
function inc_controler_signature_dist($id_article, $nom, $mail, $message, $site, $url_site, $url_page) {
include_spip('inc/texte');
include_spip('inc/filtres');
// tout le monde est la.
// cela a ete verifie en amont, dans formulaires_signature_verifier()
if (!$row = sql_fetsel('*', 'spip_petitions', "id_article=$id_article"))
return _T('form_pet_probleme_technique');
$statut = "";
if (!$ret = signature_a_confirmer($id_article, $url_page, $nom, $mail, $site, $url_site, $message, $lang, $statut))
return _T('form_pet_probleme_technique');
$id_signature = sql_insertq('spip_signatures', array(
'id_article' => $id_article,
'date_time' => 'NOW()',
'statut' => $statut,
'ad_email' => $mail,
'url_site' => $url_site));
if (!$id_signature) return _T('form_pet_probleme_technique');
include_spip('inc/modifier');
revision_signature($id_signature, array(
'nom_email' => $nom,
'ad_email' => $mail,
'message' => $message,
'nom_site' => $site,
'url_site' => $url_site
));
return $ret;
}
// http://doc.spip.org/@signature_a_confirmer
function signature_a_confirmer($id_article, $url_page, $nom, $mail, $site, $url, $msg, $lang, &$statut)
{
// Si on est deja connecte et que notre mail a ete valide d'une maniere
// ou d'une autre, on entre directement la signature dans la base, sans
// envoyer d'email. Sinon email de verification
if (
// Cas 1: on est loge et on signe avec son vrai email
(
isset($GLOBALS['visiteur_session']['statut'])
AND $GLOBALS['visiteur_session']['session_email'] == $GLOBALS['visiteur_session']['email']
AND strlen($GLOBALS['visiteur_session']['email'])
)
// Cas 2: on a deja signe une petition, et on conserve le meme email
OR (
isset($GLOBALS['visiteur_session']['email_confirme'])
AND $GLOBALS['visiteur_session']['session_email'] == $GLOBALS['visiteur_session']['email_confirme']
AND strlen($GLOBALS['visiteur_session']['session_email'])
)
) {
// Si on est en ajax on demande a reposter sans ajax, car il faut
// recharger toute la page pour afficher la signature
refuser_traiter_formulaire_ajax();
$statut = 'publie';
// invalider le cache !
include_spip('inc/invalideur');
suivre_invalideur("id='varia/pet$id_article'");
// message de reussite : en ajax, preciser qu'il faut recharger la page
// pour voir le resultat
return
_T('form_pet_signature_validee');
}
//
// Cas normal : envoi d'une demande de confirmation
//
$row = sql_fetsel('titre,lang', 'spip_articles', "id_article=$id_article");
$lang = lang_select($row['lang']);
$titre = textebrut(typo($row['titre']));
if ($lang) lang_select();
if (!strlen($statut))
$statut = signature_test_pass();
if ($lang != $GLOBALS['meta']['langue_site'])
$url_page = parametre_url($url_page, "lang", $lang,'&');
$url_page = parametre_url($url_page, 'var_confirm', $statut, '&')
. "#sp$id_article";
$r = _T('form_pet_mail_confirmation',
array('titre' => $titre,
'nom_email' => $nom,
'nom_site' => $site,
'url_site' => $url,
'url' => $url_page,
'message' => $msg));
$titre = _T('form_pet_confirmation')." ". $titre;
$envoyer_mail = charger_fonction('envoyer_mail','inc');
if ($envoyer_mail($mail,$titre, $r))
return _T('form_pet_envoi_mail_confirmation',array('email'=>$mail));
return false; # erreur d'envoi de l'email
}
// Pour eviter le recours a un verrou (qui bloque l'acces a la base),
// on commence par inserer systematiquement la signature
// puis on demande toutes celles ayant la propriete devant etre unique
// (mail ou site). S'il y en a plus qu'une on les retire sauf la premiere
// En cas d'acces concurrents il y aura des requetes de retraits d'elements
// deja detruits. Bizarre ? C'est mieux que de bloquer!
// http://doc.spip.org/@signature_entrop
function signature_entrop($where)
{
$where .= " AND statut='publie'";
$query = sql_select('id_signature', 'spip_signatures', $where,'',"date_time desc");
$n = sql_count($query);
if ($n>1) {
$entrop = array();
for ($i=$n-1;$i;$i--) {
$r = sql_fetch($query);
$entrop[]=$r['id_signature'];
}
sql_free($query);
$where .= " OR " . sql_in('id_signature', $entrop);
sql_delete('spip_signatures', $where);
}
return $entrop;
}
// Creer un mot de passe aleatoire et verifier qu'il est unique
// dans la table des signatures
// http://doc.spip.org/@signature_test_pass
function signature_test_pass() {
include_spip('inc/acces');
do {
$passw = creer_pass_aleatoire();
} while (sql_countsel('spip_signatures', "statut='$passw'") > 0);
return $passw;
}
?>
<div class="formulaire_spip formulaire_site ajax" id="formulaire_site">
[<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>
<legend><:info_site:></legend>
<p class='explication'><:proposer_site:></p>
<ul>
<li class='saisie_nom_site obligatoire[ (#ENV*{erreurs}|table_valeur{nom_site}|oui)erreur]'>
<label for="nom_site"><:form_prop_nom_site:></label>
[<span class="erreur_message">(#ENV*{erreurs}|table_valeur{nom_site})</span>]
<input type="text" class="text" name="nom_site" id="nom_site" value="#ENV{nom_site}" size="30" />
</li>
<li class='saisie_url_site[ (#ENV*{erreurs}|table_valeur{url_site}|oui)erreur]'>
<label for="url_site"><:form_prop_url_site:></label>
[<span class="erreur_message">(#ENV*{erreurs}|table_valeur{url_site})</span>]
<input type="text" class="text" name="url_site" id="url_site" value="#ENV{url_site}" size="30" />
</li>
<li class='saisie_description_site[ (#ENV*{erreurs}|table_valeur{description_site}|oui)erreur]'>
<label for="description_site"><:form_prop_description:></label>
[<span class="erreur_message">(#ENV*{erreurs}|table_valeur{description_site})</span>]
<textarea name="description_site" id="description_site" rows="6" cols="60">#ENV{description_site}</textarea>
</li>
</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>
]
</div>
\ No newline at end of file
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2010 *
* 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_site_charger_dist($id_rubrique) {
return array('nom_site'=>'','url_site'=>'http://','description_site'=>'');
}
function formulaires_site_verifier_dist($id_rubrique){
$erreurs = array();
if (!$nom = _request('nom_site'))
$erreurs['nom_site'] = _T("info_obligatoire");
else {
if((strlen ($nom) < 2) OR (strlen(_request('nobot'))>0))
$erreurs['email_message_auteur'] = _T('form_prop_indiquer_nom_site');
}
if (!$url = _request('url_site'))
$erreurs['url_site'] = _T("info_obligatoire");
if (!count($erreurs)) {
// Tester l'URL du site
include_spip('inc/distant');
if (!recuperer_page($url))
$erreurs['url_site'] = _T('form_pet_url_invalide');
}
return $erreurs;
}
function formulaires_site_traiter_dist($id_rubrique){
$res = array('message_erreur'=>_T('titre_probleme_technique'));
$nom = _request('nom_site');
$url = _request('url_site');
$desc = _request('description_site');
include_spip('base/abstract_sql');
if ($id_syndic = sql_insertq('spip_syndic', array(
'nom_site' => $nom,
'url_site' => $url,
'id_rubrique' => $id_rubrique,
'id_secteur' => sql_getfetsel('id_secteur','spip_rubriques','id_rubrique='.sql_quote($id_rubrique)),
'descriptif' => $desc,
'date' => date('Y-m-d H:i:s'),
'date_syndic' => date('Y-m-d H:i:s'),
'statut' => 'prop',
'syndication' => 'non')))
$res = array('message_ok' => _T('form_prop_enregistre'), 'id_syndic'=>$id_syndic);
return $res;
}
?>
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter