uawdijnntqw1x1x1
IP : 216.73.216.249
Hostname : webm001.cluster110.gra.hosting.ovh.net
Kernel : Linux webm001.cluster110.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
OS : Linux
PATH:
/
home
/
etiennec
/
www
/
b9da6
/
..
/
b594c
/
..
/
f1f54
/
formulaires.tar
/
/
inc-inscription-explication.html000066600000000435152502550740013072 0ustar00[(#REM) on affiche plus ce message en cas d'erreur pour eviter d'allonger trop le formulaire] [(#ENV*{message_erreur}|non) [<legend class="mode"><:pass_vousinscrire:></legend> <p class="explication mode">(#ENV{_mode}|=={1comite}|?{<:pass_espace_prive_bla:>,<:pass_forum_bla:>})</p>] ] inscription.html000066600000004502152502550740010005 0ustar00<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> [<a href='./'><:pass_retour_public:></a>] </noscript> </div>]oubli.php000066600000006201152502550740006377 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2011 * * 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 include_spip('inc/texte'); # pour corriger_typo $cookie = creer_uniqid(); sql_updateq("spip_auteurs", array("cookie_oubli" => $cookie), "id_auteur=" . $r[1]['id_auteur']); $nom = textebrut(corriger_typo($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']))); } } ?> oubli.html000066600000002376152502550740006565 0ustar00<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' class='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>recherche.php000066600000002371152502550740007221 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2011 * * 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 ); } ?> ecrire_auteur.php000066600000005466152502550740010137 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2011 * * 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); } ?> administration.html000066600000003063152502550740010472 0ustar00 <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>][ <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{statistiques})" class="spip-admin-boutons" id="statistiques">[<:info_visites:> (#ENV{visites})][; <:info_popularite_5:> (#ENV{popularite})]</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>inscription.php000066600000017223152502550740007634 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2011 * * 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'); 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; } 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'; $n = sql_insertq('spip_auteurs', $desc); if (!$n) return _T('titre_probleme_technique'); $desc['id_auteur'] = $n; 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]/", "_", $mail); } 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; } ?> mot_de_passe.php000066600000006722152502550740007737 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2011 * * 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){ include_spip('base/abstract_sql'); $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); } ?> ecrire_auteur.html000066600000005306152502550740010305 0ustar00<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> mot_de_passe.html000066600000002410152502550740010102 0ustar00<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' class='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>recherche.html000066600000000575152502550740007402 0ustar00<div class="formulaire_recherche" id="formulaire_recherche"> <form action="[(#ENV{action})]" method="get"> [(#ENV{action}|form_hidden)] [<input type="hidden" name="lang" value="(#ENV{lang})" />] <label for="recherche">RECHERCHER</label> <input type="text" class="text" size="10" name="recherche" id="recherche"[ value="(#ENV{recherche})"] accesskey="4" /> </form> </div> site.php000066600000004240152503000500006213 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2011 * * 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; } ?> inc-forum_previsu.html000066600000002444152503000500011104 0ustar00<fieldset class="previsu"> <legend><:previsualisation:></legend> <ul> <li> <ul class='forum previsu'> <li class="forum-fil"> <div class="forum-message"> <div class="forum-chapo"> [<strong class="forum-titre"><a href="#">(#ENV*{titre})</a></strong>] [<small><:par_auteur:> <span>(#SESSION{session_nom}|safehtml|sinon{[(#SESSION{nom}|typo)]})</span></small>] </div> <div class="forum-texte"> [(#ENV*{texte}|lignes_longues)] [<div class="notes">(#ENV*{notes}|lignes_longues)</div>] [<p class=""><:voir_en_ligne:> : <a href="(#ENV{url_site}|attribut_html)" class="spip_out">[(#ENV*{nom_site}|sinon{[(#ENV{url_site}|couper{80})]})]</a></p>] [<div class="forum-document"><:info_document:> : (#ENV{ajouter_document}|table_valeur{name})</div>] <B_mots><p class="reponse_formulaire"><:forum_avez_selectionne:> <BOUCLE_mots(MOTS){id_mot IN #ENV**{ajouter_mot}}{par num type}{par type}{par num titre}{par titre}{', '}>#TITRE</BOUCLE_mots> </p></B_mots> </div> </div> </li> </ul> [<li class="reponse_formulaire">(#ENV*{erreur})</li>] </li> </ul> [<p class="boutons"><input type="submit" class="submit" name="confirmer_previsu_forum" value="(#ENV*{bouton})" /></p>] </fieldset> <div class='nettoyeur'></div>inc-login_forum.html000066600000002434152503000500010516 0ustar00[(#REM) Formulaire d'identification sur le forum Si la session est authentifiee, on propose la deconnexion Si la session n'est pas authentifiee, on presente un formulaire nom/email Pour les forums sur abonnement, un squelette specifique presente les regles ] <fieldset> <legend><:forum_qui_etes_vous:></legend> [(#SESSION{auth}|?{' '}) [<p class='explication'><:forum_votre_nom:> <strong>(#SESSION{nom}|typo)</strong> <span class="details">[<a href="#URL_LOGOUT" rel="nofollow"><:icone_deconnecter:></a>]</span></p>] ] [(#SESSION{auth}|?{'',' '}) <ul> <li class='saisie_session_nom'> <label for="session_nom"><:forum_votre_nom:></label> <input type="text" class="text" name="session_nom" id="session_nom" value="[(#SESSION**{nom}|sinon{#SESSION**{session_nom}}|entites_html)]" size="40" /> [(#CONFIG{accepter_inscriptions}|=={oui}|?{' '}) <span class="details">[<a href="[(#URL_PAGE{login}|parametre_url{url,#SELF})]" rel="nofollow"><:lien_connecter:></a>]</span> ] </li> <li class='saisie_session_email'> <label for="session_email"><:forum_votre_email:></label> <input type="text" class="text" name="session_email" id="session_email" value="[(#SESSION**{email}|sinon{#SESSION**{session_email}}|entites_html)]" size="40" /> </li> </ul> ] </fieldset>inc-forum_bloc_choix_mots.html000066600000000603152503000500012555 0ustar00#SET{table,#VAL{'(^|,)('}|concat{#ENV{table,rienderien}}|concat{#CONFIG{mots_cles_forums}|choixsiegal{oui,'|forum',''},')(,|$)'} <BOUCLE_G(GROUPES_MOTS) {tables_liees==#GET{table}}> [(#ID_GROUPE|in_any{#ENV**{ajouter_groupe},' '}) <fieldset> <legend><:mots_clefs:> : #TITRE</legend> <INCLURE{fond=formulaires/inc-choix_mots}{id_groupe}{ajouter_mot}{unseul}> </fieldset> ]</BOUCLE_G>inc-login_forum_abo.html000066600000001613152503000500011335 0ustar00[(#REM) Presenter les regles du jeu du forum sur abonnement avec un lien vers la connexion / l'inscription / le rappel ] <fieldset> <legend><:Forum:> <:bouton_radio_modere_abonnement:></legend> <p class="explication"><:forum_vous_enregistrer:> <:forum_vous_inscrire:></p> <p class="retour"> [<a href="[(#URL_PAGE{login}|parametre_url{url,#SELF})]"><:login:></a>] [[<a href="(#ENV{inscription})&mode=6forum[(&id_rubrique=(#ENV{id_rubrique})]&focus=nom_inscription" target="spip_pass" onclick="javascript:window.open(this.href, 'spip_pass', 'scrollbars=yes, resizable=yes, width=480, height=340'); return false;"><:login_sinscrire:></a>]] [[<a href="(#ENV{oubli})" target="spip_pass" onclick="javascript:window.open(this.href, 'spip_pass', 'scrollbars=yes, resizable=yes, width=480, height=340'); return false;"><:login_motpasseoublie:></a>]] </p> </fieldset>inc-choix_mots.html000066600000000757152503000500010360 0ustar00<B_mots> <ul class="choix_mots"> <BOUCLE_mots(MOTS){id_groupe} {par titre}> <li class='saisie_mot'> <input type="[(#ENV{unseul}|choixsiegal{oui,radio,checkbox})]" class="[(#ENV{unseul}|choixsiegal{oui,radio,checkbox})]" name="ajouter_mot[[(#ENV{unseul}|choixsiegal{oui,#ID_GROUPE,''})]]" id="mot#ID_MOT" value="#ID_MOT" [(#ID_MOT|in_any{#ENV**{ajouter_mot}, ''}|?{'checked="checked"',''})] /> [<label for="mot#ID_MOT">(#TITRE|supprimer_numero)</label>] </li> </BOUCLE_mots> </ul> </B_mots>signature.html000066600000006107152503000500007431 0ustar00<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}"><div> #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_signature#ENV{id_article}"><:antispam_champ_vide:></label> <input type="text" class="text" name="nobot" id="nobot_signature#ENV{id_article}" 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> </div> </form> ] </div>forum.html000066600000014444152503000500006563 0ustar00<div class="formulaire_spip formulaire_forum ajax" id="formulaire_forum"> [(#REM) pour IE qui sinon se perd dans l'ajax !, ne pas retirer]<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{login_forum_abo}) <INCLURE{fond=formulaires/inc-login_forum_abo}{env} /> ] [(#ENV{editable}) [(#REM) Bloc de previsualisation du forum envoye Si on valide la previsu, on n'envoie pas en ajax car, si le post reussit il faudra certainement redessiner toute la page pour afficher le nouveau forum ][<form action="#ENV{action}#formulaire_forum" method="post" class="noajax"> <div> [(#ACTION_FORMULAIRE{#ENV{action}})] <input type='hidden' name='titre' value="#ENV{titre}" /> <input type='hidden' name='texte' value="#ENV{texte}" /> <input type='hidden' name='url_site' value="#ENV{url_site}" /> <input type='hidden' name='nom_site' value="#ENV{nom_site}" /> [<input type="hidden" name="id_forum" value="(#ENV*{id_forum})" />] [(#INCLURE{fond=formulaires/inc-forum_ajouter_mot}{ajouter_mot})] (#ENV*{erreurs}|table_valeur{previsu}) </div> </form>] <form action="#ENV{action}#formulaire_forum" method="post" enctype='multipart/form-data'><div> [(#ACTION_FORMULAIRE{#ENV{action}})] [<input type="hidden" name="id_forum" value="(#ENV*{id_forum})" />] [<fieldset class="moderation_info"> <legend><:bouton_radio_modere_priori:></legend> <p class="explication">(#ENV{modere})<:forum_info_modere:></p> </fieldset>] [(#ENV**{afficher_texte}|choixsiegal{'non', ' ',''}) [<input type="hidden" name="titre" value="(#ENV{titre})" />] <p class="spip_bouton"><input type="submit" class="submit" value="<:forum_valider:>" /></p>] [(#ENV**{afficher_texte}|choixsiegal{'non', '',' '}) <fieldset> <legend><:form_pet_message_commentaire:></legend>[ (#CONFIG{forums_titre}|!={non}|non) <input type="hidden" name="titre" id="titre"[ value="(#ENV{titre})"] /> ]<ul> [<li class='saisie_mots_forum'>(#INCLURE{fond=formulaires/inc-forum_bloc_choix_mots}{table=#ENV*{table}}{ajouter_mot})</li>] [(#CONFIG{forums_titre}|!={non}|oui) <li class='saisie_titre[ (#ENV**{erreurs}|table_valeur{titre}|oui)erreur]'> <label for="titre"><:forum_titre:></label> [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{titre})</span>] <input type="text" class="text" name="titre" id="titre"[ value="(#ENV{titre})"] size="60" /> </li> ] [(#CONFIG{forums_texte}|!={non}|?{ <li class='saisie_texte[ (#ENV**{erreurs}|table_valeur{texte}|oui)erreur]'> <label for='texte'><:forum_texte|typo:></label> [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{texte})</span>] <p class='explication'><:info_creation_paragraphe:></p> <textarea name="texte" id="texte" rows="12" cols="60">[(#ENV{texte})]</textarea> </li> })] </ul></fieldset> [(#CONFIG{forums_urlref}|!={non}|?{ <fieldset> <legend><:forum_lien_hyper:></legend> <p class='explication'><:forum_page_url:></p> <ul> <li class='saisie_nom_site[ (#ENV**{erreurs}|table_valeur{nom_site}|oui)erreur]'><label for="nom_site"><:forum_titre:></label> [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{nom_site})</span>] <input type="text" class="text" name="nom_site" id="nom_site" size="40" value="[(#ENV{nom_site})]" /></li> <li class='saisie_url_site[ (#ENV**{erreurs}|table_valeur{url_site}|oui)erreur]'><label for="url_site"><:forum_url:></label> [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{url_site})</span>] <input type="text" class="text" name="url_site" id="url_site" style="text-align: left;" dir="ltr" size="40" value="[(#ENV{url_site})]" /></li> </ul></fieldset> })] [ <fieldset> <legend><:bouton_ajouter_document:></legend> <ul> <li class='saisie_document_forum[ (#ENV**{erreurs}|table_valeur{document_forum}|oui)erreur]'> [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{document_forum})</span>] <input type="hidden" name="cle_ajouter_document" value="(#ENV{cle_ajouter_document})" /> [<div id="ajouter_document_up">(#ENV{ajouter_document}) <label for="supprimer_document_ajoute"><input type='checkbox' name='supprimer_document_ajoute' id='supprimer_document_ajoute' /> <:lien_supprimer:></label> </div>] <div> [<label for="ajouter_document">(#ENV{formats_documents_forum}|join{', '})</label>] <input class='file' type="file" name="ajouter_document" id="ajouter_document"[ accept="(#ENV{formats_documents_forum}|join{','})"] /> </div> <script type='text/javascript'> jQuery('#ajouter_document_up') .next() .hide() .prev() .find(':checkbox') .bind('change', function(){ jQuery('#ajouter_document_up').hide().next().show(); }) ; </script> </li> </ul></fieldset> ] <INCLURE{fond=formulaires/inc-login_forum}{env} /> [(#REM) Piege a robots spammeurs ] <p style="display: none;"> <label for="nobot_forum"><:antispam_champ_vide:></label> <input type="text" class="text" name="nobot" id="nobot_forum" value="#ENV{nobot}" size="10" /> </p> <p class="boutons"><input type="submit" class="submit" value="<:forum_voir_avant:>" /></p> ] </div> </form> [(#REM) Sauver les donnees du formulaire dans un cookie, si on quitte la page, et les remettre quand on revient (dans les limites de 4ko etc) ] <script type="text/javascript">/*<!#EVAL{chr(91)}CDATA#EVAL{chr(91)}*/ if (window.jQuery)(function($){ var a = $.cookie('spip_contenu_formulaire_#ENV{_sign}'); var saveauto = true; if (a) { $('#formulaire_forum textarea#EVAL{chr(91)}name=texte#EVAL{chr(93)}') .val(a); $.cookie('spip_contenu_formulaire_#ENV{_sign}', null); } /* virer le cookie a la validation finale du message */ $('input#EVAL{chr(91)}name=confirmer_previsu_forum#EVAL{chr(93)}') .live('click', function(e) { saveauto = false; }); $(window) .bind('unload', function(){ if (saveauto){ var s = $('#formulaire_forum textarea#EVAL{chr(91)}name=texte#EVAL{chr(93)}').val(); if (s) $.cookie('spip_contenu_formulaire_#ENV{_sign}', s); else $.cookie('spip_contenu_formulaire_#ENV{_sign}', null); }else{ /* on vide le champs texte après le submit car refuser_traiter_formulaire_ajax(); va reposter le formulaire, et donc reposer un cookie car saveauto sera false la seconde fois. */ $('#formulaire_forum textarea#EVAL{chr(91)}name=texte#EVAL{chr(93)}').val(''); } }); }(jQuery)); /*#EVAL{chr(93)}[(#EVAL{chr(93)})]>*/</script> ] </div> signature.php000066600000031531152503000500007253 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2011 * * 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' => date('Y-m-d H:i:s')), "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' => date('Y-m-d H:i:s'), '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; } ?> forum.php000066600000027364152503000500006413 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2011 * * 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_forum_charger_dist( $titre, $table, $type, $script, $id_rubrique, $id_forum, $id_article, $id_breve, $id_syndic, $ajouter_mot, $ajouter_groupe, $afficher_texte, $url_param_retour) { // exiger l'authentification des posteurs pour les forums sur abo if ($type == "abo") { if (!$GLOBALS["visiteur_session"]['statut']) { return array( 'action' => '', #ne sert pas dans ce cas, on la vide pour mutualiser le cache 'editable'=>false, 'login_forum_abo'=>' ', 'inscription' => generer_url_public('identifiants', 'lang='.$GLOBALS['spip_lang']), 'oubli' => generer_url_public('spip_pass','lang='.$GLOBALS['spip_lang'],true), ); } } // Tableau des valeurs servant au calcul d'une signature de securite. // Elles seront placees en Input Hidden pour que inc/forum_insert // recalcule la meme chose et verifie l'identite des resultats. // Donc ne pas changer la valeur de ce tableau entre le calcul de // la signature et la fabrication des Hidden // Faire attention aussi a 0 != '' // id_rubrique est parfois passee pour les articles, on n'en veut pas $ids = array(); if ($id_rubrique > 0 AND ($id_article OR $id_breve OR $id_syndic)) $id_rubrique = 0; foreach (array('id_article', 'id_breve', 'id_forum', 'id_rubrique', 'id_syndic') as $o) { $ids[$o] = ($x = intval($$o)) ? $x : ''; } // ne pas mettre '', sinon le squelette n'affichera rien. $previsu = ' '; // au premier appel (pas de Post-var nommee "retour_forum") // memoriser eventuellement l'URL de retour pour y revenir apres // envoi du message ; aux appels suivants, reconduire la valeur. // Initialiser aussi l'auteur if ($retour_forum = rawurldecode(_request('retour'))) $retour_forum = str_replace('&var_mode=recalcul','',$retour_forum); else { // par defaut, on veut prendre url_forum(), mais elle ne sera connue // qu'en sortie, on inscrit donc une valeur absurde ("!") $retour_forum = "!"; // sauf si on a passe un parametre en argument (exemple : {#SELF}) if ($url_param_retour) $retour_forum = str_replace('&', '&', $url_param_retour); $retour_forum = rawurlencode($retour_forum); } if (_request('retour_forum')){ $arg = forum_fichier_tmp(join('', $ids)); $securiser_action = charger_fonction('securiser_action', 'inc'); // on sait que cette fonction est dans le fichier associe $hash = calculer_action_auteur("ajout_forum-$arg"); } // pour les hidden $script_hidden = ""; foreach ($ids as $id => $v) $script_hidden .= "<input type='hidden' name='$id' value='$v' />"; $script_hidden .= "<input type='hidden' name='arg' value='$arg' />"; $script_hidden .= "<input type='hidden' name='hash' value='$hash' />"; $script_hidden .= "<input type='hidden' name='verif_".substr($hash,0,32)."' value='ok' />"; $script_hidden .= "<input type='hidden' name='afficher_texte' value='$afficher_texte' />"; $script_hidden .= "<input type='hidden' name='retour_forum' value='$retour_forum' />"; // l'ajout de documents est-il autorise ? // cf. verifier.php if ($formats = forum_documents_acceptes()) { include_spip('inc/securiser_action'); $cle_ajouter_document = calculer_cle_action('ajouter-document-'.join('-',array_map('intval',$ids))); } return array( 'modere' => (($type != 'pri') ? '' : ' '), 'nom_site' => '', 'table' => $table, 'texte' => '', 'config' => array('afficher_barre' => ($GLOBALS['meta']['forums_afficher_barre']!='non'?' ':'')), 'titre' => str_replace('~', ' ', extraire_multi($titre)), 'action' => $script, # ce sur quoi on fait le action='...' '_hidden' => $script_hidden, # pour les variables hidden 'url_site' => "http://", 'cle_ajouter_document' => $cle_ajouter_document, 'formats_documents_forum' => $formats, 'ajouter_document' => $_FILES['ajouter_document']['name'], 'nobot' => _request('nobot'), 'ajouter_groupe' => $ajouter_groupe, 'ajouter_mot' => (is_array($ajouter_mot) ? $ajouter_mot : array($ajouter_mot)), 'id_forum' => $id_forum, // passer id_forum au formulaire pour lui permettre d'afficher a quoi l'internaute repond '_sign'=>implode('_',$ids) ); } // Une securite qui nous protege contre : // - les doubles validations de forums (derapages humains ou des brouteurs) // - les abus visant a mettre des forums malgre nous sur un article (??) // On installe un fichier temporaire dans _DIR_TMP (et pas _DIR_CACHE // afin de ne pas bugguer quand on vide le cache) // Le lock est leve au moment de l'insertion en base (inc-messforum) // Ce systeme n'est pas fonctionnel pour les forums sans previsu (notamment // si $afficher_texte = 'non') // http://doc.spip.org/@forum_fichier_tmp function forum_fichier_tmp($arg) { # astuce : mt_rand pour autoriser les hits simultanes while (($alea = time() + @mt_rand()) + intval($arg) AND @file_exists($f = _DIR_TMP."forum_$alea.lck")) {}; spip_touch ($f); # et maintenant on purge les locks de forums ouverts depuis > 4 h if ($dh = @opendir(_DIR_TMP)) while (($file = @readdir($dh)) !== false) if (preg_match('/^forum_([0-9]+)\.lck$/', $file) AND (time()-@filemtime(_DIR_TMP.$file) > 4*3600)) spip_unlink(_DIR_TMP.$file); return $alea; } function formulaires_forum_verifier_dist( $titre, $table, $type, $script, $id_rubrique, $id_forum, $id_article, $id_breve, $id_syndic, $ajouter_mot, $ajouter_groupe, $afficher_texte, $url_param_retour) { include_spip('inc/acces'); include_spip('inc/texte'); include_spip('inc/forum'); include_spip('inc/session'); include_spip('base/abstract_sql'); $erreurs = array(); // desactiver id_rubrique si un id_article ou autre existe dans le contexte if ($id_article OR $id_breve OR $id_forum OR $id_syndic) $id_rubrique = 0; // stocker un eventuel document dans un espace temporaire // portant la cle du formulaire ; et ses metadonnees avec if (!isset($GLOBALS['visiteur_session']['tmp_forum_document'])) session_set('tmp_forum_document', sous_repertoire(_DIR_TMP,'documents_forum').md5(uniqid(rand()))); $tmp = $GLOBALS['visiteur_session']['tmp_forum_document']; $doc = &$_FILES['ajouter_document']; if (isset($_FILES['ajouter_document']) AND $_FILES['ajouter_document']['tmp_name']) { // securite : // verifier si on possede la cle (ie on est autorise a poster) // (sinon tant pis) ; cf. charger.php pour la definition de la cle if (_request('cle_ajouter_document') != calculer_cle_action($a = "ajouter-document-$id_article-$id_breve-$id_forum-$id_rubrique-$id_syndic")) { $erreurs['document_forum'] = _T('public:documents_interdits_forum') . "ajouter-document-$id_article-$id_breve-$id_forum-$id_rubrique-$id_syndic" .", " ._request('cle_ajouter_document') ; unset($_FILES['ajouter_document']); } else { include_spip('inc/ajouter_documents'); list($extension,$doc['name']) = fixer_extension_document($doc); $acceptes = forum_documents_acceptes(); if (!in_array($extension, $acceptes)) { # normalement on n'arrive pas ici : pas d'upload si aucun format if (!$formats = join(', ',$acceptes)) $formats = '-'; //_L('aucun'); $erreurs['document_forum'] = _T('public:formats_acceptes', array('formats' => $formats)); } else { include_spip('inc/getdocument'); if (!deplacer_fichier_upload($doc['tmp_name'], $tmp.'.bin')) $erreurs['document_forum'] = _T('copie_document_impossible'); # else if (...) # verifier le type_document autorise # retailler eventuellement les photos } // si ok on stocke les meta donnees, sinon on efface if (isset($erreurs['document_forum'])) { spip_unlink($tmp.'.bin'); unset ($_FILES['ajouter_document']); } else { $doc['tmp_name'] = $tmp.'.bin'; ecrire_fichier($tmp.'.txt', serialize($doc)); } } } // restaurer le document uploade au tour precedent else if (file_exists($tmp.'.bin')) { if (_request('supprimer_document_ajoute')) { spip_unlink($tmp.'.bin'); spip_unlink($tmp.'.txt'); } else if (lire_fichier($tmp.'.txt', $meta)) $doc = @unserialize($meta); } if (strlen($texte = _request('texte')) < 10 AND !$ajouter_mot AND $GLOBALS['meta']['forums_texte'] == 'oui') $erreurs['texte'] = _T('forum_attention_dix_caracteres'); else if (defined('_FORUM_LONGUEUR_MAXI') AND _FORUM_LONGUEUR_MAXI > 0 AND strlen($texte) > _FORUM_LONGUEUR_MAXI) $erreurs['texte'] = _T('forum_attention_trop_caracteres', array( 'compte' => strlen($texte), 'max' => _FORUM_LONGUEUR_MAXI )); if (strlen($titre=_request('titre')) < 3 AND $GLOBALS['meta']['forums_titre'] == 'oui') $erreurs['titre'] = _T('forum_attention_trois_caracteres'); if (!count($erreurs) AND !_request('confirmer_previsu_forum')){ if ($afficher_texte != 'non') { $previsu = inclure_previsu($texte, $titre, _request('url_site'), _request('nom_site'), _request('ajouter_mot'), $doc, $id_rubrique, $id_forum, $id_article, $id_breve, $id_syndic); $erreurs['previsu'] = $previsu; } } return $erreurs; } function forum_documents_acceptes() { $formats = trim($GLOBALS['meta']['formats_documents_forum']); if (!$formats) return array(); if ($formats !== '*') $formats = array_filter(preg_split(',[^a-zA-Z0-9/+_],', $formats)); else { include_spip('base/typedoc'); $formats = array_keys($GLOBALS['tables_mime']); } sort($formats); return $formats; } // http://doc.spip.org/@inclure_previsu function inclure_previsu($texte,$titre, $url_site, $nom_site, $ajouter_mot, $doc, $id_rubrique, $id_forum, $id_article, $id_breve, $id_syndic) { global $table_des_traitements; $bouton = _T('forum_message_definitif'); include_spip('public/assembler'); include_spip('public/composer'); // appliquer les traitements de #TEXTE a la previsu // comme on voit c'est complique... y a peut-etre plus simple ? // recuperer les filtres eventuels de 'mes_fonctions.php' sur les balises include_spip('public/parametrer'); $evaltexte = isset($table_des_traitements['TEXTE']['forums']) ? $table_des_traitements['TEXTE']['forums'] : $table_des_traitements['TEXTE'][0]; $evaltexte = '$tmptexte = '.str_replace('%s', '$texte', $evaltexte).';'; // evaluer... eval($evaltexte); // supprimer les <form> de la previsualisation // (sinon on ne peut pas faire <cadre>...</cadre> dans les forums) return preg_replace("@<(/?)form\b@ism", '<\1div', inclure_balise_dynamique(array('formulaires/inc-forum_previsu', 0, array( 'titre' => safehtml(typo($titre)), 'texte' => $tmptexte, 'notes' => safehtml(calculer_notes()), 'url_site' => vider_url($url_site), 'nom_site' => safehtml(typo($nom_site)), 'ajouter_mot' => (is_array($ajouter_mot) ? $ajouter_mot : array($ajouter_mot)), 'ajouter_document' => $doc, 'erreur' => $erreur, 'bouton' => $bouton, 'id_rubrique' => $id_rubrique, 'id_forum' => $id_forum, 'id_article' => $id_article, 'id_breve' => $id_breve, 'id_syndic' => $id_syndic ) ), false)); } function formulaires_forum_traiter_dist() { // le formulaire forum n'est jamais traite en ajax car il s'acheve par une redirection vers // la bonne page qui doit etre reaffichee dans son ensemble refuser_traiter_formulaire_ajax(); $forum_insert = charger_fonction('forum_insert', 'inc'); list($redirect,$id_forum) = $forum_insert(); return array('redirect'=>$redirect,'id_forum'=>$id_forum); } ?> site.html000066600000003447152503000500006400 0ustar00<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>save_recherche.html000066600000000761152503000500010376 0ustar00<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=">>" title="<:info_rechercher:>" /> </div></form> </div> inc-forum_ajouter_mot.html000066600000000170152503000500011731 0ustar00<BOUCLE_mot(MOTS){id_mot IN #ENV{ajouter_mot}}><input type="hidden" name="ajouter_mot[]" value="#ID_MOT" /></BOUCLE_mot>
/home/etiennec/www/b9da6/../b594c/../f1f54/formulaires.tar