From 06771f5bdcc8b4590cd4f0d215ad4d93eaacd2e4 Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Wed, 2 Feb 2005 12:52:31 +0000 Subject: [PATCH] =?UTF-8?q?re-changement=20de=20r=C3=A9pertoires?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dist/404.html | 50 +++ dist/404.php3 | 7 + dist/article.html | 290 ++++++++++++++ dist/auteur.html | 92 +++++ dist/backend-breves.html | 32 ++ dist/backend.html | 46 +++ dist/breve.html | 220 +++++++++++ dist/distrib.html | 7 + dist/forum.html | 107 +++++ dist/ical.html | 29 ++ dist/login.html | 37 ++ dist/mot.html | 181 +++++++++ dist/nouveautes.html | 35 ++ dist/plan.html | 123 ++++++ dist/recherche.html | 177 +++++++++ dist/resume.html | 137 +++++++ dist/rubrique.html | 225 +++++++++++ dist/site.html | 90 +++++ dist/sommaire.html | 169 ++++++++ dist/sommaire_texte.html | 97 +++++ ecrire/inc_version.php3 | 2 +- formulaires/formulaire_admin.html | 16 + formulaires/formulaire_ecrire_auteur.html | 20 + formulaires/formulaire_forum.html | 54 +++ formulaires/formulaire_inscription.html | 42 ++ formulaires/formulaire_login.html | 79 ++++ formulaires/formulaire_menu_lang.html | 14 + formulaires/formulaire_oubli.html | 37 ++ formulaires/formulaire_recherche.html | 9 + formulaires/formulaire_signature.html | 44 +++ formulaires/formulaire_site.html | 18 + formulaires/inc-formulaire_admin.php3 | 109 ++++++ formulaires/inc-formulaire_ecrire_auteur.php3 | 59 +++ formulaires/inc-formulaire_forum.php3 | 364 ++++++++++++++++++ formulaires/inc-formulaire_inscription.php3 | 123 ++++++ formulaires/inc-formulaire_recherche.php3 | 26 ++ formulaires/inc-formulaire_signature.php3 | 248 ++++++++++++ formulaires/inc-formulaire_site.php3 | 37 ++ formulaires/inc-login_prive.php3 | 30 ++ formulaires/inc-login_public.php3 | 147 +++++++ formulaires/inc-menu_lang.php3 | 26 ++ formulaires/inc-menu_lang_ecrire.php3 | 41 ++ formulaires/inc-url_logout.php3 | 20 + 43 files changed, 3715 insertions(+), 1 deletion(-) create mode 100644 dist/404.html create mode 100644 dist/404.php3 create mode 100644 dist/article.html create mode 100644 dist/auteur.html create mode 100644 dist/backend-breves.html create mode 100644 dist/backend.html create mode 100644 dist/breve.html create mode 100644 dist/distrib.html create mode 100644 dist/forum.html create mode 100644 dist/ical.html create mode 100644 dist/login.html create mode 100644 dist/mot.html create mode 100644 dist/nouveautes.html create mode 100644 dist/plan.html create mode 100644 dist/recherche.html create mode 100644 dist/resume.html create mode 100644 dist/rubrique.html create mode 100644 dist/site.html create mode 100644 dist/sommaire.html create mode 100644 dist/sommaire_texte.html create mode 100644 formulaires/formulaire_admin.html create mode 100644 formulaires/formulaire_ecrire_auteur.html create mode 100644 formulaires/formulaire_forum.html create mode 100644 formulaires/formulaire_inscription.html create mode 100644 formulaires/formulaire_login.html create mode 100644 formulaires/formulaire_menu_lang.html create mode 100644 formulaires/formulaire_oubli.html create mode 100644 formulaires/formulaire_recherche.html create mode 100644 formulaires/formulaire_signature.html create mode 100644 formulaires/formulaire_site.html create mode 100644 formulaires/inc-formulaire_admin.php3 create mode 100644 formulaires/inc-formulaire_ecrire_auteur.php3 create mode 100644 formulaires/inc-formulaire_forum.php3 create mode 100644 formulaires/inc-formulaire_inscription.php3 create mode 100644 formulaires/inc-formulaire_recherche.php3 create mode 100644 formulaires/inc-formulaire_signature.php3 create mode 100644 formulaires/inc-formulaire_site.php3 create mode 100644 formulaires/inc-login_prive.php3 create mode 100644 formulaires/inc-login_public.php3 create mode 100644 formulaires/inc-menu_lang.php3 create mode 100644 formulaires/inc-menu_lang_ecrire.php3 create mode 100644 formulaires/inc-url_logout.php3 diff --git a/dist/404.html b/dist/404.html new file mode 100644 index 0000000000..2eedcf5949 --- /dev/null +++ b/dist/404.html @@ -0,0 +1,50 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html lang="#LANG"> +<head> + <title>[#NOM_SITE_SPIP - <:pass_erreur:> 404]</title> + <meta http-equiv="Content-Type" content="text/html; charset=#CHARSET"> + + <!-- Ceci est la feuille de style par defaut pour les types internes a SPIP --> + <link rel="stylesheet" href="spip_style.css" type="text/css"> + + <!-- Les feuilles de style specifiques aux presents squelettes --> + <link rel="stylesheet" href="typographie.css" type="text/css"> + + <!-- media="..." permet de ne pas utiliser ce style sous Netscape 4 (sinon plantage) --> + <link rel="stylesheet" href="habillage.css" type="text/css" media="print, projection, screen, tv"> + +</head> +<body bgcolor="white" dir="#LANG_DIR"> + + + +<div id="navigation"> + + <h1 class="structure"><:navigation:></h1> + + <!-- Menu de navigation general --> + <div class="menu"> + <ul class="general"> + <li class="menu-titre"><a href="#URL_SITE_SPIP" title="<:accueil_site:>"><b>#NOM_SITE_SPIP</b></a></li> + <li class="menu-item"><a href="plan.php3"><:plan_site:></a></li> + <li class="menu-item"><a href="resume.php3" title="<:articles_populaires:>"><:en_resume:></a></li> + <li class="menu-item"><a href="ecrire/"><:espace_prive:></a></li> + </ul> + </div> + + <!-- Formulaire de recherche --> + #FORMULAIRE_RECHERCHE + +</div> + +<div id="principal" class="contenu"> + +<h1 class="titre-texte"><:pass_erreur:> 404</h1> + <p>#ERREUR_AUCUN</p> +</div> + + +#SPIP_CRON + +</body> +</html> \ No newline at end of file diff --git a/dist/404.php3 b/dist/404.php3 new file mode 100644 index 0000000000..a55d59a070 --- /dev/null +++ b/dist/404.php3 @@ -0,0 +1,7 @@ +<?php + + $fond='404'; + $delais = 12 * 3600; + include ('inc-public.php3'); + +?> \ No newline at end of file diff --git a/dist/article.html b/dist/article.html new file mode 100644 index 0000000000..509c89438a --- /dev/null +++ b/dist/article.html @@ -0,0 +1,290 @@ +<BOUCLE_article_principal(ARTICLES) {id_article} +><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html lang="#LANG"> +<head> +<title>[(#TITRE|textebrut)]</title> +<meta http-equiv="Content-Type" content="text/html; charset=#CHARSET"> +<!-- Ceci est la feuille de style par defaut pour les types internes a SPIP --> +<link rel="stylesheet" href="spip_style.css" type="text/css"> + +<!-- Les feuilles de style specifiques aux presents squelettes --> +<link rel="stylesheet" href="typographie.css" type="text/css"> + +<!-- media="..." permet de ne pas utiliser ce style sous Netscape 4 (sinon plantage) --> +<link rel="stylesheet" href="habillage.css" type="text/css" media="projection, screen, tv"> +<!-- media="print" permet d'utiliser cette feuille de style quand vous imprimez depuis votre navigateur --> +<link rel="stylesheet" href="impression.css" type="text/css" media="print"> +</head> + +<body bgcolor="white" dir="#LANG_DIR"> +<div id="navigation"> + +<h1 class="structure"><:navigation:></h1> + +<!-- Menu de navigation general --> + +<div class="menu"> +<ul class="general"> + <li class="menu-titre"> + [<a href="(#URL_SITE_SPIP)" title="<:accueil_site:>"><b>#NOM_SITE_SPIP</b></a>] + </li> + <li class="menu-item"> + <a href="plan.php3"><:plan_site:></a> + </li> + <li class="menu-item"> + <a href="resume.php3" title="<:articles_populaires:>"><:en_resume:></a> + </li> + <li class="menu-item"> + <a href="ecrire/"><:espace_prive:></a> + </li> +</ul> +</div> + +<!-- Formulaire de recherche --> + +[(#FORMULAIRE_RECHERCHE)] + + +<!-- Menu de navigation rubriques --> + +<B_rubriques> +<div class="menu"> +<ol class="rubriques"> +<BOUCLE_rubriques(HIERARCHIE) {id_article}> +<li> +<div class="menu-titre"><a href="#URL_RUBRIQUE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></div> +<B_sous_rubriques> + <ul class="menu-liste"> +<BOUCLE_sous_rubriques(RUBRIQUES) {meme_parent} {exclus} {par date} {inverse} {0,3}> + <li class="menu-item"><a href="#URL_RUBRIQUE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></li> +</BOUCLE_sous_rubriques> + </ul> +</B_sous_rubriques> +</li> +</BOUCLE_rubriques> +</ol> +</div> +</B_rubriques> + + +<!-- Menu de navigation mots-cles --> + +<B_mots> +<div class="menu"> + +<h1 class="structure"><:mots_clefs:></h1> + +<ul class="divers" title="<:mots_clefs:>"> +<BOUCLE_mots(MOTS) {id_article} {par titre}> +<li> +<div class="menu-titre"><a href="#URL_MOT" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></div> +<B_articles_mots> + <ul class="menu-liste"> +<BOUCLE_articles_mots(ARTICLES) {id_mot} {par hasard} {0,4}> + <li class="menu-item"><a href="#URL_ARTICLE" title="[(#DESCRIPTIF|textebrut|entites_html)]">#TITRE</a></li> +</BOUCLE_articles_mots> + </ul> +</B_articles_mots> +</li> +</BOUCLE_mots> +</ul> +</div> +</B_mots> + + +<!-- Liens des forums --> +<BOUCLE_forums_decompte(FORUMS){id_article}{plat}></BOUCLE_forums_decompte> +[<div class="menu" title="<:derniers_commentaires:>"> + +<h1 class="structure"><:derniers_commentaires:></h1> + +<ul class="forums"> + +<li class="menu-titre"><:messages_forum:>: (#TOTAL_BOUCLE)</li>] +<//B_forums_decompte> +<BOUCLE_forums_liens(FORUMS){id_article}{par date}{inverse}{0,5}> + <li class="menu-item">[<i>(#DATE|affdate_court)</i>:] + <a href="#forum#ID_FORUM">#TITRE</a> + </li> +</BOUCLE_forums_liens> +</ul> +</div> +</B_forums_liens> + + +</div> + + +<!-- Une : derniers articles publies --> + +<div class="contenu" id="principal"> + +<div class="cartouche"> +#DEBUT_SURLIGNE[ +(#LOGO_ARTICLE|left)][ +<div class="surtitre">(#SURTITRE)</div> +]<h1 class="titre-texte">#TITRE</h1>[ +<div class="surtitre">(#SOUSTITRE)</div> +]#FIN_SURLIGNE +[(#DATE|nom_jour)] [(#DATE|affdate).] +</div> +<div style="line-height: 0em"> </div><!-- Bug Mozilla http://bugzilla.mozilla.org/show_bug.cgi?id=200510 --> + + <div class="encart"> + + <!-- Auteurs de l'article --> + + <B_auteurs> + + <div class="menu"> + <h2 class="structure"><:memes_auteurs:></h2> + <ul class="divers"> + <BOUCLE_auteurs(AUTEURS) {id_article} {par nom}> + <li> + <div class="menu-titre"><a href="#URL_AUTEUR">#NOM</a></div> + <ul> + [<li class="menu-item" style="text-align: center"><a href="(#URL_SITE)">#NOM_SITE</a></li>] + [<li class="menu-item" style="text-align: center">(#BIO)</li>] + <B_articles_auteur> + <BOUCLE_articles_auteur(ARTICLES) {id_auteur} {par popularite} {inverse} {0,5}> + <li class="menu-item"><a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></li> + </BOUCLE_articles_auteur> + </ul> + </li> + </BOUCLE_auteurs> + </ul> + </div> + + </B_auteurs> + + <!-- Articles dans la meme rubrique --> + + <B_articles_rubrique> + + <div class="menu"> + <div class="breves"> + <h2 class="structure"><:meme_rubrique:></h2> + <div class="menu-titre"> + <:meme_rubrique:> + </div> + <ul> + <BOUCLE_articles_rubrique(ARTICLES) {id_rubrique} {par hasard} {exclus} {0,8}> + <li class="menu-item"> + <a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a> + </li> + </BOUCLE_articles_rubrique> + </ul> + </div> + </div> + + </B_articles_rubrique> + [<div class='reponse_formulaire'> + <a name='sp#ID_ARTICLE' id='sp#ID_ARTICLE'></a> + (#FORMULAIRE_SIGNATURE) + </div>] + </div> + +#DEBUT_SURLIGNE[ +<div class="chapo">(#CHAPO)</div> +][<div class="texte">(#TEXTE)</div> +][<div class="ps">(#PS)</div>][ +<div class="notes">(#NOTES)</div> +]#FIN_SURLIGNE + +<BOUCLE_documents_joints(DOCUMENTS) {id_article} {mode=document} {doublons} {"<br>"}> +[(#LOGO_DOCUMENT|#URL_DOCUMENT)][<br>(#TITRE)][ - (#DESCRIPTIF)] +</BOUCLE_documents_joints> +<br> + + +<!-- Signatures petition --> + +<BOUCLE_signatures_decompte(SIGNATURES) {id_article}></BOUCLE_signatures_decompte> +[<div class="signatures-titre"><:signatures_petition:>: (#TOTAL_BOUCLE)</div> + +<table class="signatures"> +<thead class="structure"> +<tr> + <td><:date:></td> + <td><:nom:></td> + <td><:message:></td> +</tr> +</thead> +<tbody>] +<//B_signatures_decompte> +<BOUCLE_signatures(SIGNATURES) {id_article} {par date} {inverse} {debut_signatures,30}> +<tr> + <td class="signature-date">[(#DATE|affdate_court)]</td> + <td class="signature-nom">#NOM[<br><a href="#URL_SITE">(#NOM_SITE)</a>]</td> + [<td class="signature-message">(#MESSAGE)</td>] +</tr> +</BOUCLE_signatures> +</tbody> +</table> +</B_signatures> + + +<!-- Forums --> + +[<div class="forum-repondre"><B><A HREF="forum.php3?(#PARAMETRES_FORUM)"><:repondre_article:></A></B></div>] +<br> + +<h1 class="structure"><:Forum:></h1> + +<B_forums> +<ul class="forum-total"> + +<BOUCLE_forums(FORUMS){id_article}{par date}{inverse}> + +<li> +<div class="forum-fil"> + +<div class="forum"> +<div class="forum-chapo"> +<div class="forum-titre"><a name="forum#ID_FORUM"></a>#TITRE</div> +[(#DATE|affdate)][, <:par_auteur:> <A HREF="mailto:#EMAIL">(#NOM)</A>] +</div> +<div class="forum-item"> +#TEXTE +[<div class="forum-titre"><a href="(#URL_SITE)" class="spip_out">#NOM_SITE</a></div>] +[<div class="forum-repondre-message"><a href="forum.php3?(#PARAMETRES_FORUM)"><:repondre_message:></a></div>] +</div> +</div> + +<B_forums_fils> + <ul> + <BOUCLE_forums_fils(FORUMS){id_parent}{par date}> + + <li> + <div class="forum"> + <div class="forum-chapo"> + <div class="forum-titre"><a name="forum#ID_FORUM"></a>#TITRE</div> + [(#DATE|affdate)][, <:par_auteur:> <A HREF="mailto:#EMAIL">(#NOM)</A>] + </div> + <div class="forum-item"> + #TEXTE + [<div class="forum-titre"><a href="(#URL_SITE)" class="spip_out">#NOM_SITE</a></div>] + [<div class="forum-repondre-message"><a href="forum.php3?(#PARAMETRES_FORUM)"><:repondre_message:></a></div>] + </div> + + </div> + + <BOUCLE_Forums_Boucle(boucle_forums_fils)></BOUCLE_Forums_Boucle> + </li> + + </BOUCLE_forums_fils> + </ul> +</B_forums_fils> + +</div> +</li> +</BOUCLE_forums> + +</ul> +</B_forums> + +</div> + +</body> +</html> +</BOUCLE_article_principal> \ No newline at end of file diff --git a/dist/auteur.html b/dist/auteur.html new file mode 100644 index 0000000000..40f3978d21 --- /dev/null +++ b/dist/auteur.html @@ -0,0 +1,92 @@ +<BOUCLE_auteur_principal(AUTEURS) {id_auteur} +><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html lang="#LANG"> +<head> +<title>[(#NOM|textebrut)]</title> +<meta http-equiv="Content-Type" content="text/html; charset=#CHARSET"> + +<!-- Ceci est la feuille de style par defaut pour les types internes a SPIP --> +<link rel="stylesheet" href="spip_style.css" type="text/css"> + +<!-- Les feuilles de style specifiques aux presents squelettes --> +<link rel="stylesheet" href="typographie.css" type="text/css"> + +<!-- media="..." permet de ne pas utiliser ce style sous Netscape 4 (sinon plantage) --> +<link rel="stylesheet" href="habillage.css" type="text/css" media="projection, screen, tv"> +<!-- media="print" permet d'utiliser cette feuille de style quand vous imprimez depuis votre navigateur --> +<link rel="stylesheet" href="impression.css" type="text/css" media="print"> +</head> + +<body bgcolor="white"> + +<div id="navigation"> + +<h1 class="structure"><:navigation:></h1> + +<!-- Menu de navigation general --> + +<div class="menu"> +<ul class="general"> + <li class="menu-titre"> + [<a href="(#URL_SITE_SPIP)" title="<:accueil_site:>"><b>#NOM_SITE_SPIP</b></a>] + </li> + <li class="menu-item"> + <a href="plan.php3"><:plan_site:></a> + </li> + <li class="menu-item"> + <a href="resume.php3" title="<:articles_populaires:>"><:en_resume:></a> + </li> + <li class="menu-item"> + <a href="ecrire/"><:espace_prive:></a> + </li> +</ul> +</div> + + +<!-- Formulaire de recherche --> + +[(#FORMULAIRE_RECHERCHE)] + + +</div> + + +<!-- Une : affichage de l'auteur --> + +<div class="contenu" id="principal"> + +<div class="cartouche"> +[(#LOGO_AUTEUR|left)] +<h1 class="titre-texte">#NOM</h1> + +[<div class="chapo">(#BIO)</div>] +[<br>#NOM_SITE : <a href="(#URL_SITE)">#URL_SITE</a><br>] +[<div class="notes">(#NOTES)</div>] +</div> + +[<p><b><:envoyer_message:></b></p> +<div class='spip_encadrer'><b>(#FORMULAIRE_ECRIRE_AUTEUR)</b></div>] + +<!-- Articles de l'auteur --> + +<h1 class="structure"><:articles_auteur:></h1> + +<div class="liste-articles"> + +<BOUCLE_articles(ARTICLES) {id_auteur} {par titre}> + <h2><a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></h2> + <div class="detail"> + [(#DATE|nom_jour)] [(#DATE|affdate)] + <B_auteurs><:par_auteur:> <BOUCLE_auteurs(AUTEURS) {id_article} {", "}>#NOM</BOUCLE_auteurs> + </div> + <br> +</BOUCLE_articles> + +</div> + +</div> + +</body> +</html> +</BOUCLE_auteur_principal> + diff --git a/dist/backend-breves.html b/dist/backend-breves.html new file mode 100644 index 0000000000..dcb6a830ff --- /dev/null +++ b/dist/backend-breves.html @@ -0,0 +1,32 @@ +<?php echo '<'.'?xml version="1.0" encoding="#CHARSET"?'.">\n"; ?> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + +<channel> + + <title>[(#NOM_SITE_SPIP|texte_backend)]</title> + <link>#URL_SITE_SPIP/</link> + <description></description> + <language>#LANG</language> + + <image> + <title>[(#NOM_SITE_SPIP|texte_backend)]</title> + <url>#URL_SITE_SPIP[/(#LOGO_SITE_SPIP||extraire_attribut{src})]</url> + <link>#URL_SITE_SPIP/</link> + <description></description> + </image> + + <BOUCLE_breves(BREVES){id_rubrique ?}{lang ?}{par date}{inverse}{0,10}> + <item> + <title>[(#TITRE|texte_backend)]</title> + <link>#URL_SITE_SPIP/#URL_BREVE</link> + <date>#DATE</date> + <description>[<img src="#URL_SITE_SPIP/(#LOGO_BREVE||extraire_attribut{src})" align="left" hspace="4" vspace="4"> ][(#TEXTE|texte_backend)]</description> + <dc:date>[(#DATE|date_iso)]</dc:date> + <dc:format>text/html</dc:format> + <dc:language>#LANG</dc:language> + </item> + </BOUCLE_breves> + +</channel> + +</rss> diff --git a/dist/backend.html b/dist/backend.html new file mode 100644 index 0000000000..46897d3a2f --- /dev/null +++ b/dist/backend.html @@ -0,0 +1,46 @@ +<?php echo '<'.'?xml version="1.0" encoding="#CHARSET"?'.">\n"; ?> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + +<channel> + <title>[(#NOM_SITE_SPIP|texte_backend)]</title> + <link>#URL_SITE_SPIP/</link> + <description></description> + <language>#LANG</language> + + <image> + <title>[(#NOM_SITE_SPIP|texte_backend)]</title> + <url>#URL_SITE_SPIP[/(#LOGO_SITE_SPIP||extraire_attribut{src})]</url> + <link>#URL_SITE_SPIP/</link> + <description></description> + </image> + + <BOUCLE_10recents(ARTICLES){lang ?}{branche ?}{par date}{inverse}{0,10}{unique}> + <item> + <title>[(#TITRE|texte_backend)]</title> + <link>#URL_SITE_SPIP/#URL_ARTICLE</link> + <date>#DATE</date> + <description>[<img src="#URL_SITE_SPIP/(#LOGO_ARTICLE||extraire_attribut{src})" align="left" hspace="4" vspace="4"> ][(#INTRODUCTION|texte_backend)]</description> + <author><BOUCLE_auteurs(AUTEURS){id_article}{", "}>[(#NOM|texte_backend)]</BOUCLE_auteurs></author> + <dc:date>[(#DATE|date_iso)]</dc:date> + <dc:format>text/html</dc:format> + <dc:language>#LANG</dc:language> + <dc:creator><BOUCLE_auteursb(AUTEURS){id_article}{", "}>[(#NOM|texte_backend)]</BOUCLE_auteursb></dc:creator> + </item> + </BOUCLE_10recents> + <BOUCLE_tres_recents(ARTICLES){lang ?}{branche ?}{par date}{inverse}{age<3}{unique}> + <item> + <title>[(#TITRE|texte_backend)]</title> + <link>#URL_SITE_SPIP/#URL_ARTICLE</link> + <date>#DATE</date> + <description>[<img src="#URL_SITE_SPIP/(#LOGO_ARTICLE||extraire_attribut{src})" align="left" hspace="4" vspace="4"> ][(#INTRODUCTION|texte_backend)]</description> + <author><BOUCLE_auteurs_t(AUTEURS){id_article}{","}>[(#NOM|texte_backend)]</BOUCLE_auteurs_t></author> + <dc:date>[(#DATE|date_iso)]</dc:date> + <dc:format>text/html</dc:format> + <dc:language>#LANG</dc:language> + <dc:creator><BOUCLE_auteurs_tb(AUTEURS){id_article}{", "}>[(#NOM|texte_backend)]</BOUCLE_auteurs_tb></dc:creator> + </item> + </BOUCLE_tres_recents> + +</channel> + +</rss> diff --git a/dist/breve.html b/dist/breve.html new file mode 100644 index 0000000000..164a92e3b8 --- /dev/null +++ b/dist/breve.html @@ -0,0 +1,220 @@ +<BOUCLE_breve_principal(BREVES) {id_breve} +><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html lang="#LANG"> +<head> +<title>#TITRE</title> +<meta http-equiv="Content-Type" content="text/html; charset=#CHARSET"> + +<!-- Ceci est la feuille de style par defaut pour les types internes a SPIP --> +<link rel="stylesheet" href="spip_style.css" type="text/css"> + +<!-- Les feuilles de style specifiques aux presents squelettes --> +<link rel="stylesheet" href="typographie.css" type="text/css"> + +<!-- media="..." permet de ne pas utiliser ce style sous Netscape 4 (sinon plantage) --> +<link rel="stylesheet" href="habillage.css" type="text/css" media="projection, screen, tv"> +<!-- media="print" permet d'utiliser cette feuille de style quand vous imprimez depuis votre navigateur --> +<link rel="stylesheet" href="impression.css" type="text/css" media="print"> +</head> + +<body bgcolor="white" dir="#LANG_DIR"> + + +<div id="navigation"> + +<h1 class="structure"><:navigation:></h1> + +<!-- Menu de navigation general --> + +<div class="menu"> +<ul class="general"> + <li class="menu-titre"> + [<a href="(#URL_SITE_SPIP)" title="<:accueil_site:>"><b>#NOM_SITE_SPIP</b></a>] + </li> + <li class="menu-item"> + <a href="plan.php3"><:plan_site:></a> + </li> + <li class="menu-item"> + <a href="resume.php3" title="<:articles_populaires:>"><:en_resume:></a> + </li> + <li class="menu-item"> + <a href="ecrire/"><:espace_prive:></a> + </li> +</ul> +</div> + +<!-- Formulaire de recherche --> + +[(#FORMULAIRE_RECHERCHE)] + +<!-- Menu de navigation rubriques --> + +<div class="menu"> +<ul class="rubriques"> +<BOUCLE_rubrique(RUBRIQUES) {id_rubrique}> +<li> +<div class="menu-titre"><a href="#URL_RUBRIQUE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></div> +</li> +<BOUCLE_autres_rubriques(RUBRIQUES) {racine} {exclus} {par titre}> + <li class="menu-item"><a href="#URL_RUBRIQUE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></li> +</BOUCLE_autres_rubriques> +</BOUCLE_rubrique> +</ul> +</div> + + +<!-- Menu de navigation mots-cles --> + +<B_mots> +<div class="menu"> +<ul class="divers" title="<:mots_clefs:>"> +<BOUCLE_mots(MOTS) {id_article} {par titre}> +<li> +<div class="menu-titre"><a href="#URL_MOT" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></div> +<B_breves_mots> + <ul class="menu-liste"> +<BOUCLE_breves_mots(BREVES) {id_mot} {par hasard} {0,4}> + <li class="menu-item"><a href="#URL_BREVE">#TITRE</a></li> +</BOUCLE_breves_mots> + </ul> +</B_breves_mots> +</li> +</BOUCLE_mots> +</ul> +</div> +</B_mots> + + +<!-- Articles dans le meme secteur --> + +<B_articles_secteur> + +<div class="menu"> +<div class="breves" title="<:derniers_articles:>"> + <div class="menu-titre"> + <:derniers_articles:> + </div> + <ul> +<BOUCLE_articles_secteur(ARTICLES) {id_secteur} {par date} {inverse} {0,5}> + <li class="menu-item"> + <a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a> + </li> +</BOUCLE_articles_secteur> + </ul> +</div> +</div> + +</B_articles_secteur> + + +</div> + +<!-- Contenu : corps de la breve --> + +<div class="contenu" id="principal"> + +<div id="cartouche"> +[(#LOGO_BREVE|left)] +<h1 class="titre-texte">#TITRE</h1> +[(#DATE|nom_jour)] [(#DATE|affdate).] +</div> + + <div class="encart"> + + <!-- Breves dans la meme rubrique --> + + <B_breves_rubrique> + + <div class="menu"> + <div class="breves" title="<:meme_rubrique:>"> + <h1 class="structure"><:meme_rubrique:></h1> + <div class="menu-titre"> + <:autres_breves:> + </div> + <ul> + <BOUCLE_breves_rubrique(BREVES) {id_rubrique} {exclus} {par date} {inverse} {0,8}> + <li class="menu-item"> + <i>[(#DATE|affdate_court)]</i>: + <a href="#URL_BREVE">#TITRE</a> + </li> + </BOUCLE_breves_rubrique> + </ul> + </div> + </div> + + </B_breves_rubrique> + + </div> + + +[<div class="texte">(#TEXTE)</div>] +[<div class="chapo"><:voir_en_ligne:>: <a href="(#URL_SITE)" class="spip_out">#NOM_SITE</a>.</div>] +[<div class="notes">(#NOTES)</div>] + +<br> + + +<!-- Forums --> + +[<div class="forum-repondre"><B><A HREF="forum.php3?(#PARAMETRES_FORUM)"><:repondre_breve:></A></B></div>] +<br> + +<h1 class="structure"><:forum:></h1> + +<B_forums> +<ul class="forum-total"> + +<BOUCLE_forums(FORUMS){id_breve}{par date}{inverse}> + +<li> +<div class="forum-fil"> +<div class="forum"> +<a name="forum#ID_FORUM"></a> +<div class="forum-chapo"> +<div class="forum-titre">#TITRE</div> +[(#DATE|affdate)][, <:par_auteur:> <A HREF="mailto:#EMAIL">(#NOM)</A>] +</div> +<div class="forum-item"> +#TEXTE +[<div class="forum-titre"><a href="(#URL_SITE)" class="spip_out">#NOM_SITE</a></div>] +[<div class="forum-repondre-message"><a href="forum.php3?(#PARAMETRES_FORUM)"><:repondre_message:></a></div>] +</div> +</div> + +<B_forums_fils> + <ul> + <BOUCLE_forums_fils(FORUMS){id_parent}{par date}> + + <li> + <div class="forum"> + <a name="forum#ID_FORUM"></a> + <div class="forum-chapo"> + <div class="forum-titre">#TITRE</div> + [(#DATE|affdate)][, par <A HREF="mailto:#EMAIL">(#NOM)</A>] + </div> + <div class="forum-item"> + #TEXTE + [<div class="forum-titre"><a href="(#URL_SITE)" class="spip_out">#NOM_SITE</a></div>] + [<div class="forum-repondre-message"><a href="forum.php3?(#PARAMETRES_FORUM)"><:repondre_message:></a></div>] + </div> + + </div> + + <BOUCLE_Forums_Boucle(boucle_forums_fils)></BOUCLE_Forums_Boucle> + </li> + + </BOUCLE_forums_fils> + </ul> +</B_forums_fils> + +</div> +</li> +</BOUCLE_forums> + +</ul> +</B_forums> + +</div> + +</body></html> +</BOUCLE_breve_principal> diff --git a/dist/distrib.html b/dist/distrib.html new file mode 100644 index 0000000000..f1d0cff667 --- /dev/null +++ b/dist/distrib.html @@ -0,0 +1,7 @@ +document.write('<table border="0" bgcolor="#000000" cellspacing="0" cellpadding="0"><tr><td>'); +document.write('<table border="0" bgcolor="#ffffff" cellspacing="1" cellpadding="2"><tr><td bgcolor="#d0d0d0" align="center">'); +document.write('<a href="#URL_SITE_SPIP/"><b>[(#NOM_SITE_SPIP|addslashes)]</b></a> </td></tr><tr><td><ul><small>'); +<BOUCLE_articles(articles){tout}{par date}{inverse}{0,10}> +document.write('<li><a href="#URL_SITE_SPIP/#URL_ARTICLE"><font color="#000000">[(#TITRE|addslashes)]</font></a></li>\n'); +</BOUCLE_articles> +document.write('</small></ul></td></tr></table></td></tr></table>'); diff --git a/dist/forum.html b/dist/forum.html new file mode 100644 index 0000000000..aff66db151 --- /dev/null +++ b/dist/forum.html @@ -0,0 +1,107 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html lang="#LANG"> +<head> +<title>[#NOM_SITE_SPIP] <:poster_message:></title> +<meta http-equiv="Content-Type" content="text/html; charset=#CHARSET"> + +<!-- Ceci est la feuille de style par defaut pour les types internes a SPIP --> +<link rel="stylesheet" href="spip_style.css" type="text/css"> + +<!-- Les feuilles de style specifiques aux presents squelettes --> +<link rel="stylesheet" href="typographie.css" type="text/css"> + +<!-- media="..." permet de ne pas utiliser ce style sous Netscape 4 (sinon plantage) --> +<link rel="stylesheet" href="habillage.css" type="text/css" media="print, projection, screen, tv"> +</head> + +<body bgcolor="white" dir="#LANG_DIR"> + + +<div id="navigation"> + +<h1 class="structure"><:navigation:></h1> + +<!-- Menu de navigation general --> + +<div class="menu"> +<ul class="general"> + <li class="menu-titre"> + [<a href="(#URL_SITE_SPIP)" title="<:accueil_site:>"><b>#NOM_SITE_SPIP</b></a>] + </li> + <li class="menu-item"> + <a href="plan.php3"><:plan_site:></a> + </li> + <li class="menu-item"> + <a href="resume.php3" title="<:articles_populaires:>"><:en_resume:></a> + </li> + <li class="menu-item"> + <a href="ecrire/"><:espace_prive:></a> + </li> +</ul> +</div> + +</div> + + +<!-- Contenu : poster un message dans le forum --> + +<div id="principal" class="contenu"> + +<h1 class="structure"><:poster_message:></h1> + +<BOUCLE_article(ARTICLES) {id_article}> + <:en_reponse:> + [(#LOGO_ARTICLE|right)] + [<div class="surtitre">(#SURTITRE)</div>] + <h2 class="titre-extrait"><a href="#URL_ARTICLE">#TITRE</a></h2> + [<div class="surtitre">(#SOUSTITRE)</div>] + <div class="detail"> + [(#DATE|nom_jour)] [(#DATE|affdate)] + <B_auteurs_un><:par_auteur:> <BOUCLE_auteurs_un(AUTEURS) {id_article} {", "}>#NOM</BOUCLE_auteurs_un> + </div> + [<div class="texte"><div class="extrait">(#INTRODUCTION)</div></div>] + <br> +</BOUCLE_article> + +<BOUCLE_breve(BREVES) {id_breve}> + <:en_reponse:> + [(#LOGO_BREVE|right)] + <h2 class="titre-extrait"><a href="#URL_BREVE">#TITRE</a></h2> + <div class="detail"> + [(#DATE|nom_jour)] [(#DATE|affdate)] + </div> + [<div class="texte"><div class="extrait">(#INTRODUCTION)</div></div>] + <br> +</BOUCLE_breve> + +<BOUCLE_rubrique(RUBRIQUES) {id_rubrique}> + <:en_reponse:> + <h2 class="titre-extrait"><a href="#URL_RUBRIQUE">#TITRE</a></h2> + [<div class="texte"><div class="extrait">(#TEXTE)</div></div>] + <br> +</BOUCLE_rubrique> + +<BOUCLE_syndic(SITES) {id_syndic}> + <:en_reponse:> + <h2 class="titre-extrait"><a href="#URL_SYNDIC">#TITRE</a></h2> + <br> +</BOUCLE_syndic> + +<BOUCLE_forum_parent(FORUMS) {id_forum}> + <:en_reponse:> + <h2 class="titre-extrait"><a href="#URL_FORUM">#TITRE</a></h2> + <div class="detail"> + [(#DATE|nom_jour)] [(#DATE|affdate)] + </div> + [<div class="texte"><div class="extrait">(#TEXTE)</div></div>] + <br> +</BOUCLE_forum_parent> + + +#FORMULAIRE_FORUM + + +</div> + +</body> +</html> diff --git a/dist/ical.html b/dist/ical.html new file mode 100644 index 0000000000..559ad07ef5 --- /dev/null +++ b/dist/ical.html @@ -0,0 +1,29 @@ +BEGIN:VCALENDAR +CALSCALE:GREGORIAN +X-WR-CALNAME;VALUE=TEXT:[(#NOM_SITE_SPIP|filtrer_ical)] +X-WR-RELCALID:[(#URL_SITE_SPIP|filtrer_ical)] +<BOUCLE_articles(ARTICLES){par date}{inverse}{0,100}> +BEGIN:VEVENT +SUMMARY:[(#TITRE|filtrer_ical)] [[(#NOM_SITE_SPIP|filtrer_ical)]] +UID:article#ID_ARTICLE @ [(#URL_SITE_SPIP|filtrer_ical)] +DTSTAMP:[(#DATE|date_ical)] +DTSTART:[(#DATE|date_ical)] +DTEND:[(#DATE|date_ical{60})] +CATEGORIES:<:articles|filtrer_ical:> +URL:#URL_SITE_SPIP/#URL_ARTICLE +STATUS:CONFIRMED +END:VEVENT +</BOUCLE_articles> +<BOUCLE_breves(BREVES){par date}{inverse}{0,100}> +BEGIN:VEVENT +SUMMARY:[(#TITRE|filtrer_ical)] [[(#NOM_SITE_SPIP|filtrer_ical)]] +UID:breve#ID_BREVE @ [(#URL_SITE_SPIP|filtrer_ical)] +DTSTAMP:[(#DATE|date_ical)] +DTSTART:[(#DATE|date_ical)] +DTEND:[(#DATE|date_ical{60})] +CATEGORIES:<:breves|filtrer_ical:> +URL:#URL_SITE_SPIP/#URL_BREVE +STATUS:CONFIRMED +END:VEVENT +</BOUCLE_breves> +END:VCALENDAR diff --git a/dist/login.html b/dist/login.html new file mode 100644 index 0000000000..a6a9f157b0 --- /dev/null +++ b/dist/login.html @@ -0,0 +1,37 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html lang="#LANG"> +<head> + <title><:login_acces_prive:></title> + <meta http-equiv="Content-Type" content="text/html; charset=#CHARSET"> + <link rel="stylesheet" href="spip_style.css" type="text/css"> +</head> +<body dir="#LANG_DIR" bgcolor="#ffffff" text="#000000" link="#e86519" vlink="#6e003a" alink="#ff9900"> + +<br><br><br><center><table width="400"><tr><td width="400"> +<div align="center"> +<h3 class="spip">#NOM_SITE_SPIP<br> +<small><:login_acces_prive:></small></h3> +<div align="#LANG_RIGHT">#MENU_LANG_ECRIRE</div> +</div> + +#LOGIN_PRIVE + +<div align='center' style='font-family: Verdana,arial,helvetica,sans-serif; font-size: 12px;'> +[[<a + href='(#ENV{inscription})?mode=redac&focus=nom_inscription' + target="spip_pass" + onclick="javascript:window.open(this.href, 'spip_pass', 'scrollbars=yes, resizable=yes, width=480, height=500'); return false;"><:login_sinscrire:></a>]] + +[<a + href="spip_pass.php3" + target="spip_pass" + onclick="javascript:window.open(this.href, 'spip_pass', 'scrollbars=yes, resizable=yes, width=480, height=280'); return false;"><:login_motpasseoublie:></a>] + +[<a href='#URL_SITE_SPIP'><:login_retoursitepublic:></a>] + +</div> + +</td></tr></table></center> + +</body> +</html> diff --git a/dist/mot.html b/dist/mot.html new file mode 100644 index 0000000000..87443b1188 --- /dev/null +++ b/dist/mot.html @@ -0,0 +1,181 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<BOUCLE_mot_principal(MOTS) {id_mot} {doublons}> + +<html lang="#LANG"> +<head> +<title>[(#TITRE|textebrut)]</title> +<meta http-equiv="Content-Type" content="text/html; charset=#CHARSET"> + +<!-- Ceci est la feuille de style par defaut pour les types internes a SPIP --> +<link rel="stylesheet" href="spip_style.css" type="text/css"> + +<!-- Les feuilles de style specifiques aux presents squelettes --> +<link rel="stylesheet" href="typographie.css" type="text/css"> + +<!-- media="..." permet de ne pas utiliser ce style sous Netscape 4 (sinon plantage) --> +<link rel="stylesheet" href="habillage.css" type="text/css" media="projection, screen, tv"> +<!-- media="print" permet d'utiliser cette feuille de style quand vous imprimez depuis votre navigateur --> +<link rel="stylesheet" href="impression.css" type="text/css" media="print"> +</head> + +<body bgcolor="white" dir="#LANG_DIR"> + +<div id="navigation"> + +<h1 class="structure"><:navigation:></h1> + +<!-- Menu de navigation general --> + +<div class="menu"> +<ul class="general"> + <li class="menu-titre"> + [<a href="(#URL_SITE_SPIP)" title="<:accueil_site:>"><b>#NOM_SITE_SPIP</b></a>] + </li> + <li class="menu-item"> + <a href="plan.php3"><:plan_site:></a> + </li> + <li class="menu-item"> + <a href="resume.php3" title="<:articles_populaires:>"><:en_resume:></a> + </li> + <li class="menu-item"> + <a href="ecrire/"><:espace_prive:></a> + </li> +</ul> +</div> + + +<!-- Formulaire de recherche --> + +[(#FORMULAIRE_RECHERCHE)] + + +<!-- Menu de navigation mots-cles : les autres mots cles du meme groupe--> + +<B_mots_freres> +<h2 class="structure"><:mots_clefs_meme_groupe:></h2> + +<div class="menu"> +<div class="divers"> +<div class="menu-titre"><BOUCLE_groupe(GROUPES_MOTS) {id_groupe} {doublons}>#TITRE</BOUCLE_groupe></div> + <ul class="menu-liste"> +<BOUCLE_mots_freres(MOTS) {type} {doublons} {par titre}> + <li class="menu-item"><a href="#URL_MOT" title="[(#DESCRIPTIF|textebrut|entites_html)]">#TITRE</a></li> +</BOUCLE_mots_freres> + </ul> +</div> +</div> +</B_mots_freres> + + +<!-- Menu de navigation mots-cles : les autres groupes avec un lien sur le premier mot du groupe --> + +<B_groupes_freres> +<h2 class="structure"><:autres_groupes_mots_clefs:></h2> + +<div class="menu"> +<div class="divers"> +<div class="menu-titre"><:autres_groupes_mots_clefs:></div> + <ul class="menu-liste"> +<BOUCLE_groupes_freres(GROUPES_MOTS) {par titre} {doublons}> +<BOUCLE_mot_cousin(MOTS) {id_groupe} {par titre} {0,1}> + <li class="menu-item"><a href="#URL_MOT">#TYPE</a></li> +</BOUCLE_mot_cousin> +</BOUCLE_groupes_freres> + </ul> +</div> +</div> +</B_groupes_freres> + + +</div> + +<!-- Une : contenu du mot-cle --> + +<div class="contenu" id="principal"> + +<div class="cartouche"> +[(#LOGO_MOT|left)] +<h1 class="titre-texte">#TITRE</h1> +</div> + + <div class="encart"> + + <!-- Rubriques liees au mot-cle --> + + <B_rubriques> + <h2 class="structure"><:rubriques:></h2> + + <div class="menu"> + <div class="rubriques"> + <div class="menu-titre"><:rubriques:></div> + <ul class="menu-liste"> + <BOUCLE_rubriques(RUBRIQUES) {id_mot} {par titre}> + <li class="menu-item"><a href="#URL_RUBRIQUE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></li> + </BOUCLE_rubriques> + </ul> + </div> + </div> + </B_rubriques> + + <!-- Breves liees au mot-cle --> + + <B_breves> + <h2 class="structure"><:breves:></h2> + + <div class="menu"> + <div class="breves"> + <div class="menu-titre"><:breves:></div> + <ul class="menu-liste"> + <BOUCLE_breves(BREVES) {id_mot} {par titre}> + <li class="menu-item"><a href="#URL_BREVE">#TITRE</a></li> + </BOUCLE_breves> + </ul> + </div> + </div> + </B_breves> + + <!-- Sites Web lies au mot-cle --> + + <B_sites> + <h2 class="structure"><:sites_web:></h2> + + <div class="menu"> + <div class="breves"> + <div class="menu-titre"><:sites_web:></div> + <ul class="menu-liste"> + <BOUCLE_sites(SITES) {id_mot} {par nom_site}> + <li class="menu-item"><a href="#URL_SITE">#TITRE</a></li> + </BOUCLE_sites> + </ul> + </div> + </div> + </B_sites> + + </div> + +[<div class="chapo">(#TEXTE)</div>] +[<div class="notes">(#NOTES)</div>] + + +<!-- Articles lies au mot-cle --> + +<h1 class="structure"><:articles:></h1> + +<div class="liste-articles"> + +<BOUCLE_articles(ARTICLES) {id_mot} {par titre}> + <h2><a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></h2> + <div class="detail"> + [(#DATE|nom_jour)] [(#DATE|affdate)] + <B_auteurs><:par_auteur:> <BOUCLE_auteurs(AUTEURS) {id_article} {", "}>#NOM</BOUCLE_auteurs> + </div> + <br> +</BOUCLE_articles> + +</div> +</div> + +</body> +</html> +</BOUCLE_mot_principal> +<//B_mot_principal> diff --git a/dist/nouveautes.html b/dist/nouveautes.html new file mode 100644 index 0000000000..4317522d0c --- /dev/null +++ b/dist/nouveautes.html @@ -0,0 +1,35 @@ +[[(#NOM_SITE_SPIP|textebrut|texte_script)]] <:nouveautes|texte_script:> + +<B0> +<:bonjour|texte_script:> + +<:texte_lettre_information|texte_script:> "[(#NOM_SITE_SPIP|textebrut|texte_script)]" (#URL_SITE_SPIP). +<:texte_lettre_information_2|texte_script:> [(#ENV{jours_neuf})] <:jours|texte_script:>. + +<BOUCLE0(AUTEURS){0,1}><B_nv1> + <:nouveaux_articles|texte_script:> + -------------------------- + +<BOUCLE_nv1(ARTICLES){age_relatif<=0}{par date}{inverse}{0,30}> +[** (#TITRE|textebrut|texte_script) **] +[par (#LESAUTEURS|textebrut|texte_script)] +[le (#DATE|affdate|texte_script)] + +[(#INTRODUCTION|textebrut|texte_script)] + +-> #URL_SITE_SPIP/#URL_ARTICLE + +</BOUCLE_nv1><B_nv2> + + <:nouvelles_breves|texte_script:> + -------------------------- + +<BOUCLE_nv2(BREVES){age_relatif<=0}{par date}{inverse}{0,30}> +[* (#TITRE|textebrut|texte_script) *] +[ - (#DATE|affdate|texte_script)] + +[(#INTRODUCTION|textebrut|texte_script)] + +-> #URL_SITE_SPIP/#URL_BREVE + +</BOUCLE_nv2></BOUCLE0> \ No newline at end of file diff --git a/dist/plan.html b/dist/plan.html new file mode 100644 index 0000000000..73462708c9 --- /dev/null +++ b/dist/plan.html @@ -0,0 +1,123 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html lang="#LANG"> +<head> +<title>[#NOM_SITE_SPIP] </title> +<meta http-equiv="Content-Type" content="text/html; charset=#CHARSET"> + +<!-- Ceci est la feuille de style par defaut pour les types internes a SPIP --> +<link rel="stylesheet" href="spip_style.css" type="text/css"> + +<!-- Les feuilles de style specifiques aux presents squelettes --> +<link rel="stylesheet" href="typographie.css" type="text/css"> + +<!-- media="..." permet de ne pas utiliser ce style sous Netscape 4 (sinon plantage) --> +<link rel="stylesheet" href="habillage.css" type="text/css" media="print, projection, screen, tv"> +</head> + +<body bgcolor="white" dir="#LANG_DIR"> + + +<!-- Plan du site --> + +<div id="plan" class="contenu"> + +<BOUCLE_secteurs(RUBRIQUES) {racine} {par titre}> + +<div class="plan-secteur"> + + [(#LOGO_RUBRIQUE|left)]<h1><a href="#URL_RUBRIQUE">#TITRE</a></h1> + + <div class="encart"> + + <!-- Breves --> + + <h2 class="structure"><:breves:></h2> + + <B_breves> + <div class="menu"> + <div class="breves"> + <div class="menu-titre"> + <:breves:> + </div> + <ul> + <BOUCLE_breves(BREVES) {id_secteur} {par date} {inverse} {0,15}> + <li class="menu-item"> + <i>[(#DATE|affdate_court)]</i>: + <a href="#URL_BREVE">#TITRE</a> + </li> + </BOUCLE_breves> + </ul> + </div> + </div> + </B_breves> + + <!-- Sur le Web --> + + <h2 class="structure"><:sites_web:></h2> + + <B_sites> + <div class="menu"> + <div class="divers"> + <div class="menu-titre"> + <:sur_web:> + </div> + <ul> + <BOUCLE_sites(SITES) {id_secteur} {par nom_site}> + <li class="menu-item"> + <a href="#URL_SITE">#NOM_SITE</a> + </li> + </BOUCLE_sites> + </ul> + </div> + </div> + </B_sites> + + </div> + +<!-- Articles et sous-rubriques --> + +<h2 class="structure"><:articles:></h2> + +<B_articles_racine> +<ul class="plan-articles"> + +<BOUCLE_articles_racine(ARTICLES) {id_rubrique} {par titre}> +<li class="plan-article"><a href="#URL_ARTICLE">#TITRE</a></li> +</BOUCLE_articles_racine> + +</ul> +</B_articles_racine> + +<B_rubriques> + +<ul class="plan-rubriques"> + +<BOUCLE_rubriques(RUBRIQUES) {id_parent} {par titre}> +<li> +<div class="plan-rubrique"><a href="#URL_RUBRIQUE">#TITRE</a></div> + + <B_articles> + <ul class="plan-articles"> + <BOUCLE_articles(ARTICLES) {id_rubrique} {par titre}> + <li class="plan-article"><a href="#URL_ARTICLE">#TITRE</a></li> + </BOUCLE_articles> + </ul> + </B_articles> + + <BOUCLE_sous_rubriques(BOUCLE_rubriques)></BOUCLE_sous_rubriques> + +</li> +</BOUCLE_rubriques> + +</ul> +</B_rubriques> + + +</div> + +</BOUCLE_secteurs> + +</div> + +</body> +</html> diff --git a/dist/recherche.html b/dist/recherche.html new file mode 100644 index 0000000000..394e178d0d --- /dev/null +++ b/dist/recherche.html @@ -0,0 +1,177 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> + +<html lang="#LANG"> +<head> +<title><:resultats_recherche:></title> +<meta http-equiv="Content-Type" content="text/html; charset=#CHARSET"> + +<!-- Ceci est la feuille de style par defaut pour les types internes a SPIP --> +<link rel="stylesheet" href="spip_style.css" type="text/css"> + +<!-- Les feuilles de style specifiques aux presents squelettes --> +<link rel="stylesheet" href="typographie.css" type="text/css"> + +<!-- media="..." permet de ne pas utiliser ce style sous Netscape 4 (sinon plantage) --> +<link rel="stylesheet" href="habillage.css" type="text/css" media="projection, screen, tv"> +<!-- media="print" permet d'utiliser cette feuille de style quand vous imprimez depuis votre navigateur --> +<link rel="stylesheet" href="impression.css" type="text/css" media="print"> +</head> + +<body bgcolor="white" dir="#LANG_DIR"> + +<div id="navigation"> + +<!-- Menu de navigation general --> + +<div class="menu"> +<ul class="general"> + <li class="menu-titre"> + [<a href="(#URL_SITE_SPIP)" title="<:accueil_site:>"><b>#NOM_SITE_SPIP</b></a>] + </li> + <li class="menu-item"> + <a href="plan.php3"><:plan_site:></a> + </li> + <li class="menu-item"> + <a href="resume.php3" title="<:articles_populaires:>"><:en_resume:></a> + </li> + <li class="menu-item"> + <a href="ecrire/"><:espace_prive:></a> + </li> +</ul> +</div> + + +<!-- Formulaire de recherche --> + +[(#FORMULAIRE_RECHERCHE)] + + +<!-- Rubriques trouvees --> + +<B_rubriques> +<div class="menu"> +<ul class="rubriques" title="<:rubriques:>"> +<li class="menu-titre"><:rubriques:></li> +<BOUCLE_rubriques(RUBRIQUES) {recherche} {par points} {inverse} {0,8}> +<li class="menu-item"><a href="#URL_RUBRIQUE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></li> +</BOUCLE_rubriques> +</ul> +</div> +</B_rubriques> + + +<!-- Mots-cles trouves et articles associes--> + +<B_mots> +<div class="menu"> +<ul class="divers" title="<:mots_clefs:>"> +<BOUCLE_mots(MOTS) {recherche} {par points} {inverse} {0,5}> +<li> +<div class="menu-titre"><a href="#URL_MOT" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></div> +<B_articles_mots> + <ul class="menu-liste"> +<BOUCLE_articles_mots(ARTICLES) {id_mot} {par hasard} {0,8}> + <li class="menu-item"><a href="#URL_ARTICLE" title="[(#DESCRIPTIF|textebrut|entites_html)]">#TITRE</a></li> +</BOUCLE_articles_mots> + </ul> +</B_articles_mots> +</li> +</BOUCLE_mots> +</ul> +</div> +</B_mots> + +</div> + +<!-- Une : articles trouves --> + +<div class="contenu" id="principal"> + +<div class="cartouche"> +<h1 class="surtitre"><:resultats_recherche:></h1> +[<h2 class="titre-texte">(#RECHERCHE)</h2>] +</div> + + <div class="encart"> + + <!-- Breves trouvees --> + + <B_breves> + + <div class="menu"> + <div class="breves" title="Brèves trouvées"> + <div class="menu-titre"> + <:breves:> + </div> + <ul> + <BOUCLE_breves(BREVES) {recherche} {par points} {inverse} {0,8}> + <li class="menu-item"> + <i>[(#DATE|affdate_court)]</i>: + <a href="#URL_BREVE">#TITRE</a> + </li> + </BOUCLE_breves> + </ul> + </div> + </div> + + </B_breves> + + <!-- Sites Web trouves --> + + <B_sites> + <div class="menu"> + <div class="divers" title="Sites Web trouvés"> + <div class="menu-titre"> + <:sites_web:> + </div> + <ul> + <BOUCLE_sites(SITES) {recherche} {par points} {inverse} {0,8}> + <li class="menu-item"> + <a href="#URL_SITE" title="[(#DESCRIPTIF|textebrut|entites_html)]">#NOM_SITE</a> + </li> + </BOUCLE_sites> + </ul> + </div> + </div> + </B_sites> + + <!-- Messages trouves --> + + <B_messages> + <div class="menu"> + <div class="divers" title="<:messages_forum:>"> + <div class="menu-titre"> + <:messages_forum:> + </div> + <ul> + <BOUCLE_messages(FORUMS) {recherche} {par points} {inverse} {0,8}> + <li class="menu-item"> + <a href="#URL_FORUM">#TITRE</a> + </li> + </BOUCLE_messages> + </ul> + </div> + </div> + </B_messages> + + </div> + + +<div class="liste-articles"> + +<BOUCLE_articles(ARTICLES) {recherche} {par points} {inverse} {0,10}> + <h2><a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></h2> + <div class="detail"> + [(#DATE|nom_jour)] [(#DATE|affdate)] + <B_auteurs_articles><:par_auteur:> <BOUCLE_auteurs_articles(AUTEURS) {id_article} {", "}>#NOM</BOUCLE_auteurs_articles> + </div> + <br> +</BOUCLE_articles> + +</div> + +</div> + +</body> +</html> + diff --git a/dist/resume.html b/dist/resume.html new file mode 100644 index 0000000000..d068902b74 --- /dev/null +++ b/dist/resume.html @@ -0,0 +1,137 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html lang="#LANG"> +<head> +<title>[#NOM_SITE_SPIP] </title> +<meta http-equiv="Content-Type" content="text/html; charset=#CHARSET"> + +<!-- Ceci est la feuille de style par defaut pour les types internes a SPIP --> +<link rel="stylesheet" href="spip_style.css" type="text/css"> + +<!-- Les feuilles de style specifiques aux presents squelettes --> +<link rel="stylesheet" href="typographie.css" type="text/css"> + +<!-- media="..." permet de ne pas utiliser ce style sous Netscape 4 (sinon plantage) --> +<link rel="stylesheet" href="habillage.css" type="text/css" media="print, projection, screen, tv"> +</head> + +<body bgcolor="white" dir="#LANG_DIR"> + +<div id="navigation"> + +<h1 class="structure"><:navigation:></h1> + +<!-- Menu de navigation general --> + +<div class="menu"> +<ul class="general"> + <li class="menu-titre"> + [<a href="(#URL_SITE_SPIP)" title="<:accueil_site:>"><b>#NOM_SITE_SPIP</b></a>] + </li> + <li class="menu-item"> + <a href="plan.php3"><:plan_site:></a> + </li> + <li class="menu-item"> + <a href="resume.php3"><:en_resume:></a> + </li> + <li class="menu-item"> + <a href="ecrire/"><:espace_prive:></a> + </li> +</ul> +</div> + + +<!-- Formulaire de recherche --> + +[(#FORMULAIRE_RECHERCHE)] + +<!-- Liens des forums --> +<B_forums_liens> +<div class="menu" title="<:derniers_messages_forum:>"> + <h1 class="structure"><:messages_recents:></h1> + <div class="forums"> + <div class="menu-titre"> + <:derniers_commentaires:> + </div> + <ul> +<BOUCLE_forums_liens(FORUMS){plat}{par date}{inverse}{0,15}> + <li class="menu-item">[<i>(#DATE|affdate_court)</i>:] + <a href="#URL_FORUM">#TITRE</a> + </li> +</BOUCLE_forums_liens> + </ul> + </div> +</div> +</B_forums_liens> + + +</div> + +<!-- Une : articles les plus populaires --> + +<div id="principal" class="contenu"> + +<h1 class="structure"><:articles_populaires:></h1> + +<BOUCLE_article_un(ARTICLES) {par popularite} {inverse} {0,2}> + [(#LOGO_ARTICLE_RUBRIQUE|right|#URL_ARTICLE)] + [<div class="surtitre">(#SURTITRE)</div>] + <h2 class="titre-extrait"><a href="#URL_ARTICLE">#TITRE</a></h2> + [<div class="surtitre">(#SOUSTITRE)</div>] + <div class="detail"> + [(#DATE|nom_jour)] [(#DATE|affdate)] + <B_auteurs_un><:par_auteur:> <BOUCLE_auteurs_un(AUTEURS) {id_article} {", "}>#NOM</BOUCLE_auteurs_un> + [<br><:popularite:> : <span class="important">(#POPULARITE)</span> %] + </div> + [<div class="texte"><div class="extrait">(#INTRODUCTION)</div></div>] + <br> +</BOUCLE_article_un> + + + <div class="encart"> + + <!-- <:sur_web:> --> + + <h1 class="structure"><:nouveautes_web:></h1> + + <B_syndic> + <div class="menu"> + <div class="divers"> + <div class="menu-titre"> + <:sur_web:> + </div> + <ul> + <BOUCLE_syndic(SYNDIC_ARTICLES) {par date} {inverse} {0,15}> + <li class="menu-item"> + [<i>(#DATE|affdate_court)</i>:] + <a href="#URL_ARTICLE">[(#TITRE*)]</a> + </li> + </BOUCLE_syndic> + </ul> + </div> + </div> + </B_syndic> + + </div> + + +<h1 class="structure"><:articles_populaires:> (<:suite:>)</h1> + +<!-- Articles les plus populaires (suite) --> + +<BOUCLE_articles_populaires(ARTICLES) {par popularite} {inverse} {2,8}> + <h2><a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></h2> + <div class="detail"> + [(#DATE|nom_jour)] [(#DATE|affdate)] + <B_auteurs_recents><:par_auteur:> <BOUCLE_auteurs_recents(AUTEURS) {id_article} {", "}>#NOM</BOUCLE_auteurs_recents><br> + <:popularite:> : <span class="important">#POPULARITE</span> % + </div> + <br> +</BOUCLE_articles_populaires> + + +</div> + +</body> +</html> + + diff --git a/dist/rubrique.html b/dist/rubrique.html new file mode 100644 index 0000000000..3826066c2e --- /dev/null +++ b/dist/rubrique.html @@ -0,0 +1,225 @@ +<BOUCLE_rubrique_principal(RUBRIQUES) {id_rubrique} +><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html lang="#LANG"> +<head> +<title>[(#TITRE|textebrut)]</title> +<meta http-equiv="Content-Type" content="text/html; charset=#CHARSET"> + +<!-- Ceci est la feuille de style par defaut pour les types internes a SPIP --> +<link rel="stylesheet" href="spip_style.css" type="text/css"> + +<!-- Les feuilles de style specifiques aux presents squelettes --> +<link rel="stylesheet" href="typographie.css" type="text/css"> + +<!-- media="..." permet de ne pas utiliser ce style sous Netscape 4 (sinon plantage) --> +<link rel="stylesheet" href="habillage.css" type="text/css" media="projection, screen, tv"> +<!-- media="print" permet d'utiliser cette feuille de style quand vous imprimez depuis votre navigateur --> +<link rel="stylesheet" href="impression.css" type="text/css" media="print"> + +<!-- Lien vers le backend pour navigateurs eclaires --> +<link rel="alternate" type="application/rss+xml" title="<:syndiquer_rubrique:>" href="backend.php3?id_rubrique=#ID_RUBRIQUE"> +</head> + +<body bgcolor="white" dir="#LANG_DIR"> + +<div id="navigation"> + +<h1 class="structure"><:navigation:></h1> + +<!-- Menu de navigation general --> + +<div class="menu"> +<ul class="general"> + <li class="menu-titre"> + [<a href="(#URL_SITE_SPIP)" title="<:accueil_site:>"><b>#NOM_SITE_SPIP</b></a>] + </li> + <li class="menu-item"> + <a href="plan.php3"><:plan_site:></a> + </li> + <li class="menu-item"> + <a href="resume.php3" title="<:articles_populaires:>"><:en_resume:></a> + </li> + <li class="menu-item"> + <a href="ecrire/"><:espace_prive:></a> + </li> +</ul> +</div> + + +<!-- Formulaire de recherche --> + +[(#FORMULAIRE_RECHERCHE)] + + +<!-- Menu de navigation rubriques --> + +<div class="menu"> +<ol class="rubriques" title="<:hierarchie_site:>"> +<BOUCLE_hierarchie(HIERARCHIE) {id_rubrique} {tout}> +<li> +<div class="menu-titre"><a href="#URL_RUBRIQUE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></div> +<B_rubriques_soeurs> + <ul class="menu-liste"> +<BOUCLE_rubriques_soeurs(RUBRIQUES) {meme_parent} {exclus} {par titre}> + <li class="menu-item"><a href="#URL_RUBRIQUE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></li> +</BOUCLE_rubriques_soeurs> + </ul> +</B_rubriques_soeurs> +</li> +</BOUCLE_hierarchie> +</ol> +</div> + + +<!-- Breves dans la rubrique --> + +<B_breves_rubrique> + +<div class="menu"> +<div class="breves" title="<:dernieres_breves:>"> + <div class="menu-titre"> + <:breves:> + </div> + <ul> +<BOUCLE_breves_rubrique(BREVES) {id_secteur} {par date} {inverse} {0,5}> + <li class="menu-item"> + <i>[(#DATE|affdate_court)]</i>: + <a href="#URL_BREVE">#TITRE</a> + </li> +</BOUCLE_breves_rubrique> + </ul> +</div> +</div> + +</B_breves_rubrique> + + +</div> + + +<!-- Une : contenu de la rubrique --> + +<div class="contenu" id="principal"> + +<div class="cartouche"> +[(#LOGO_RUBRIQUE|left)] +<h1 class="titre-texte">#TITRE</h1> +[<:dernier_ajout:> : (#DATE|nom_jour)] [(#DATE|affdate).] +</div> + + <div class="encart"> + + <!-- Menu de navigation mots-cles --> + + <B_mots> + <h2 class="structure"><:mots_clefs:></h2> + + <div class="menu"> + <ul class="divers" title="<:mots_clefs:>"> + <BOUCLE_mots(MOTS) {id_rubrique} {par titre}> + <li> + <div class="menu-titre"><a href="#URL_MOT" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></div> + <B_rubriques_mots> + <ul class="menu-liste"> + <BOUCLE_rubriques_mots(RUBRIQUES) {id_mot} {par hasard} {0,4}> + <li class="menu-item"><a href="#URL_RUBRIQUE" title="[(#DESCRIPTIF|textebrut|entites_html)]">#TITRE</a></li> + </BOUCLE_rubriques_mots> + </ul> + </B_rubriques_mots> + </li> + </BOUCLE_mots> + </ul> + </div> + </B_mots> + + <!-- Sous-rubriques --> + + <B_sous_rubriques> + <h2 class="structure"><:sous_rubriques:></h2> + + <div class="menu"> + <ul class="rubriques" title="<:sous_rubriques:>"> + <BOUCLE_sous_rubriques(RUBRIQUES) {id_parent} {par titre}> + <li> + <div class="menu-titre"><a href="#URL_RUBRIQUE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></div> + <B_sous_sous_rubriques> + <ul class="menu-liste"> + <BOUCLE_sous_sous_rubriques(RUBRIQUES) {id_parent} {par titre}> + <li class="menu-item"><a href="#URL_RUBRIQUE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></li> + </BOUCLE_sous_sous_rubriques> + </ul> + </B_sous_sous_rubriques> + </li> + </BOUCLE_sous_rubriques> + </ul> + </div> + </B_sous_rubriques> + + <!-- Sites syndiques --> + + <B_sites> + <div class="menu"> + <div class="divers"> + <div class="menu-titre"> + <:sur_web:> + </div> + <ul> + <BOUCLE_sites(SITES) {id_rubrique} {par nom_site}> + <li class="menu-item"> + <a href="#URL_SITE">#NOM_SITE</a> + <B_syndic> + <ul class="menu-liste"> + <BOUCLE_syndic(SYNDIC_ARTICLES) {id_syndic} {par date} {inverse} {0,3}> + <li class="menu-item"><small><a href="#URL_ARTICLE">#TITRE</a></small></li> + </BOUCLE_syndic> + </ul> + </B_syndic> + </li> + </BOUCLE_sites> + </ul> + </div> + </div> + </B_sites> + [ +<div class="menu"> + <div class="divers"> + <div class="menu-titre"><:proposer_site:> + <div class='reponse_formulaire'>(#FORMULAIRE_SITE)</div> + </div> + </div> +</div> +] + </div> + +[<div class="chapo">(#TEXTE)</div>] +[<div class="notes">(#NOTES)</div>] + +<BOUCLE_documents_joints(DOCUMENTS) {id_rubrique} {mode=document} {doublons} {"<br>"}> +[(#LOGO_DOCUMENT|#URL_DOCUMENT)][<br>(#TITRE)][ - (#DESCRIPTIF)] +</BOUCLE_documents_joints> +<br> + +<!-- Articles de la rubrique --> + +<h1 class="structure"><:articles_rubrique:></h1> + +<div class="liste-articles"> + +<BOUCLE_articles_recents(ARTICLES) {id_rubrique} {par titre}> + <h2><a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></h2> + <div class="detail"> + [(#DATE|nom_jour)] [(#DATE|affdate)] + <B_auteurs_recents><:par_auteur:> <BOUCLE_auteurs_recents(AUTEURS) {id_article} {", "}>#NOM</BOUCLE_auteurs_recents> + </div> + <br> +</BOUCLE_articles_recents> + + +</div> + + +</div> + +</body> +</html> +</BOUCLE_rubrique_principal> diff --git a/dist/site.html b/dist/site.html new file mode 100644 index 0000000000..aaa44b9c22 --- /dev/null +++ b/dist/site.html @@ -0,0 +1,90 @@ +<BOUCLE_site(SITES){id_syndic} +><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> + + +<html lang="#LANG"> +<head> +<title>[(#NOM_SITE|textebrut)]</title> +<meta http-equiv="Content-Type" content="text/html; charset=#CHARSET"> + +<!-- Ceci est la feuille de style par defaut pour les types internes a SPIP --> +<link rel="stylesheet" href="spip_style.css" type="text/css"> + +<!-- Les feuilles de style specifiques aux presents squelettes --> +<link rel="stylesheet" href="typographie.css" type="text/css"> + +<!-- media="..." permet de ne pas utiliser ce style sous Netscape 4 (sinon plantage) --> +<link rel="stylesheet" href="habillage.css" type="text/css" media="projection, screen, tv"> +<!-- media="print" permet d'utiliser cette feuille de style quand vous imprimez depuis votre navigateur --> +<link rel="stylesheet" href="impression.css" type="text/css" media="print"> +</head> + +<body bgcolor="white"> + +<div id="navigation"> + +<h1 class="structure"><:navigation:></h1> + +<!-- Menu de navigation general --> + +<div class="menu"> +<ul class="general"> + <li class="menu-titre"> + [<a href="(#URL_SITE_SPIP)" title="<:accueil_site:>"><b>#NOM_SITE_SPIP</b></a>] + </li> + <li class="menu-item"> + <a href="plan.php3"><:plan_site:></a> + </li> + <li class="menu-item"> + <a href="resume.php3" title="<:articles_populaires:>"><:en_resume:></a> + </li> + <li class="menu-item"> + <a href="ecrire/"><:espace_prive:></a> + </li> +</ul> +</div> + + +<!-- Formulaire de recherche --> + +[(#FORMULAIRE_RECHERCHE)] + + +</div> + +<!-- Une : affichage du site --> + +<div class="contenu" id="principal"> + +<div class="cartouche"> +[(#LOGO_SITE|left)] +<h1 class="titre-texte"><a href="#URL_SITE">#NOM_SITE</a></h1> + +[<div class="chapo">(#DESCRIPTIF)</div>] +[<div class="notes">(#NOTES)</div>] +</div> + + +<!-- Articles du site --> + +<h1 class="structure"><:articles:></h1> + +<div class="liste-articles"> + +<BOUCLE_articles(SYNDIC_ARTICLES) {id_syndic} {par date}{inverse}{0,10}> + <h2><a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></h2> + <div class="detail"> + [(#DATE|nom_jour)] [(#DATE|affdate)] + </div> + <br> +</BOUCLE_articles> + +</div> + +</div> + +</body> +</html> + + +</BOUCLE_site> diff --git a/dist/sommaire.html b/dist/sommaire.html new file mode 100644 index 0000000000..0a249bf0b5 --- /dev/null +++ b/dist/sommaire.html @@ -0,0 +1,169 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html lang="#LANG"> +<head> +<title>[#NOM_SITE_SPIP] </title> +<meta http-equiv="Content-Type" content="text/html; charset=#CHARSET"> + +<!-- Ceci est la feuille de style par defaut pour les types internes a SPIP --> +<link rel="stylesheet" href="spip_style.css" type="text/css"> + +<!-- Les feuilles de style specifiques aux presents squelettes --> +<link rel="stylesheet" href="typographie.css" type="text/css"> + +<!-- media="..." permet de ne pas utiliser ce style sous Netscape 4 (sinon plantage) --> +<link rel="stylesheet" href="habillage.css" type="text/css" media="print, projection, screen, tv"> + +<!-- Lien vers le backend pour navigateurs eclaires --> +<link rel="alternate" type="application/rss+xml" title="<:syndiquer_site:>" href="backend.php3"> +</head> + +<body bgcolor="white" dir="#LANG_DIR"> + +<div id="navigation"> + +<h1 class="structure"><:navigation:></h1> + +<!-- Menu de navigation general --> + +<div class="menu"> +<ul class="general"> + <li class="menu-titre"> + [<a href="(#URL_SITE_SPIP)" title="<:accueil_site:>"><b>#NOM_SITE_SPIP</b></a>] + </li> + <li class="menu-item"> + <a href="plan.php3"><:plan_site:></a> + </li> + <li class="menu-item"> + <a href="resume.php3" title="<:articles_populaires:>"><:en_resume:></a> + </li> + <li class="menu-item"> + <a href="ecrire/"><:espace_prive:></a> + </li> +</ul> +</div> + +<!-- Formulaire de recherche --> + +[(#FORMULAIRE_RECHERCHE)] + +<!-- Menu de navigation rubriques --> + +<B_rubriques> +<div class="menu"> +<ul class="rubriques"> +<BOUCLE_rubriques(RUBRIQUES) {racine} {par titre}> +<li> +<div class="menu-titre"><a href="#URL_RUBRIQUE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></div> +<B_sous_rubriques> + <ul class="menu-liste"> +<BOUCLE_sous_rubriques(RUBRIQUES) {id_parent} {par titre}> + <li class="menu-item"><a href="#URL_RUBRIQUE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></li> +</BOUCLE_sous_rubriques> + </ul> +</B_sous_rubriques> +</li> +</BOUCLE_rubriques> +</ul> +</div> +</B_rubriques> + +<!-- Logo SPIP --> + +<a href="http://www.spip.net"><img src="IMG/logo_spip.jpg" width="105" height="92" border="0" alt="<:site_realise_avec_spip:>"></a> + +</div> + + +<div id="principal" class="contenu"> + + <!-- Une : derniers articles publies --> + + <h1 class="structure"><:derniers_articles:></h1> + + <BOUCLE_article_un(ARTICLES) {par date} {inverse} {0,2}> + [(#LOGO_ARTICLE_RUBRIQUE|right)] + [<div class="surtitre">(#SURTITRE)</div>] + <h2 class="titre-extrait"><a href="#URL_ARTICLE">#TITRE</a></h2> + [<div class="surtitre">(#SOUSTITRE)</div>] + <div class="detail"> + [(#DATE|nom_jour)] [(#DATE|affdate)] + <B_auteurs_un><:par_auteur:> <BOUCLE_auteurs_un(AUTEURS) {id_article} {", "}>#NOM</BOUCLE_auteurs_un> + </div> + [<div class="texte"><div class="extrait">(#INTRODUCTION)</div></div>] + <br> + </BOUCLE_article_un> + + + <div class="encart"> + + <!-- Breves --> + + <h1 class="structure"><:dernieres_breves:></h1> + + <B_breves> + <div class="menu"> + <div class="breves"> + <div class="menu-titre"> + <:breves:> + </div> + <ul> + <BOUCLE_breves(BREVES) {par date} {inverse} {0,8}> + <li class="menu-item"> + <i>[(#DATE|affdate_court)]</i>: + <a href="#URL_BREVE">#TITRE</a> + </li> + </BOUCLE_breves> + </ul> + </div> + </div> + </B_breves> + + <!-- Sur le Web --> + + <h1 class="structure"><:nouveautes_web:></h1> + + <B_syndic> + <div class="menu"> + <div class="divers"> + <div class="menu-titre"> + <:sur_web:> + </div> + <ul> + <BOUCLE_syndic(SYNDIC_ARTICLES) {par date} {inverse} {0,8}> + <li class="menu-item"> + <a href="#URL_ARTICLE">[(#TITRE*)]</a> + </li> + </BOUCLE_syndic> + </ul> + </div> + </div> + </B_syndic> + + [<!-- Inscription au site --> + + <div class="formulaire"><:participer_site:> + <br /><br />(#FORMULAIRE_INSCRIPTION) + </div>] + + </div> + + +<h1 class="structure"><:articles_recents:></h1> + +<!-- Articles recents --> + +<BOUCLE_articles_recents(ARTICLES) {par date} {inverse} {2,8}> + <h2><a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></h2> + <div class="detail"> + [(#DATE|nom_jour)] [(#DATE|affdate)] + <B_auteurs_recents><:par_auteur:> <BOUCLE_auteurs_recents(AUTEURS) {id_article} {", "}>#NOM</BOUCLE_auteurs_recents> + </div> + <br> +</BOUCLE_articles_recents> + + +</div> + +#SPIP_CRON +</body> +</html> diff --git a/dist/sommaire_texte.html b/dist/sommaire_texte.html new file mode 100644 index 0000000000..82b26d985a --- /dev/null +++ b/dist/sommaire_texte.html @@ -0,0 +1,97 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html lang="#LANG"> +<!-- +// ACCESSIBILITE +// la page /oo offre une lecture en mode "texte seul" +// des 3 articles les plus recents. +--> +<head> + <title> + #NOM_SITE_SPIP + </title> + <meta http-equiv="Content-Type" content="text/html; charset=#CHARSET"> + <meta http-equiv="AUTHOR" content="#NOM_SITE_SPIP"> + <meta http-equiv="DESCRIPTION" content="Edition en mode texte de #NOM_SITE_SPIP"> +</head> +<body dir="#LANG_DIR"> + <hr /> + <:edition_mode_texte:> <a href="#URL_SITE_SPIP">{#NOM_SITE_SPIP}</a> + <hr /> + <b><u>Sommaire de la page :</u></b> + + <B_sarticles> + <h2>Articles</h2> + <ul> + <BOUCLE_sarticles(ARTICLES){0,3}{par date}{inverse}> + <li><a href="#ar#ID_ARTICLE">#TITRE</a> + </BOUCLE_sarticles> + </ul> + </B_sarticles> + + <B_sbreves> + <h2>Brèves</h2> + <ul> + <BOUCLE_sbreves(BREVES){0,5}{par date}{inverse}> + <li><a href="#br#ID_BREVE">#TITRE</a> + </BOUCLE_sbreves> + </ul> + </B_sbreves> + + + <B_articles> + <h1>Articles récents</h1> + + <BOUCLE_articles(ARTICLES){0,3}{par date}{inverse}> + <a name="ar#ID_ARTICLE"></a> + <BOUCLE_RUB_AR(RUBRIQUES){ID_RUBRIQUE}> + Rubrique : <a href="#URL_RUBRIQUE">{#TITRE}</a> + </BOUCLE_RUB_AR> + + [<h2>(#SURTITRE|majuscules)</h2>] + <h2>#TITRE</h2> + <h3>#SOUSTITRE</h3> + [Le (#DATE|nom_jour) ] [(#DATE|affdate)] + [par (#LESAUTEURS)] + <p> + [(#CHAPO)] + <p> + [(#TEXTE)] + + + <p><a href="#URL_ARTICLE">{Consulter}</a> l'article avec son forum. + + + <hr /> + </BOUCLE_articles> + + <B_breves> + <h1>Dernières brèves</h1> + + <BOUCLE_breves(BREVES){0,5}{par date}{inverse}> + <a name="br#ID_BREVE"> + <BOUCLE_RUB_BR(RUBRIQUES){ID_RUBRIQUE}> + Rubrique : <a href="#URL_RUBRIQUE">{#TITRE}</a> + </BOUCLE_RUB_BR> + <h2>#TITRE</h2> + [Le (#DATE|nom_jour) ] [(#DATE|affdate)] + <p> + [(#TEXTE)] + [<p>Voir en ligne : <a href="(#URL_SITE)">#NOM_SITE</a>] + <p><a href="#URL_BREVE">{Consulter}</a> la brève avec son forum. + <hr /> + </BOUCLE_breves> + [<h1>NOTES :</h1> + <p class="spip_note">(#NOTES)] + + <hr /> + <a name="about"></a> + + [<p>Rechercher sur ce site : (#FORMULAIRE_RECHERCHE|recherche.php3)</p>] + <table><tr> + <td><A href="http://www.uzine.net/spip">{Site réalisé avec le logiciel SPIP}</td> + [<td><A href="#URL_SITE_SPIP">{(#NOM_SITE_SPIP|majuscules)}</a></td>] + <td><a href="#URL_SITE_SPIP/plan.php3">{<:plan_site:>}</a></td> + </tr></table> + +</body> +</html> diff --git a/ecrire/inc_version.php3 b/ecrire/inc_version.php3 index 380aeebce1..0e42556085 100644 --- a/ecrire/inc_version.php3 +++ b/ecrire/inc_version.php3 @@ -1113,7 +1113,7 @@ function debut_entete($title, $entete='') { // function find_in_path ($filename, $path='AUTO') { if ($path == 'AUTO') { - $path = '.:squelettes:squelettes/dist:squelettes/dist/formulaires'; + $path = '.:squelettes:dist:formulaires'; if ($GLOBALS['dossier_squelettes']) $path = $GLOBALS['dossier_squelettes'].':'.$path; } diff --git a/formulaires/formulaire_admin.html b/formulaires/formulaire_admin.html new file mode 100644 index 0000000000..52cea437aa --- /dev/null +++ b/formulaires/formulaire_admin.html @@ -0,0 +1,16 @@ +[<(#ENV{floatdiv}) class="spip-admin-float">] +<div class="spip-admin-bloc" dir='#LANG_DIR'> +<div class="spip-admin"> + <ul>[ + <li><a href='ecrire/articles.php3?id_article=(#ENV{id_article})' class='spip-admin-boutons'><:admin_modifier_article:> ([(#ENV{id_article})])</a></li>][ + <li><a href='ecrire/breves_voir.php3?id_breve=(#ENV{id_breve})' class='spip-admin-boutons'><:admin_modifier_breve:> ([(#ENV{id_breve})])</a></li>][ + <li><a href='ecrire/naviguer.php3?id_rubrique=(#ENV{id_rubrique})' class='spip-admin-boutons'><:admin_modifier_rubrique:> ([(#ENV{id_rubrique})])</a></li>][ + <li><a href='ecrire/mots_edit.php3?id_mot=(#ENV{id_mot})' class='spip-admin-boutons'><:admin_modifier_mot:> ([(#ENV{id_mot})])</a></li>][ + <li><a href='ecrire/auteurs_edit.php3?id_auteur=(#ENV{id_auteur})' class='spip-admin-boutons'><:admin_modifier_auteur:> ([(#ENV{id_auteur})])</a></li>] + <li><a href='[(#ENV{action})]var_mode=recalcul' class='spip-admin-boutons'><:admin_recalculer:>[(#ENV{use_cache})]</a></li>[ + <li><a href='ecrire/(#ENV{statistiques})[id_article=(#ENV{id_article})]' class='spip-admin-boutons'>[<:info_visites:> (#ENV{visites})][; <:info_popularite_5:> (#ENV{popularite})]</a></li>][ + <li><a href='[(#ENV{action})]var_mode=(#ENV{debug})' class='spip-admin-boutons'><:admin_debug:></a></li>] + </ul> +</div> +</div> +[</(#ENV{floatdiv})>] diff --git a/formulaires/formulaire_ecrire_auteur.html b/formulaires/formulaire_ecrire_auteur.html new file mode 100644 index 0000000000..ab2d05250f --- /dev/null +++ b/formulaires/formulaire_ecrire_auteur.html @@ -0,0 +1,20 @@ +[<br />(#ENV*{sujetko})<:form_prop_indiquer_sujet:><br /> ][ +<br />(#ENV*{mailko})<:form_prop_indiquer_email:><br /><br /> +]<form action="[(#ENV{action})]" method='post'> +<p><label><:form_pet_votre_email:> + <input type="text" class="forml" name="email_message_auteur" + value="[(#ENV{mail})]" size="30" /> +</label></p> +<p><label><:form_prop_sujet:><br /> + <input type="text" class="forml" name="sujet_message_auteur" + value="[(#ENV{sujet})]" size="30" /> +</label></p> +<p> +<textarea name='texte_message_auteur' rows='10' class='forml' cols='40'>[(#ENV{texte})]</textarea> +</p> +[<input type="hidden" name="id_auteur" value="(#ENV{id_auteur})" />] +<div align="right"> + <input type="submit" class="spip_bouton" name="valide" + value="[(#ENV{valide})]" /> +</div> +</form> diff --git a/formulaires/formulaire_forum.html b/formulaires/formulaire_forum.html new file mode 100644 index 0000000000..ffebdf79f1 --- /dev/null +++ b/formulaires/formulaire_forum.html @@ -0,0 +1,54 @@ +<form action="[(#ENV{url})]" method="post" name="formulaire">[ +<input type="hidden" name="alea" value="(#ENV{alea})" />][ +<input type="hidden" name="hash" value="(#ENV{hash})" />][ +<input type="hidden" name="retour_forum" value="(#ENV{retour_forum})" /> +][<p>(#ENV*{modere})</p> +][(#ENV*{afficher_texte_hidden}) +][(#ENV*{afficher_texte_input}) + [(#ENV*{previsu}) + <fieldset class="spip_encadrer"> + <legend><b><:forum_titre:></b></legend> + <label><input type="text" name="titre" + [value="(#ENV{titre})" ]class="forml" size="40" /> + </label> + </fieldset> + <br /> + <fieldset class="spip_encadrer"> + <legend><b><:forum_texte:></b></legend> + <p><:info_creation_paragraphe:></p> + [(#ENV{texte}|barre_forum)] + </fieldset> + <br /> + [<p>(#ENV*{table})</p>] + <fieldset class="spip_encadrer"> + <legend><:forum_lien_hyper:></legend> + <p><:forum_page_url:></p> + <p><label><:forum_titre:> + <input type="text" name="nom_site_forum" class="forml" size="40" + value="[(#ENV{nom_site_forum})]" /> + </label></p> + <p><label><:forum_url:> + <input type="text" name="url_site" class="forml" size="40" + value="[(#ENV{url_site})]" /> + </label></p> + </fieldset> + <br /> + <fieldset class="spip_encadrer"> + <legend><:forum_qui_etes_vous:></legend> + <p><label><:forum_votre_nom:> + <input type="text" name="auteur" value="[(#ENV{auteur})]" + class="forml" size="40" [(#ENV{disabled})] /> + </label></p> + <p><label><:forum_votre_email:> + <input type="text" name="email_auteur" + value="[(#ENV{email_auteur})]" + class="forml" size="40" [(#ENV{disabled})] /> + </label></p> + </fieldset> + <br /> + <div align="#LANG_RIGHT"> + <input type="submit" value="<:forum_voir_avant:>" + class="spip_bouton" /></div> + ] +]</form> + diff --git a/formulaires/formulaire_inscription.html b/formulaires/formulaire_inscription.html new file mode 100644 index 0000000000..0b276bff54 --- /dev/null +++ b/formulaires/formulaire_inscription.html @@ -0,0 +1,42 @@ +[ +(#ENV*{message}) +][ +(#ENV*{message}|?{'',' '})[ + (#ENV{mode}|=={forum}|?{' ',''}) + <:pass_forum_bla:><br /><br /> +][ + (#ENV{mode}|=={redac}|?{' ',''}) + <:pass_espace_prive_bla:><br /><br /> +]<:form_forum_indiquer_nom_email:> + <form id="inscription" method='post' action='#SELF' + style='border: 0px; margin: 0px;'> + <fieldset style="border: none; font-weight: bold"><legend></legend> + <label> + <:form_pet_votre_nom:> + <input type="text" class="forml" name="nom_inscription" value="" size="30" /> + </label> + <label> + <:form_pet_votre_email:> + <input type="text" class="forml" name="mail_inscription" value="" size="30" /> + </label> + </fieldset> + <div align="right"><input type="submit" class="spip_bouton" value="<:bouton_valider:>" /> + </div> + </form>[ +<script type="text/javascript"><!-- +document.inscription.(#ENV{focus}).focus() +--></script> + ] +][<br /> +<div align="right"> +(#ENV{target}|?{' ',''}) +<script type="text/javascript"><!-- +document.write("<a href='") +document.write((window.opener) ? "javascript:close()" : "./") +document.write("'><:pass_quitter_fenetre:><" + "/a>"); +//--></script> +<noscript> + [<a href='./'><:pass_retour_public:></a>] +</noscript> +</div> +] diff --git a/formulaires/formulaire_login.html b/formulaires/formulaire_login.html new file mode 100644 index 0000000000..cfd99499ee --- /dev/null +++ b/formulaires/formulaire_login.html @@ -0,0 +1,79 @@ +[(#ENV{echec_cookie}) + <h3 class="spip"><:erreur_probleme_cookie:></h3> + <b><:login_cookie_oblige:></b> + <:login_cookie_accepte:><p /> +][ +(#ENV*{message}) + <br /> + <:forum_vous_enregistrer:> + [<a + href='(#ENV{inscription})?mode=forum&focus=nom_inscription&target=spip_pass' + target="spip_pass" + onclick="javascript:window.open(this.href, 'spip_inscription', 'scrollbars=yes, resizable=yes, width=480, height=450'); return false;"><:forum_vous_inscrire:></a>] [<a + href="spip_pass.php3" + target="spip_pass" + onclick="javascript:window.open(this.href, 'spip_pass', 'scrollbars=yes, resizable=yes, width=480, height=280'); return false;"><:login_motpasseoublie:></a>]<br /><br /> +]<div style="font-family: Verdana,arial,helvetica,sans-serif; font-size: 12px;"> + <script type="text/javascript" src="ecrire/md5.js"></script> + <form id="login[_(#ENV{login})]" + action="[(#ENV{action2})]" + method="post"[(#ENV{source}|=={spip}|?{' ',''}) + onSubmit='if (this.session_password.value) { + this.session_password_md5.value = calcMD5("[(#ENV{alea_actuel})]" + this.session_password.value); + this.next_session_password_md5.value = calcMD5("[(#ENV{alea_futur})]" + this.session_password.value); + this.session_password.value = ""; + }']> + <div class="spip_encadrer" style="[(#URL_SITE_SPIP|style_align)]">[ + <div class="reponse_formulaire">(#ENV*{erreur})<br /><br /></div> +][ + <label><b><:login_login2:></b><br /></label>(#ENV{login}|?{'',' '}) + <input type="text" id='var_login' name="var_login" class="forml" value="" size="40" /> +][ +<div> + <input type="hidden" name="session_login_hidden" value="(#ENV{login})" /> +<script type="text/javascript"><!-- +document.write("<:login_login:> <b>[(#ENV{login})]<" + "/b><br />[<a href='spip_cookie.php3?cookie_admin=non&url=[(#ENV{url})][&retour=(#SELF|urlencode)]'><font size='2'><:login_autre_identifiant:><" + "/font><" + "/a>]") +//--></script> +<noscript> + <font face="Georgia, Garamond, Times, serif" size="3"> + <:login_non_securise:> + <a href="[(#ENV{action})]"><:login_recharger:></a> + </font> + <label><b><:login_login2:></b><br /></label> + <input type='text' name='session_login' class='forml' [value="(#ENV{login})" ]size='40' /> +</noscript> +[<img src="(#ENV{id_auteur}|silogoauteur)" + width="75" + valign="top" + align="right" + alt="[(#ENV{login})]"><br /><br /><br />] +</div> +<p> + <label><b><:login_pass2:></b></label> <input type="password" name="session_password"[ id="var_login_(#ENV{login})]" class="forml" value="" size="40" /> + <br /> <input type="checkbox" + name="session_remember" + id="session[_(#ENV{login})]" + value="oui"[(#ENV*{prefs}|filtre_rester_connecte)checked="checked"]/> + <label for="session[_(#ENV{login})]"><:login_rester_identifie:></label> +</p> + <input type="hidden" name="session_password_md5" value="" /> + <input type="hidden" name="next_session_password_md5" value="" /> + <input type="hidden" name="essai_login" value="oui" /> +] <input type="hidden" name="url" value="[(#ENV{url})]" /> + <div align="right"><input type="submit" class="spip_bouton" value="<:bouton_valider:>" /></div> + </div> + </form> +<script type="text/javascript"><!-- +document.getElementById('var_login[_(#ENV{login})]').focus(); +--></script>[ + <form action="(#ENV{auth_http})" method="get"> + <fieldset> + <p> + <:login_preferez_refuser:> + <input type="hidden" name="essai_auth_http" value="oui"/> + [<input type="hidden" name="url" value="(#ENV{url})"/>] + <div align="right"><input type="submit" class="spip_bouton" value="<:login_sans_cookiie:>"/></div> + </fieldset> + </form> +] +</div> diff --git a/formulaires/formulaire_menu_lang.html b/formulaires/formulaire_menu_lang.html new file mode 100644 index 0000000000..1434ab8e29 --- /dev/null +++ b/formulaires/formulaire_menu_lang.html @@ -0,0 +1,14 @@ +<form action='[(#ENV{url})]' + method='post' + style='margin:0px; padding:0px;'>[ + <input type='hidden' name='url' value='(#ENV{cible})' /> +] <select name='[(#ENV{nom})]' + class='forml' + style='vertical-align: top; max-height: 24px; margin-bottom: 5px; width: 120px;' + onchange="document.location.href='[(#ENV{retour})]&[(#ENV{nom})]='+this.options[this.selectedIndex].value"> + [(#ENV*{langues})] + </select> + <noscript> + <input type='submit' value='>>' class='spip_bouton' /> + </noscript> +</form> diff --git a/formulaires/formulaire_oubli.html b/formulaires/formulaire_oubli.html new file mode 100644 index 0000000000..e233ab62e6 --- /dev/null +++ b/formulaires/formulaire_oubli.html @@ -0,0 +1,37 @@ +[ +(#ENV*{message}) +][ +(#ENV*{message}|?{'',' '}) +<form id="oubli_form" action='spip_pass.php3' method='post'> + <fieldset style="border: none;"><legend></legend>[ + <:pass_nouveau_pass:> + <input type='hidden' name="p" value="(#ENV{p})"> + <label> + <:pass_choix_pass:> + <input type="password" name="oubli"> + </label>][ + (#ENV{p}|?{'',' '}) + <label> + <:pass_indiquez_cidessous:> + <input type="texte" name="oubli"> + </label>] + <input type=submit class="fondl" value="<:pass_ok:>"> + </fieldset> +</form> +] +<br /> +<div align="right"> +<script type="text/javascript"><!-- +[ +(#ENV*{message}|?{'',' '}) +document.oubli_form.oubli.focus() +] +document.write("<a href='") +document.write((window.opener) ? "javascript:close()" : "./") +document.write("'><:pass_quitter_fenetre:><" + "/a>"); +//--></script> +<noscript> + [<a href='./'><:pass_retour_public:></a>] +</noscript> +</div> +<br /> diff --git a/formulaires/formulaire_recherche.html b/formulaires/formulaire_recherche.html new file mode 100644 index 0000000000..355a8cecdb --- /dev/null +++ b/formulaires/formulaire_recherche.html @@ -0,0 +1,9 @@ +<form action="[(#ENV{lien})]" method="get" class="formrecherche"> + <div> + <input type="text" + id="formulaire_recherche" + class="formrecherche" + name="recherche" + value="[(#ENV*{recherche_securisee})]" /> + </div> +</form> diff --git a/formulaires/formulaire_signature.html b/formulaires/formulaire_signature.html new file mode 100644 index 0000000000..bc1da41ee5 --- /dev/null +++ b/formulaires/formulaire_signature.html @@ -0,0 +1,44 @@ +<form method='post' + action='#SELF#sp[(#ENV{id_article})]' > + <input type="hidden" name="url_page" value="#URL_SITE_SPIP/#SELF"> + <div class='spip_encadrer' style='color: black; font-size: 80%; font-weight: normal;'> + [(#ENV*{texte}|propre)] + <fieldset style='font-size: 110%; font-weight: bold;'> + <legend></legend> + <label> + <:form_pet_votre_nom:> + <input type="text" class="forml" name="nom_email" value="" size="20" /> + </label> + <label> + <:form_pet_votre_email:><br /> + <input type="text" class="forml" name="adresse_email" value="" size="20" /> + </label> + </fieldset> + <br /> + <p>[(#ENV{site_obli}|=={oui}|?{'',' '})<:form_pet_votre_site:><br />] + <fieldset style='font-size: 110%; font-weight: bold;'> + <legend></legend> + <label> + <:form_pet_nom_site2:><br /> + <input type="text" class="forml" name="signature_nom_site" value="" size="20" /> + </label> + <label> + <:form_pet_adresse_site:><br /> + <input type="text" class="forml" name="signature_url_site" value="http://" size="20" /> + </label> + </fieldset>[ + <br /> + <fieldset style='font-weight: bold'> + <legend></legend> + (#ENV{message}|=={oui}|?{' ',''}) + <label> + <:form_pet_message_commentaire:><br /> + <textarea name="message" rows="3" class="forml" cols="20"></textarea> + </label> + </fieldset> + ] + <br /> + <div align="right"><input type="submit" class="spip_bouton" value="<:bouton_valider:>" /></div> + </div> +</form> + diff --git a/formulaires/formulaire_site.html b/formulaires/formulaire_site.html new file mode 100644 index 0000000000..a43577a0de --- /dev/null +++ b/formulaires/formulaire_site.html @@ -0,0 +1,18 @@ +<form action="#SELF" method="post"> + <br /> + <fieldset class='spip_encadrer' style='color: black; font-size: 90%'> + <legend></legend> + <label> + <:form_prop_nom_site:> + <input type="text" class="forml" name="nom_site" value="" size="30"> + </label> + <label> + <:form_prop_url_site:> + <input type="text" class="forml" name="url_site" value="" size="30"> + </label> + <label><:form_prop_description:> + <textarea name='description_site' rows='5' class='forml' cols='40'></textarea> + </label> + <div align="right"><input type="submit" class="spip_bouton" value="<:bouton_valider:>"></div> + </fieldset> +</form> diff --git a/formulaires/inc-formulaire_admin.php3 b/formulaires/inc-formulaire_admin.php3 new file mode 100644 index 0000000000..b43782c088 --- /dev/null +++ b/formulaires/inc-formulaire_admin.php3 @@ -0,0 +1,109 @@ +<?php + +if (!defined("_ECRIRE_INC_VERSION")) return; #securite + +global $balise_FORMULAIRE_ADMIN_collecte ; +$balise_FORMULAIRE_ADMIN_collecte = array('id_article', 'id_breve', 'id_rubrique', 'id_mot', 'id_auteur'); + +# on ne peut rien dire au moment de l'execution du squelette + +function balise_FORMULAIRE_ADMIN_stat($args, $filtres) { + return $args; +} + +# les boutons admin sont mis d'autorite si absents +# donc une variable statique controle si FORMULAIRE_ADMIN a ete vu. +# Toutefois, si c'est le debuger qui appelle, +# il peut avoir recopie le code dans ses donnees et il faut le lui refounir. +# Pas question de recompiler: ca fait boucler ! +# Le debuger transmet donc ses donnees, et cette balise y retrouve son petit. + +function balise_FORMULAIRE_ADMIN_dyn($id_article, $id_breve, $id_rubrique, $id_mot, $id_auteur, $float='', $debug='') { + global $var_preview, $use_cache, $forcer_debug; + static $dejafait = false; + + if ($GLOBALS['flag_preserver'] || !$GLOBALS['spip_admin']) + return ''; + + if (!is_array($debug)) { + if ($dejafait) + return ''; + } else { + if ($dejafait) { + $res = ''; + foreach($debug['sourcefile'] as $k => $v) { + if (strpos($v,'formulaire_admin.') !== false) + return $debug['resultat'][$k . 'tout']; + } + return ''; + } + } + $dejafait = true; + + // repartir de zero pour les boutons car clean_link a pu etre utilisee + $link = new Link(); + $link->delVar('var_mode'); + $link->delVar('var_mode_objet'); + $link->delVar('var_mode_affiche'); + $action = $link->getUrl(); + $action = ($action . ((strpos($action, '?') === false) ? '?' : '&')); + + // Ne pas afficher le bouton 'Modifier ce...' si l'objet n'existe pas + foreach (array('article', 'breve', 'rubrique', 'mot', 'auteur') as $type) { + $id_type = 'id_'.$type; + if (!($$id_type = intval($$id_type) + AND $s = spip_query( + "SELECT $id_type FROM spip_${type}s WHERE $id_type=".$$id_type) + AND spip_num_rows($s))) + $$id_type=0; + } + + // Bouton statistiques + if (lire_meta("activer_statistiques") != "non" + AND $id_article + AND !$var_preview + AND ($GLOBALS['auteur_session']['statut'] == '0minirezo')) { + if ($s = spip_query("SELECT id_article + FROM spip_articles WHERE statut='publie' + AND id_article = $id_article") + AND spip_fetch_array($s)) { + include_local ("inc-stats.php3"); + $r = afficher_raccourci_stats($id_article); + $visites = $r['visites']; + $popularite = $r['popularite']; + $statistiques = 'statistiques_visites.php3?'; # lien si connecte + } + } + + // Bouton de debug + $debug = ( + ($forcer_debug + OR $GLOBALS['bouton_admin_debug'] + OR ($GLOBALS['var_mode'] == 'debug' + AND $GLOBALS['_COOKIE']['spip_debug'] + )) AND ($GLOBALS['code_activation_debug'] == 'oui' + OR $GLOBALS['auteur_session']['statut'] == '0minirezo') + AND !$var_preview + ) ? 'debug' : ''; + + // hack - ne pas avoir la rubrique si un autre bouton est deja present + if ($id_article OR $id_breve) unset ($id_rubrique); + + return array('formulaire_admin', 0, + array( + 'id_article' => $id_article, + 'id_rubrique' => $id_rubrique, + 'id_auteur' => $id_auteur, + 'id_breve' => $id_breve, + 'id_mot' => $id_mot, + 'action' => $action, + 'debug' => $debug, + 'popularite' => ceil($popularite), + 'statistiques' => $statistiques, + 'visites' => intval($visites), + 'use_cache' => ($use_cache ? ' *' : ''), + 'floatdiv' => $float + ) + ); +} +?> diff --git a/formulaires/inc-formulaire_ecrire_auteur.php3 b/formulaires/inc-formulaire_ecrire_auteur.php3 new file mode 100644 index 0000000000..e145f24129 --- /dev/null +++ b/formulaires/inc-formulaire_ecrire_auteur.php3 @@ -0,0 +1,59 @@ +<?php + +if (!defined("_ECRIRE_INC_VERSION")) return; #securite + +global $balise_FORMULAIRE_ECRIRE_AUTEUR_collecte ; +$balise_FORMULAIRE_ECRIRE_AUTEUR_collecte = array('id_auteur', + 'email', + 'sujet_message_auteur', + 'texte_message_auteur', + 'email_message_auteur' +); + +function balise_FORMULAIRE_ECRIRE_AUTEUR_stat($args, $filtres) { + list($id_auteur, $mail, $sujet, $texte, $adres) = $args; + return (!email_valide($mail) ? '' : + array($id_auteur, $mail,$sujet, $texte, $adres)); +} + +function balise_FORMULAIRE_ECRIRE_AUTEUR_dyn($id_auteur, $mail, $sujet, $texte, $adres) { + include_ecrire('inc_texte.php3'); + $puce = $GLOBALS['puce'.$GLOBALS['spip_lang_rtl']]; + + $mailko = $texte && !email_valide($adres); + $validable = $texte && $sujet && (!$mailko); + + if ($validable && ($GLOBALS['valide'] == _T('form_prop_confirmer_envoi'))) { + $texte .= "\n\n-- "._T('envoi_via_le_site')." ".lire_meta('nom_site')." (".lire_meta('adresse_site')."/) --\n"; + include_ecrire("inc_mail.php3"); + envoyer_mail($mail, $sujet, $texte, $adres, + "X-Originating-IP: ".$GLOBALS['REMOTE_ADDR']); + return _T('form_prop_message_envoye'); + } + + + // repartir de zero pour les boutons car clean_link a pu etre utilisee + + $link = new Link; + + $link->delVar('sujet_message_auteur'); + $link->delVar('texte_message_auteur'); + $link->delVar('email_message_auteur'); + $link->delVar('id_auteur'); + return + array('formulaire_ecrire_auteur', 0, + array( + 'action' => $link->getUrl(), + 'id_auteur' => $id_auteur, + 'mailko' => $mailko ? $puce : '', + 'mail' => $adres, + 'sujetko' => ($texte && !$sujet) ? $puce : '', + 'sujet' => $sujet, + 'texte' => $texte, + 'valide' => ($validable ? + _T('form_prop_confirmer_envoi') : + _T('form_prop_envoyer')) + ) + ); +} +?> diff --git a/formulaires/inc-formulaire_forum.php3 b/formulaires/inc-formulaire_forum.php3 new file mode 100644 index 0000000000..40abf0ab07 --- /dev/null +++ b/formulaires/inc-formulaire_forum.php3 @@ -0,0 +1,364 @@ +<?php + +if (!defined("_ECRIRE_INC_VERSION")) return; #securite + +include_ecrire('inc_meta.php3'); +include_ecrire('inc_admin.php3'); +include_ecrire('inc_acces.php3'); +include_ecrire('inc_texte.php3'); +include_ecrire('inc_filtres.php3'); +include_ecrire('inc_lang.php3'); +include_ecrire('inc_mail.php3'); +include_ecrire('inc_forum.php3'); +include_ecrire("inc_abstract_sql.php3"); +include_local(_FILE_CONNECT); + +// Gestionnaire d'URLs +if (@file_exists("inc-urls.php3")) + include_local("inc-urls.php3"); +else + include_local("inc-urls-".$GLOBALS['type_urls'].".php3"); + +/*******************************/ +/* GESTION DU FORMULAIRE FORUM */ +/*******************************/ +global $balise_FORMULAIRE_FORUM_collecte; +$balise_FORMULAIRE_FORUM_collecte = array('id_rubrique', 'id_forum', 'id_article', 'id_breve', 'id_syndic'); + +function balise_FORMULAIRE_FORUM_stat($args, $filtres) { + list ($idr, $idf, $ida, $idb, $ids) = $args; + + // recuperer les donnees du forum auquel on repond, false = forum interdit + if (!$r = sql_recherche_donnees_forum ($idr, $idf, $ida, $idb, $ids)) + return ''; + + list($titre, $table, $forums_publics) = $r; + return + array($titre, $table, $forums_publics, $idr, $idf, $ida, $idb, $ids); +} + +function balise_FORMULAIRE_FORUM_dyn($titre, $table, $forums_publics, $id_rubrique, $id_forum, $id_article, $id_breve, $id_syndic) { + + global $REMOTE_ADDR, $id_message, $afficher_texte, $spip_forum_user; + + // url de reference + if (!$url = rawurldecode($GLOBALS['url'])) + $url = $GLOBALS['REQUEST_URI']; + else { + // identifiants des parents + $args = ''; + if ($id_rubrique) $args .= "id_rubrique=$id_rubrique"; + if ($id_forum) $args .= "id_forum=$id_forum"; + if ($id_article) $args .= "id_article=$id_article"; + if ($id_breve) $args .= "id_breve=$id_breve"; + if ($id_syndic) $args .= "id_syndic=$id_syndic"; + if ($args && strpos($url,$args)===false) $url .= (strpos($url,'?') ? '&' : '?') . $args; + } + + $url = ereg_replace("[?&]var_erreur=[^&]*", '', $url); + $url = ereg_replace("[?&]var_login=[^&]*", '', $url); + $url = ereg_replace("[?&]url=[^&]*", '', $url); + + // verifier l'identite des posteurs pour les forums sur abo + if (($forums_publics == "abo") && (!$GLOBALS["auteur_session"])) + { + include_local(find_in_path('inc-login_public.php3')); + return login_pour_tous($GLOBALS['var_login'], $url, true, $url, 'forum'); + } + + $id_rubrique = intval($id_rubrique); + $id_forum = intval($id_forum); + $id_article = intval($id_article); + $id_breve = intval($id_breve); + $id_syndic = intval($id_syndic); + + // ne pas mettre '', sinon le squelette n'affichera rien. + + $previsu = ' '; + + // au premier appel (pas de Post-var nommee "retour_forum") + // memoriser l'URL courante pour y revenir apres envoi du message + // aux appels suivants, reconduire la valeur. + // Initialiser aussi l'auteur + + if (!$retour_forum = rawurldecode($GLOBALS['_POST']['retour_forum'])) { + if ($retour_forum = rawurldecode($GLOBALS['_GET']['retour'])) + $retour_forum = ereg_replace('&var_mode=recalcul','',$retour_forum); + else $retour_forum = $url; + + if ($spip_forum_user && + is_array($cookie_user = unserialize($spip_forum_user))) { + $auteur = $cookie_user['nom']; + $email_auteur = $cookie_user['email']; + } else { + $auteur = $GLOBALS['auteur_session']['nom']; + $email_auteur = $GLOBALS['auteur_session']['email']; + } + + } else { + + // Recuperer le message a previsualiser + $titre = $GLOBALS['_POST']['titre']; + $texte = $GLOBALS['_POST']['texte']; + $auteur = $GLOBALS['_POST']['auteur']; + $email_auteur = $GLOBALS['_POST']['email_auteur']; + $nom_site_forum = $GLOBALS['_POST']['nom_site_forum']; + $url_site = $GLOBALS['_POST']['url_site']; + $ajouter_mot = $GLOBALS['_POST']['ajouter_mot']; // array + + if ($afficher_texte != 'non') { + $previsu = + "<div style='font-size: 120%; font-weight: bold;'>" + . interdire_scripts(typo($titre)) + . "</div><p /><b><a href=\"mailto:" + . interdire_scripts(typo($email_auteur)) . "\">" + . interdire_scripts(typo($auteur)) . "</a></b><p />" + . propre($texte) . "<p /><a href=\"" + . interdire_scripts($url_site) . "\">" + . interdire_scripts(typo($nom_site_forum)) . "</a>"; + + // Verifier mots associes au message + if (is_array($ajouter_mot)) + $mots = preg_replace('/[^0-9,]/', '', join(',',$ajouter_mot)); + else $mots = '0'; + + // affichage {par num type, type, num titre,titre} + $result_mots = spip_query("SELECT id_mot, titre, type + FROM spip_mots + WHERE id_mot IN ($mots) + ORDER BY 0+type,type,0+titre,titre"); + if (spip_num_rows($result_mots)>0) { + $previsu .= "<p>"._T('forum_avez_selectionne')."</p><ul>"; + while ($row = spip_fetch_array($result_mots)) { + $les_mots[$row['id_mot']] = "checked='checked'"; + $presence_mots = true; + $previsu .= "<li style='font-size: 80%;'> " + . typo($row['type']) . " : <b>" + . typo($row['titre']) ."</b></li>"; + } + $previsu .= '</ul>'; + } + + if (strlen($texte) < 10 AND !$presence_mots) { + $previsu .= "<p align='right' style='color: red;'>"._T('forum_attention_dix_caracteres')."</p>\n"; + } + else if (strlen($titre) < 3 AND $afficher_texte <> "non") { + $previsu .= "<p align='right' style='color: red;'>"._T('forum_attention_trois_caracteres')."</p>"; + } + else { + $previsu .= "<div align='right'><input type='submit' name='confirmer_forum' class='spip_bouton' value='"._T('forum_message_definitif')."' /></div>"; + } + $previsu = "<div class='spip_encadrer'>$previsu</div>\n<br />"; + // supprimer les <form> de la previsualisation + // (sinon on ne peut pas faire <cadre>...</cadre> dans les forums) + $previsu = preg_replace("@<(/?)f(orm[>[:space:]])@ism", "<\\1no-f\\2", $previsu); + } + + // 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_SESSIONS (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.php3) + + $alea = preg_replace('/[^0-9]/', '', $alea); + if(!$alea OR !@file_exists(_DIR_SESSIONS."forum_$alea.lck")) { + while ( + # astuce : mt_rand pour autoriser les hits simultanes + $alea = time() + @mt_rand() + AND @file_exists($f = _DIR_SESSIONS."forum_$alea.lck")) {}; + spip_touch ($f); + } + + # et maintenant on purge les locks de forums ouverts depuis > 4 h + if ($dh = @opendir(_DIR_SESSIONS)) + while (($file = @readdir($dh)) !== false) + if (preg_match('/^forum_([0-9]+)\.lck$/', $file) + AND (time()-@filemtime(_DIR_SESSIONS.$file) > 4*3600)) + @unlink(_DIR_SESSIONS.$file); + + $hash = calculer_action_auteur("ajout_forum $id_rubrique $id_forum $id_article $id_breve $id_syndic $alea"); + } + + // Faut-il ajouter des propositions de mots-cles + if ((lire_meta("mots_cles_forums") == "oui") && ($table != 'forum')) + $table = table_des_mots($table, $les_mots); + else + $table = ''; + + return array('formulaire_forum', 0, + array( + 'alea' => $alea, + 'auteur' => $auteur, + 'disabled' => ($forums_publics == "abo")? " disabled='disabled'" : '', + 'email_auteur' => $email_auteur, + 'hash' => $hash, + 'modere' => (($forums_publics != 'pri') ? '' : _T('forum_info_modere')), + 'nom_site_forum' => $nom_site_forum, + 'previsu' => $previsu, + 'retour_forum' => $retour_forum, + 'table' => $table, + 'texte' => $texte, + 'titre' => $titre, + 'url' => $url, + 'url_site' => ($url_site ? $url_site : "http://"), + + ## gestion des la variable de personnalisation $afficher_texte + # mode normal : afficher le texte en < input text >, cf. squelette + 'afficher_texte_input' => (($afficher_texte <> 'non') ? ' ' : ''), + # mode 'non' : afficher les elements en < input hidden > + 'afficher_texte_hidden' => (($afficher_texte <> 'non') ? '' : + (boutonne('hidden', 'titre', htmlspecialchars($titre)) . + $table . + "\n<br /><div align='right'>" . + boutonne('submit', '', _T('forum_valider'), + "class='spip_bouton'") . + "</div>")) + + )); +} + + +function barre_forum($texte) +{ + include_ecrire('inc_layer.php3'); + + if (!$GLOBALS['browser_barre']) + return "<textarea name='texte' rows='12' class='forml' cols='40'>$texte</textarea>"; + static $num_formulaire = 0; + $num_formulaire++; + include_ecrire('inc_barre.php3'); + return afficher_barre("document.getElementById('formulaire_$num_formulaire')", true) . + " +<textarea name='texte' rows='12' class='forml' cols='40' +id='formulaire_$num_formulaire' +onselect='storeCaret(this);' +onclick='storeCaret(this);' +onkeyup='storeCaret(this);' +ondbclick='storeCaret(this);'>$texte</textarea>"; +} + +// Mots-cles dans les forums : +// Si la variable de personnalisation $afficher_groupe[] est definie +// dans le fichier d'appel, et si la table de reference est OK, proposer +// la liste des mots-cles +function table_des_mots($table, $les_mots) { + global $afficher_groupe; + + if ($afficher_groupe) + $in_group = " AND id_groupe IN (" . join($afficher_groupe, ", ") .")"; + + $result_groupe = spip_query("SELECT * FROM spip_groupes_mots + WHERE 6forum = 'oui' AND $table = 'oui'". $in_group); + + $ret = ''; + while ($row_groupe = spip_fetch_array($result_groupe)) { + $id_groupe = $row_groupe['id_groupe']; + $titre_groupe = propre($row_groupe['titre']); + $unseul = ($row_groupe['unseul']== 'oui') ? 'radio' : 'checkbox'; + $result =spip_query("SELECT * FROM spip_mots + WHERE id_groupe='$id_groupe'"); + $total_rows = spip_num_rows($result); + + if ($total_rows > 0) { + $ret .= "\n<p />" + . "<div class='spip_encadrer' style='font-size: 80%;'>" + . "<b>$titre_groupe :</b>" + . "<table cellpadding='0' cellspacing='0' border='0' width='100%'>\n" + ."<tr><td width='47%' valign='top'>"; + $i = 0; + + while ($row = spip_fetch_array($result)) { + $id_mot = $row['id_mot']; + $titre_mot = propre($row['titre']); + $descriptif_mot = propre($row['descriptif']); + + if ($i >= ($total_rows/2) AND $i < $total_rows) { + $i = $total_rows + 1; + $ret .= "</td><td width='6%'> </td> + <td width='47%' valign='top'>"; + } + + $ret .= boutonne($unseul, "ajouter_mot[]", $id_mot, "id='mot$id_mot' " . $les_mots[$id_mot]) . + afficher_petits_logos_mots($id_mot) + . "<b><label for='mot$id_mot'>$titre_mot</label></b><br />"; + + if ($descriptif_mot) + $ret .= "$descriptif_mot<br />"; + $i++; + } + + $ret .= "</td></tr></table>"; + $ret .= "</div>"; + } + } + + return $ret; +} + + +function afficher_petits_logos_mots($id_mot) { + include_ecrire('inc_logos.php3'); + $on = cherche_image_nommee("moton$id_mot"); + if ($on) { + $image = ("$on[0]$on[1].$on[2]"); + $taille = @getimagesize($image); + $largeur = $taille[0]; + $hauteur = $taille[1]; + if ($largeur < 100 AND $hauteur < 100) + return "<img src='$image' align='middle' width='$largeur' + height='$hauteur' hspace='1' vspace='1' alt=' ' border='0' + class='spip_image' /> "; + } +} + +/*******************************************************/ +/* FONCTIONS DE CALCUL DES DONNEES DU FORMULAIRE FORUM */ +/*******************************************************/ + +// +// Chercher le titre et la configuration du forum de l'element auquel on repond +// + +function sql_recherche_donnees_forum ($idr, $idf, $ida, $idb, $ids) { + + // changer la table de reference s'il y a lieu (pour afficher_groupes[] !!) + if ($idr) { + $r = "SELECT titre FROM spip_rubriques WHERE id_rubrique = $idr"; + $table = "rubriques"; + } else if ($ida) { + $r = "SELECT titre FROM spip_articles WHERE id_article = $ida"; + $table = "articles"; + } else if ($idb) { + $r = "SELECT titre FROM spip_breves WHERE id_breve = $idb"; + $table = "breves"; + } else if ($ids) { + $r = "SELECT nom_site AS titre FROM spip_syndic WHERE id_syndic = $ids"; + $table = "syndic"; + } + + if ($idf) + $r = "SELECT titre FROM spip_forum WHERE id_forum = $idf"; + + if ($r) { + list($titre) = spip_fetch_array(spip_query($r)); + $titre = '> ' . supprimer_numero($titre); + } else { + $titre = _T('forum_titre_erreur'); + $table = ''; + } + + // quelle est la configuration du forum ? + if ($ida) + list($accepter_forum) = spip_fetch_array(spip_query( + "SELECT accepter_forum FROM spip_articles WHERE id_article=$ida")); + if (!$accepter_forum) + $accepter_forum = substr(lire_meta("forums_publics"),0,3); + // valeurs possibles : 'pos'teriori, 'pri'ori, 'abo'nnement + if ($accepter_forum == "non") + return false; + + return array ($titre, $table, $accepter_forum); +} + +?> diff --git a/formulaires/inc-formulaire_inscription.php3 b/formulaires/inc-formulaire_inscription.php3 new file mode 100644 index 0000000000..c90482535c --- /dev/null +++ b/formulaires/inc-formulaire_inscription.php3 @@ -0,0 +1,123 @@ +<?php + +if (!defined("_ECRIRE_INC_VERSION")) return; #securite + +include_ecrire('inc_abstract_sql.php3'); + +global $balise_FORMULAIRE_INSCRIPTION_collecte ; +$balise_FORMULAIRE_INSCRIPTION_collecte = array('mail_inscription', 'nom_inscription'); + +// args 0 et 1 sont mail et nom ci-dessus, +// arg2 le parametre de la balise +// arg3 toujours vide au premier appel (fenetre cible) + +function balise_FORMULAIRE_INSCRIPTION_stat($args, $filtres) +{ + return ((lire_meta('accepter_inscriptions') != 'oui') ? '' : + array('redac', $args[0], $args[1], + ($args[2] == 'focus' ? 'nom_inscription' : ''), + '')); +} + +function balise_FORMULAIRE_INSCRIPTION_dyn($mode, $mail_inscription, $nom_inscription, $focus, $target) { + if (($mode == 'redac') AND (lire_meta("accepter_inscriptions") == "oui")) + $statut = "nouveau"; + else if (($mode == 'forum') AND ((lire_meta('accepter_visiteurs') == 'oui') OR (lire_meta('forums_publics') == 'abo'))) + $statut = "6forum"; + else return _T('pass_rien_a_faire_ici'); + + if (test_mail_ins($mode, $mail_inscription) && $nom_inscription) { + include(_FILE_CONNECT); + // envoyer les identifiants si l'abonne n'existe pas déjà. + if (!$row = spip_fetch_array(spip_query("SELECT statut, id_auteur, login, pass FROM spip_auteurs WHERE email='".addslashes($mail_inscription)."' LIMIT 1"))) + { + include_ecrire("inc_acces.php3"); + $pass = creer_pass_aleatoire(8, $mail_inscription); + $login = test_login($mail_inscription); + $mdpass = md5($pass); + $htpass = generer_htpass($pass); + $r = spip_abstract_insert('spip_auteurs', + '(nom, email, login, pass, statut, htpass)', + "('".addslashes($nom_inscription)."', '".addslashes($mail_inscription)."', '$login', '$mdpass', '$statut', '$htpass')"); + ecrire_acces(); + $message = envoyer_inscription($mail_inscription, $statut, $mode, $login, $pass); + } + + else { + // existant mais encore muet, renvoyer les infos + if ($row['statut'] == 'nouveau') { + $message = (envoyer_inscription($mail_inscription, $row['statut'], $mode, $row['login'], $row['pass'])); + } else { + if ($row['statut'] == '5poubelle') + // dead + $message = _T('form_forum_access_refuse'); + else + // deja inscrit + $message = _T('form_forum_email_deja_enregistre'); + } + } + } + // demande du formulaire + else { + if (!$nom_inscription) + $message = ''; + else { + spip_log("Mail incorrect: '$mail_inscription'"); + $message = _T('info_email_invalide'); + } + } + + return array("formulaire_inscription",0, + array('focus' => $focus, + 'target' => $target, + 'message' => $message, + 'mode' => $mode)); +} + +// fonction qu'on peut redefinir pour filtrer selon l'adresse mail +// cas general: controler juste que l'adresse n'est pas vide + +function test_mail_ins($mode, $mail_inscription) { + return trim($mail_inscription); +} + + // envoyer identifiants par mail +function envoyer_inscription($mail, $statut, $type, $login, $pass) { + $nom_site_spip = lire_meta("nom_site"); + $adresse_site = lire_meta("adresse_site"); + + $message = _T('form_forum_message_auto')."\n\n"._T('form_forum_bonjour')."\n\n"; + if ($type == 'forum') { + $message .= _T('form_forum_voici1', array('nom_site_spip' => $nom_site_spip, 'adresse_site' => $adresse_site)) . "\n\n"; + } else { + $message .= _T('form_forum_voici2', array('nom_site_spip' => $nom_site_spip, 'adresse_site' => $adresse_site)) . "\n\n"; + } + $message .= "- "._T('form_forum_login')." $login\n"; + $message .= "- "._T('form_forum_pass')." $pass\n\n"; + + include_ecrire("inc_mail.php3"); + if (envoyer_mail($mail, "[$nom_site_spip] "._T('form_forum_identifiants'), $message)) + return _T('form_forum_identifiant_mail'); + else + return _T('form_forum_probleme_mail'); +} + +function test_login($mail) { + if (strpos($mail, "@") > 0) $login_base = substr($mail, 0, strpos($mail, "@")); + else $login_base = $mail; + + $login_base = strtolower($login_base); + $login_base = ereg_replace("[^a-zA-Z0-9]", "", $login_base); + if (!$login_base) $login_base = "user"; + $login = $login_base; + + for ($i = 1; ; $i++) { + $query = "SELECT id_auteur FROM spip_auteurs WHERE login='$login' LIMIT 1"; + if (!spip_num_rows(spip_query($query))) return $login; + $login = $login_base.$i; + } + + +} + +?> diff --git a/formulaires/inc-formulaire_recherche.php3 b/formulaires/inc-formulaire_recherche.php3 new file mode 100644 index 0000000000..53c9f7c73a --- /dev/null +++ b/formulaires/inc-formulaire_recherche.php3 @@ -0,0 +1,26 @@ +<?php + +if (!defined("_ECRIRE_INC_VERSION")) return; #securite + +global $balise_FORMULAIRE_RECHERCHE_collecte; +$balise_FORMULAIRE_RECHERCHE_collecte = array(); + +function balise_FORMULAIRE_RECHERCHE_stat($args, $filtres) +{ + return (lire_meta("activer_moteur") != "oui") ? '' : array($filtres[0]); +} + +function balise_FORMULAIRE_RECHERCHE_dyn($lien) { + include_ecrire('inc_filtres.php3'); + if (!$recherche_securisee = entites_html($GLOBALS['recherche'])) { + $recherche_securisee = _T('info_rechercher'); + } + + return array('formulaire_recherche', 3600, + array( + 'lien' => ($lien ? $lien : 'recherche.php3'), + 'recherche_securisee' => $recherche_securisee + )); +} + +?> \ No newline at end of file diff --git a/formulaires/inc-formulaire_signature.php3 b/formulaires/inc-formulaire_signature.php3 new file mode 100644 index 0000000000..e687b4db7f --- /dev/null +++ b/formulaires/inc-formulaire_signature.php3 @@ -0,0 +1,248 @@ +<?php + +if (!defined("_ECRIRE_INC_VERSION")) return; #securite + +// +// Formulaire de signature d'une petition +// + +global $balise_FORMULAIRE_SIGNATURE_collecte; +$balise_FORMULAIRE_SIGNATURE_collecte = array('petition', 'id_article', 'nom_email', 'adresse_email', 'message', 'signature_nom_site', 'signature_url_site', 'url_page', 'val_confirm'); + +function balise_FORMULAIRE_SIGNATURE_stat($args, $filtres) +{ + return ($args[0] ? $args : ''); +} + +function balise_FORMULAIRE_SIGNATURE_dyn($texte, $id_article, $nom_email, $adresse_email, $message, $nom_site, $url_site, $url_page, $val_confirm) { + + include_local(_FILE_CONNECT); + if ($val_confirm) + return reponse_confirmation($id_article); + else if ($nom_email AND $adresse_email) + return reponse_signature($id_article, $nom_email, $adresse_email, $message, $nom_site, $url_site, $url_page, $val_confirm); + else { + $row = spip_fetch_array(spip_query("SELECT * FROM spip_petitions WHERE id_article='$id_article'")); + return !$row ? '': array('formulaire_signature', 0, $row); + } +} + + +// Retour a l'ecran du lien de confirmation d'une signature de petition. +// Si val_confirm est non vide, c'est l'appel en debut de inc-public +// 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 inc-public. + +function reponse_confirmation($id_article, $val_confirm = '') { + static $confirm = ''; + + if (!$val_confirm) return $confirm; + include_local(_FILE_CONNECT); + if ($GLOBALS['db_ok']) { + include_ecrire("inc_texte.php3"); + include_ecrire("inc_filtres.php3"); + + // Eviter les doublons + $lock = "petition $id_article $val_confirm"; + if (!spip_get_lock($lock, 5)) { + $confirm= _T('form_pet_probleme_technique'); + } + else { + $query_sign = "SELECT * FROM spip_signatures WHERE statut='".addslashes($val_confirm)."'"; + $result_sign = spip_query($query_sign); + if (spip_num_rows($result_sign) > 0) { + while($row = spip_fetch_array($result_sign)) { + $id_signature = $row['id_signature']; + $id_article = $row['id_article']; + $date_time = $row['date_time']; + $nom_email = $row['nom_email']; + $adresse_email = $row['ad_email']; + $nom_site = $row['nom_site']; + $url_site = $row['url_site']; + $message = $row['message']; + $statut = $row['statut']; + } + + $query_petition = "SELECT * FROM spip_petitions WHERE id_article=$id_article"; + $result_petition = spip_query($query_petition); + + while ($row = spip_fetch_array($result_petition)) { + $id_article = $row['id_article']; + $email_unique = $row['email_unique']; + $site_obli = $row['site_obli']; + $site_unique = $row['site_unique']; + $message_petition = $row['message']; + $texte_petition = $row['texte']; + } + + if ($email_unique == "oui") { + $email = addslashes($adresse_email); + $query = "SELECT * FROM spip_signatures WHERE id_article=$id_article AND ad_email='$email' AND statut='publie'"; + $result = spip_query($query); + if (spip_num_rows($result) > 0) { + $confirm= (_T('form_pet_deja_signe')); + $refus = "oui"; + } + } + + if ($site_unique == "oui") { + $site = addslashes($url_site); + $query = "SELECT * FROM spip_signatures WHERE id_article=$id_article AND url_site='$site' AND statut='publie'"; + $result = spip_query($query); + if (spip_num_rows($result) > 0) { + $confirm= (_T('form_pet_deja_enregistre')); + $refus = "oui"; + } + } + + if ($refus == "oui") { + $confirm= (_T('form_deja_inscrit')); + } + else { + $query = "UPDATE spip_signatures + SET statut='publie', date_time=NOW() + WHERE id_signature='$id_signature'"; + $result = spip_query($query); + // invalider les pages ayant des boucles signatures + include_ecrire('inc_invalideur.php3'); + include_ecrire('inc_meta.php3'); + suivre_invalideur("id='petition/petition'"); + + $confirm= (_T('form_pet_signature_validee')); + } + } + else { + $confirm= (_T('form_pet_aucune_signature')); + } + spip_release_lock($lock); + } + } + else { + $confirm= _T('form_pet_probleme_technique'); + } +} + +// +// Retour a l'ecran de la signature d'une petition +// + +function reponse_signature($id_article, $nom_email, $adresse_email, $message, $nom_site, $url_site, $url_page, $val_confirm) { + + if ($GLOBALS['db_ok']) { + include_ecrire("inc_texte.php3"); + include_ecrire("inc_filtres.php3"); + include_ecrire("inc_mail.php3"); + + // Eviter les doublons + $lock = "petition $id_article $adresse_email"; + if (!spip_get_lock($lock, 5)) { + return _T('form_pet_probleme_technique'); + } else { + $query_petition = "SELECT * FROM spip_petitions WHERE id_article=$id_article"; + $result_petition = spip_query($query_petition); + + while ($row = spip_fetch_array($result_petition)) { + $id_article = $row['id_article']; + $email_unique = $row['email_unique']; + $site_obli = $row['site_obli']; + $site_unique = $row['site_unique']; + $message_petition = $row['message']; + $texte_petition = $row['texte']; + } + + if (strlen($nom_email) < 2) { + return (_T('form_indiquer_nom')); + } + + if ($adresse_email == _T('info_mail_fournisseur')) { + return (_T('form_indiquer_email')); + } + + if ($email_unique == "oui") { + $email = addslashes($adresse_email); + $query = "SELECT * FROM spip_signatures WHERE id_article=$id_article AND ad_email='$email' AND statut='publie'"; + $result = spip_query($query); + if (spip_num_rows($result) > 0) { + return (_T('form_pet_deja_signe')); + } + } + + if (!email_valide($adresse_email)) { + return (_T('form_email_non_valide')); + } + + if ($site_obli == "oui") { + if (!$nom_site) { + return (_T('form_indiquer_nom_site')); + } + include_ecrire("inc_sites.php3"); + + if (!recuperer_page($url_site)) { + return (_T('form_pet_url_invalide')); + } + } + if ($site_unique == "oui") { + $site = addslashes($url_site); + $query = "SELECT * FROM spip_signatures WHERE id_article=$id_article AND url_site='$site' AND (statut='publie' OR statut='poubelle')"; + $result = spip_query($query); + if (spip_num_rows($result) > 0) { + return (_T('form_pet_site_deja_enregistre')); + } + } + + $passw = test_pass(); + + if ($refus == "oui") { + return _T('form_pet_signature_pasprise'); + } + else { + $query_site = "SELECT titre FROM spip_articles WHERE id_article=$id_article"; + $result_site = spip_query($query_site); + while ($row = spip_fetch_array($result_site)) { + $titre = $row['titre']; + } + + $link = new Link($url_page); + $link->addVar('val_confirm', $passw); + $url = $link->getUrl("sp$id_article"); + + $messagex = _T('form_pet_mail_confirmation', array('titre' => $titre, 'nom_email' => $nom_email, 'nom_site' => $nom_site, 'url_site' => $url_site, 'url' => $url)); + + if (envoyer_mail($adresse_email, _T('form_pet_confirmation')." ".$titre, $messagex)) { + + $nom_email = addslashes($nom_email); + $adresse_email = addslashes($adresse_email); + $nom_site = addslashes($nom_site); + $url_site = addslashes($url_site); + $message = addslashes($message); + + spip_query("INSERT INTO spip_signatures (id_article, date_time, nom_email, ad_email, nom_site, url_site, message, statut) VALUES ($id_article, NOW(), '$nom_email', '$adresse_email', '$nom_site', '$url_site', '$message', '$passw')"); + return _T('form_pet_envoi_mail_confirmation'); + } + else { + return _T('form_pet_probleme_technique'); + } + } + spip_release_lock($lock); + } + } + else { + return _T('form_pet_probleme_technique'); + } + +} + + +function test_pass() { + include_ecrire("inc_acces.php3"); + for (;;) { + $passw = creer_pass_aleatoire(); + $query = "SELECT statut FROM spip_signatures WHERE statut='$passw'"; + $result = spip_query($query); + if (!spip_num_rows($result)) break; + } + return $passw; +} + +?> diff --git a/formulaires/inc-formulaire_site.php3 b/formulaires/inc-formulaire_site.php3 new file mode 100644 index 0000000000..21576c0fac --- /dev/null +++ b/formulaires/inc-formulaire_site.php3 @@ -0,0 +1,37 @@ +<?php + +if (!defined("_ECRIRE_INC_VERSION")) return; #securite + +global $balise_FORMULAIRE_SITE_collecte; +$balise_FORMULAIRE_SITE_collecte = array('id_rubrique', 'nom_site', 'url_site', 'description_site'); + +function balise_FORMULAIRE_SITE_stat($args, $filtres) +{ + return ((lire_meta("proposer_sites") != 2) ? '' : $args); +} + +function balise_FORMULAIRE_SITE_dyn($id_rubrique, $nom_site, $url_site, $description_site) { + + if (!$nom_site) return array('formulaire_site', 0); + + // Tester le nom du site + if (strlen ($nom_site) < 2){ + return _T('form_prop_indiquer_nom_site'); + } + + // Tester l'URL du site + include_ecrire("inc_sites.php3"); + if (!recuperer_page($url_site)) { + return _T('form_pet_url_invalide'); + } + + // Integrer a la base de donnees + + $nom_site = addslashes($nom_site); + $url_site = addslashes($url_site); + $description_site = addslashes($description_site); + + spip_query("INSERT INTO spip_syndic (nom_site, url_site, id_rubrique, descriptif, date, date_syndic, statut, syndication) VALUES ('$nom_site', '$url_site', $id_rubrique, '$description_site', NOW(), NOW(), 'prop', 'non')"); + return _T('form_prop_enregistre'); +} +?> diff --git a/formulaires/inc-login_prive.php3 b/formulaires/inc-login_prive.php3 new file mode 100644 index 0000000000..cd7bdc7c56 --- /dev/null +++ b/formulaires/inc-login_prive.php3 @@ -0,0 +1,30 @@ +<?php + +if (!defined("_ECRIRE_INC_VERSION")) return; #securite + +include_local(find_in_path("inc-login_public.php3")); + +global $balise_LOGIN_PRIVE_collecte; +$balise_LOGIN_PRIVE_collecte = array('url'); + +# retourner: +# 1. l'url collectee ci-dessus (args0) ou donnee en filtre (filtre0) +# 2. l'eventuel parametre de la balise (args1) fournie par +# calculer_balise_dynamique, en l'occurence le #LOGIN courant si l'on +# programme une <boucle(AUTEURS)>[(#LOGIN_PUBLIC{#LOGIN})] + +function balise_LOGIN_PRIVE_stat ($args, $filtres) { + + if (!$cible = $filtres[0]) + $cible = $args[0]; + + $login = $args[1]; + + return array($cible, $login, $simple); +} + +function balise_LOGIN_PRIVE_dyn($cible, $login) { + return login_explicite($login, $cible, 'redac'); +} + +?> diff --git a/formulaires/inc-login_public.php3 b/formulaires/inc-login_public.php3 new file mode 100644 index 0000000000..c8e50852a7 --- /dev/null +++ b/formulaires/inc-login_public.php3 @@ -0,0 +1,147 @@ +<?php + +if (!defined("_ECRIRE_INC_VERSION")) return; #securite + +include(_FILE_CONNECT); +include_ecrire("inc_meta.php3"); +include_ecrire("inc_session.php3"); +include_ecrire("inc_filtres.php3"); + +global $balise_LOGIN_PUBLIC_collecte; +$balise_LOGIN_PUBLIC_collecte = array('url'); + +# retourner: +# 1. l'url collectee ci-dessus (args0) ou donnee en filtre (filtre0) +# 2. l'eventuel parametre de la balise (args1) fournie par calculer_balise_dynamique + +function balise_LOGIN_PUBLIC_stat ($args, $filtres) +{ + return array($filtres[0] ? $filtres[0] : $args[0], $args[1]); +} + +function balise_LOGIN_PUBLIC_dyn($cible, $login) +{ + if (!$cible) { + global $clean_link; + $clean_link->delVar('var_erreur'); + $clean_link->delVar('var_login'); + $cible = $clean_link->getUrl(); + } + return login_explicite($login, $cible, 'forum'); +} + +function login_explicite($login, $cible, $mode) { + global $auteur_session, $clean_link; + + $clean_link->delVar('var_erreur'); + $clean_link->delVar('var_login'); + $action = $clean_link->getUrl(); + + if ($cible) { + $cible = ereg_replace("[?&]var_erreur=[^&]*", '', $cible); + $cible = ereg_replace("[?&]var_login=[^&]*", '', $cible); + } else { + if (ereg("[?&]url=([^&]*)", $action, $m)) + $cible = urldecode($m[1]); + else + $cible = _DIR_RESTREINT ; + } + + include_ecrire("inc_session.php3"); + verifier_visiteur(); + + if ($auteur_session AND + ($auteur_session['statut']=='0minirezo' OR $auteur_session['statut']=='1comite')) { + if (($cible != $action) && !headers_sent()) + redirige_par_entete($cible); + return http_href($cible, _T('login_par_ici')); + } + return login_pour_tous($login ? $login : $GLOBALS['var_login'], $cible, '', $action, $mode); +} + +// fonction aussi pour les forums sur abonnement + +function login_pour_tous($login, $cible, $message, $action, $mode) { + global $ignore_auth_http, $spip_admin, $php_module, $_SERVER; + + // en cas d'echec de cookie, inc_auth a renvoye vers spip_cookie qui + // a tente de poser un cookie ; s'il n'est pas la, c'est echec cookie + // s'il est la, c'est probablement un bookmark sur bonjour=oui, + // et pas un echec cookie. + if ($GLOBALS['var_echec_cookie']) + $echec_cookie = ($GLOBALS['spip_session'] != 'test_echec_cookie'); + $auth_http = ($echec_cookie AND $php_module AND !$ignore_auth_http) ? + 'spip_cookie.php3' : ''; + // Attention dans le cas 'intranet' la proposition de se loger + // par auth_http peut conduire a l'echec. + if ($_SERVER['PHP_AUTH_USER'] AND $_SERVER['PHP_AUTH_PW']) + $auth_http = ''; + + // Le login est memorise dans le cookie d'admin eventuel + if (!$login) { + if (ereg("^@(.*)$", $spip_admin, $regs)) + $login = $regs[1]; + } else if ($login == '-1') + $login = ''; + + $row = array(); + $erreur = ''; + if ($login) { + $row = spip_query("SELECT * FROM spip_auteurs WHERE login='" .addslashes($login) ."'"); + $row = spip_fetch_array($row); + if ((!$row AND !$GLOBALS['ldap_present']) OR + ($row['statut'] == '5poubelle') OR + (($row['source'] == 'spip') AND $row['pass'] == '')) { + $erreur = _T('login_identifiant_inconnu', + array('login' => htmlspecialchars($login))); + $row = array(); + $login = ''; + @spip_setcookie("spip_admin", "", time() - 3600); + } else { + // on laisse le menu decide de la langue + unset($row['lang']); + } + } + + // afficher "erreur de mot de passe" si &var_erreur=pass + if ($GLOBALS['var_erreur'] == 'pass') + $erreur = _T('login_erreur_pass'); + + // url des inscriptions + $inscription = ((lire_meta("accepter_inscriptions") == "oui") OR + (($mode == 'forum') + AND (lire_meta("accepter_visiteurs") == "oui" + OR lire_meta('forums_publics') == 'abo'))) ? + 'spip_inscription.php3' : ''; + + return array('formulaire_login', 0, + array_merge(array_map('addslashes', $row), + array( + 'action2' => ($login ? 'spip_cookie.php3' : $action), + 'erreur' => $erreur, + 'action' => $action, + 'url' => $cible, + 'auth_http' => $auth_http, + 'echec_cookie' => ($echec_cookie ? ' ' : ''), + 'message' => ($message ? ' ' : ''), + 'inscription' => $inscription + ) + ) + ); + +} + +// Bouton duree de connexion + +function filtre_rester_connecte($prefs) +{ + $prefs = unserialize(stripslashes($prefs)); + return $prefs['cnx'] == 'perma' ? ' ' : ''; +} + +function silogoauteur($id_auteur) +{ + $f = _DIR_IMG . 'auton' . $id_auteur . '.jpg'; + return (@file_exists($f) ? $f : ''); +} +?> diff --git a/formulaires/inc-menu_lang.php3 b/formulaires/inc-menu_lang.php3 new file mode 100644 index 0000000000..2761df5a2c --- /dev/null +++ b/formulaires/inc-menu_lang.php3 @@ -0,0 +1,26 @@ +<?php + +if (!defined("_ECRIRE_INC_VERSION")) return; #securite + +global $balise_MENU_LANG_collecte; +$balise_MENU_LANG_collecte = array('menu_lang'); + +// s'il n'y a qu'une langue eviter definitivement la balise ?php + +function balise_MENU_LANG_stat ($args, $filtres) +{ + if (!strpos(lire_meta('langues_multilingue'),',')) return ''; + return $args; +} + +// normalement $opt sera toujours non vide suite au test ci-dessus + +function balise_MENU_LANG_dyn($default) +{ + include_ecrire("inc_lang.php3"); + $opt = liste_options_langues('var_lang', $default); + if (!$opt) return ''; + include_local("inc-menu_lang_ecrire.php3"); + return menu_lang_pour_tous('var_lang', $opt); +} +?> diff --git a/formulaires/inc-menu_lang_ecrire.php3 b/formulaires/inc-menu_lang_ecrire.php3 new file mode 100644 index 0000000000..f2fec55e4f --- /dev/null +++ b/formulaires/inc-menu_lang_ecrire.php3 @@ -0,0 +1,41 @@ +<?php + +if (!defined("_ECRIRE_INC_VERSION")) return; #securite + +global $balise_MENU_LANG_ECRIRE_collecte; +$balise_MENU_LANG_ECRIRE_collecte = array('menu_lang'); + +// s'il n'y a qu'une langue proposee eviter definitivement la balise ?php + +function balise_MENU_LANG_ECRIRE_stat ($args, $filtres) +{ + if (!strpos(lire_meta('langues_proposees'),',')) return ''; + return $args; +} + +// normalement $opt sera toujours non vide suite au test ci-dessus + +function balise_MENU_LANG_ECRIRE_dyn($default) +{ + include_ecrire("inc_lang.php3"); + $opt = liste_options_langues('var_lang_ecrire', $default); + return (!$opt ? '' : menu_lang_pour_tous('var_lang_ecrire', $opt)); +} + +function menu_lang_pour_tous($nom, $opt) +{ + $site = lire_meta("adresse_site"); + $post = ($site ? $site : '..') . "/spip_cookie.php3"; + $cible = $GLOBALS['clean_link']->getUrl(); + $postcomplet = new Link($post); + $postcomplet->addvar('url', $cible); + + return array('formulaire_menu_lang', + 10, + array('nom' => $nom, + 'url' => $post, + 'cible' => $cible, + 'retour' => $postcomplet->getUrl(), + 'langues' => $opt)); +} +?> diff --git a/formulaires/inc-url_logout.php3 b/formulaires/inc-url_logout.php3 new file mode 100644 index 0000000000..4cc8f4ad40 --- /dev/null +++ b/formulaires/inc-url_logout.php3 @@ -0,0 +1,20 @@ +<?php + +if (!defined("_ECRIRE_INC_VERSION")) return; #securite + +global $balise_URL_LOGOUT_collecte; +$balise_URL_LOGOUT_collecte = array(); + +function balise_URL_LOGOUT_stat ($args, $filtres) +{ + return array($filtres[0]); +} + +function balise_URL_LOGOUT_dyn($cible) +{ + if (!$login = $GLOBALS['auteur_session']['login']) + return ''; + if (!$cible) $cible = $GLOBALS['clean_link']->getUrl(); + return 'spip_cookie.php3?logout_public=' . $login . '&url=' . urlencode($cible); +} +?> -- GitLab