Browse Source

Plugin pour faciliter la mise en place d'un site multilingue avec des langues par secteur

0
abelass@gmail.com 11 years ago
commit
a08c54ca49
  1. 23
      .gitattributes
  2. 4
      article.html
  3. 109
      article_spip2.html
  4. 95
      article_spip3.html
  5. 22
      formulaires/configurer_multilingue.html
  6. 30
      inc-rubriques.html
  7. 9
      inclure/header.html
  8. 25
      inclure/menu_langues.html
  9. 11
      inclure/nav.html
  10. 170
      inclure/rubrique_spip3.html
  11. 20
      lang/multilingue_fr.php
  12. 32
      lang/paquet-multilingue_fr.php
  13. 21
      paquet.xml
  14. 39
      plugin.xml
  15. 37
      plugin_multilinguisme.geany
  16. 7
      prive/squelettes/contenu/configurer_multilingue.html
  17. BIN
      prive/themes/spip/images/multilingue-128.png
  18. BIN
      prive/themes/spip/images/multilingue-32.png
  19. BIN
      prive/themes/spip/images/multilingue-64.png
  20. 4
      rubrique.html
  21. 182
      rubrique_spip2.html
  22. 171
      rubrique_spip3.html
  23. 1
      sommaire.html

23
.gitattributes vendored

@ -0,0 +1,23 @@
* text=auto !eol
/article.html -text
/article_spip2.html -text
/article_spip3.html -text
formulaires/configurer_multilingue.html -text
/inc-rubriques.html -text
inclure/header.html -text
inclure/menu_langues.html -text
inclure/nav.html -text
inclure/rubrique_spip3.html -text
lang/multilingue_fr.php -text
lang/paquet-multilingue_fr.php -text
/paquet.xml -text
/plugin.xml -text
/plugin_multilinguisme.geany -text
prive/squelettes/contenu/configurer_multilingue.html -text
prive/themes/spip/images/multilingue-128.png -text
prive/themes/spip/images/multilingue-32.png -text
prive/themes/spip/images/multilingue-64.png -text
/rubrique.html -text
/rubrique_spip2.html -text
/rubrique_spip3.html -text
/sommaire.html -text

4
article.html

@ -0,0 +1,4 @@
[(#REM) Choisis le squelettes selon la version spip, les squelettes inclus puevent être utilisé tels quels, il suffit de renommer le squelette correspondant à votre version]
[(#SPIP_VERSION|version_compare{2.1.99, >}|non)<INCLURE{fond=article_spip2,env}/>]
[(#SPIP_VERSION|version_compare{2.1.99, >}|oui)<INCLURE{fond=article_spip3,env}/>]

109
article_spip2.html

@ -0,0 +1,109 @@
<BOUCLE_principale(ARTICLES) {id_article}>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR">
<head>
<title>[(#TITRE|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title>
[<meta name="description" content="(#INTRODUCTION{150}|attribut_html)" />]
<INCLURE{fond=inc-head}>
</head>
<body class="page_article">
<div id="page">
[(#REM) Entete de la page + titre du site ]
<INCLURE{fond=inc-entete,id_article}>
[(#REM) Contenu principal : contenu de l'article ]
<div class="hfeed" id="conteneur">
<div class="hentry" id="contenu">
[(#REM) Fil d'Ariane ]
<div id="hierarchie"><a href="#URL_SITE_SPIP/"><:accueil_site:></a><BOUCLE_ariane(HIERARCHIE){id_article}>
[(#ID_PARENT|!={0}|oui) &gt; <a href="#URL_RUBRIQUE">[(#TITRE|couper{80})]</a>]</BOUCLE_ariane>[ &gt; <strong class="on">(#TITRE|couper{80})</strong>]</div>
<div class="cartouche">
<div class="surlignable">
[(#LOGO_ARTICLE|image_reduire{200,200})]
[<p class="#EDIT{surtitre} surtitre">(#SURTITRE)</p>]
<h1 class="#EDIT{titre} entry-title">#TITRE</h1>
[<p class="#EDIT{soustitre} soustitre">(#SOUSTITRE)</p>]
</div>
<p><small><abbr class="published" title="[(#DATE|date_iso)]">[(#DATE|nom_jour) ][(#DATE|affdate)]</abbr>[, <:par_auteur:> (#LESAUTEURS)][ (<:texte_date_publication_anterieure:> (#DATE_REDAC|affdate)).]</small></p>
[(#REM) Inclure le modele des liens de traductions ]
#MODELE{article_traductions}
</div>
<div class="surlignable">
[<div class="#EDIT{chapo} chapo">(#CHAPO|image_reduire{500,0})</div>]
[<div class="#EDIT{texte} texte entry-content">(#TEXTE|image_reduire{500,0})</div>]
</div>
[<p class="#EDIT{hyperlien} hyperlien"><:voir_en_ligne:> : <a href="(#URL_SITE)" class="spip_out">[(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]</a></p>]
[<div class="ps surlignable"><h2 class="pas_surlignable"><:info_ps:></h2><div class="#EDIT{ps}">(#PS|image_reduire{500,0})</div></div>]
[(#REM) Gestion du portfolio et des documents
Le critere {env} permet de passer d'autres arguments de la page
par exemple l'id_document choisi pour un affichage complet
]
[(#INCLURE{fond=inc-documents}{id_article}{env})]
[(#REM) Petition :
La petition ayant une PAGINATION il faut absolument {env}
et pourquoi pas ajax
][(#PETITION|?{' '})<INCLURE{fond=inc-petition}{id_article}{env}{ajax}>]
[<div class="notes surlignable"><h2 class="pas_surlignable"><:info_notes:></h2>(#NOTES)</div>]
[(#REM) Forum de l'article ]
<a href="#forum" name="forum" id="forum"></a>
<INCLURE{fond=inc-forum}{id_article} />
[<p class="repondre"><a href="(#PARAMETRES_FORUM|url_reponse_forum)" rel="noindex nofollow"><:repondre_article:></a></p>]
</div><!--#contenu-->
</div><!--#conteneur-->
[(#REM) Menu de navigation laterale ]
<div id="navigation">
[(#REM) Menu de navigation par rubriques ]
<INCLURE{fond=inc-rubriques}{id_rubrique}>
#FORMULAIRE_RECHERCHE
</div><!--#navigation-->
[(#REM) Menu de navigation laterale ]
<div id="extra">
[(#REM) Articles dans la meme rubrique ]
<B_articles_rubrique>
<div class="menu">
<h2><a href="#URL_RUBRIQUE"><:meme_rubrique:></a></h2>
<ul>
<BOUCLE_articles_rubrique(ARTICLES) {id_rubrique} {par date}{inverse} {0,10}>
<li><a href="#URL_ARTICLE"[ class="(#EXPOSE)"]>#TITRE</a></li>
</BOUCLE_articles_rubrique>
</ul>
</div>
</B_articles_rubrique>
[(#REM) Menu de navigation mots-cles ]
#MODELE{article_mots}
</div><!--#extra-->
[(#REM) Pied de page ]
<INCLURE{fond=inc-pied}{skel=#SQUELETTE}>
</div><!--#page-->
</body>
</html>
</BOUCLE_principale>

95
article_spip3.html

@ -0,0 +1,95 @@
<BOUCLE_principale(ARTICLES) {id_article}>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
[(#REM) Cf.: http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/
]<!--[if lt IE 7 ]> <html dir="#LANG_DIR" lang="#LANG" xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" class="[(#LANG_DIR)][ (#LANG)] no-js ie ie6"> <![endif]-->
<!--[if IE 7 ]> <html dir="#LANG_DIR" lang="#LANG" xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" class="[(#LANG_DIR)][ (#LANG)] no-js ie ie7"> <![endif]-->
<!--[if IE 8 ]> <html dir="#LANG_DIR" lang="#LANG" xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" class="[(#LANG_DIR)][ (#LANG)] no-js ie ie8"> <![endif]-->
<!--[if IE 9 ]> <html dir="#LANG_DIR" lang="#LANG" xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" class="[(#LANG_DIR)][ (#LANG)] no-js ie ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html dir="#LANG_DIR" lang="#LANG" xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" class="[(#LANG_DIR)][ (#LANG)] no-js"> <!--<![endif]-->
<head>
<script type='text/javascript'>/*<![CDATA[*/(function(H){H.className=H.className.replace(/\bno-js\b/,'js')})(document.documentElement);/*]]>*/</script>
<title>[(#TITRE|couper{80}|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title>
[<meta name="description" content="(#INTRODUCTION{150}|attribut_html)" />]
[<link rel="canonical" href="(#URL_ARTICLE|url_absolue)" />]
<INCLURE{fond=inclure/head} />
</head>
<body class="pas_surlignable page_article">
<div class="page">
<INCLURE{fond=inclure/header,id_article} />
<INCLURE{fond=inclure/nav,env} />
<div class="main">
[(#REM) Contenu principal : contenu de l'article ]
<div class="wrapper hfeed">
<div class="content hentry" id="content">
<p class="arbo"><a href="#URL_SITE_SPIP/"><:accueil_site:></a>
<BOUCLE_ariane(HIERARCHIE){id_article}>
[(#ID_PARENT|!={0}|oui) &gt; <a href="#URL_RUBRIQUE">[(#TITRE|couper{80})]</a>]
</BOUCLE_ariane>[ &gt; <strong class="on">(#TITRE|couper{80})</strong>]</p>
<div class="cartouche">
[<p class="#EDIT{surtitre} surtitre">(#SURTITRE)</p>]
<h1 class="#EDIT{titre} surlignable">[(#LOGO_ARTICLE_RUBRIQUE|image_reduire{40,*}) ]#TITRE</h1>
[<p class="#EDIT{soustitre} soustitre">(#SOUSTITRE)</p>]
<p class="info-publi"><abbr class="published" title="[(#DATE|date_iso)]">[(#DATE|nom_jour) ][(#DATE|affdate)]</abbr>[<span class="sep">, </span><span class="auteurs"><:par_auteur:> (#LESAUTEURS)</span>]</p>
[(#REM) Inclure le modele des liens de traductions ]
</div>
[<div class="#EDIT{chapo} chapo surlignable">(#CHAPO|image_reduire{500,*})</div>]
[<div class="#EDIT{texte} texte surlignable">(#TEXTE|image_reduire{500,*})</div>]
[<hr /><p class="#EDIT{hyperlien} hyperlien"><:voir_en_ligne:> : <a href="(#URL_SITE)">[(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]</a></p>]
[<div class="#EDIT{ps} ps surlignable"><hr />(#PS|image_reduire{500,*})</div>]
[(#REM) Gestion du portfolio et des documents ]
[(#INCLURE{fond=inclure/documents,id_article, env})]
[(#REM) Petition :
La petition ayant une PAGINATION il faut absolument {env}
et pourquoi pas ajax
][(#PETITION|oui)<INCLURE{fond=inclure/petition,id_article,env,ajax} />]
[<div class="notes"><hr />(#NOTES)</div>]
[(#REM) Forum de l'article ]
<a href="#forum" name="forum" id="forum"></a>
<INCLURE{fond=inclure/forum,id_article} />
[<h2><:forum:form_pet_message_commentaire:></h2>
(#FORMULAIRE_FORUM)]
</div><!--.content-->
</div><!--.wrapper-->
<div class="aside">
<INCLURE{fond=inclure/navsub, id_rubrique} />
[(#REM) Articles dans la meme rubrique ]
<B_articles_rubrique>
<div class="menu">
<h2><:meme_rubrique:></h2>
<ul>
<BOUCLE_articles_rubrique(ARTICLES) {id_rubrique} {!par date} {0,10}>
<li><a href="#URL_ARTICLE"[ class="(#EXPOSE)"]>#TITRE</a></li>
</BOUCLE_articles_rubrique>
</ul>
</div>
</B_articles_rubrique>
[(#REM) Menu de navigation mots-cles ]
#MODELE{article_mots}
</div><!--.aside-->
</div><!--.main-->
<INCLURE{fond=inclure/footer,self=#SELF} />
</div><!--.page-->
</body>
</html>
</BOUCLE_principale>[(#INCLURE{fond=404, erreur=<:aucun_article:>})]
<//B_principale>

22
formulaires/configurer_multilingue.html

@ -0,0 +1,22 @@
<div class="formulaire_spip formulaire_configurer formulaire_#FORM">
<h3 class="titrem"><:multilingue:cfg_titre_parametrages:></h3>
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
<form method="post" action="#ENV{action}">
<div>
#ACTION_FORMULAIRE{#ENV{action}}
<ul>
[(#SAISIE{input, exemple,
label=<:multilingue:cfg_exemple:>,
explication=<:multilingue:cfg_exemple_explication:>})]
</ul>
<input type="hidden" name="_meta_casier" value="multilingue" />
<p class="boutons"><span class="image_loading">&nbsp;</span><input type="submit" class="submit" value="<:bouton_enregistrer:>" /></p>
</div>
</form>
</div>

30
inc-rubriques.html

@ -0,0 +1,30 @@
[(#REM)
Barre de navigation, ouverte sur la hierarchie courante
On fait un plan, et, quand on avance vers une rubrique,
on l'affiche si son parent est expose ou est la racine du site. ]
<B_rubriques>
<div class="menu rubriques">
<h2><:rubriques:></h2>
<ul>
<BOUCLE_rubriques(RUBRIQUES) {racine} {lang}>
<BOUCLE_racines(RUBRIQUES){id_parent}{par num titre, titre}>
<li>
<a href="#URL_RUBRIQUE"[ class="(#EXPOSE)"]>[(#TITRE|couper{80})]</a>
<B_sous_rubriques>
<ul>
<BOUCLE_sous_rubriques(RUBRIQUES) {id_parent} {par num titre, titre}><BOUCLE_test_expose(RUBRIQUES) {id_enfant}>#EXPOSE{' '}</BOUCLE_test_expose>
<li><a href="#URL_RUBRIQUE"[ class="(#EXPOSE)"]>[(#TITRE|couper{80})]</a><BOUCLE_re(BOUCLE_sous_rubriques)></BOUCLE_re> </li>
</B_test_expose></BOUCLE_sous_rubriques>
</ul>
</B_sous_rubriques>
</li>
</BOUCLE_racines>
</BOUCLE_rubriques>
</ul>
</div>
</B_rubriques>

9
inclure/header.html

@ -0,0 +1,9 @@
<div class="clearfix header">
#FORMULAIRE_RECHERCHE
[(#ENV{home,'non'}|=={oui}|?{
<h1 id="logo">[(#LOGO_SITE_SPIP|image_reduire{40,*}) ]#NOM_SITE_SPIP</h1>
,
<strong class="h1" id="logo"><a rel="start home" href="[(#URL_SITE_SPIP)]" title="<:accueil_site:>">[(#LOGO_SITE_SPIP|image_reduire{40,*}) ]#NOM_SITE_SPIP</a></strong>
})][<p id="slogan">(#SLOGAN_SITE_SPIP)</p>]
<INCLURE{fond=inclure/menu_langues,env}/>
</div>

25
inclure/menu_langues.html

@ -0,0 +1,25 @@
#CACHE{0}
<BOUCLE_article(ARTICLES){id_article}>
<B_traductions>
<p class="traductions">
<BOUCLE_traductions(ARTICLES) {traduction} {par lang}{'|'}>[(#TOTAL_BOUCLE|>{1}|?{' '})
<span lang="#LANG" xml:lang="#LANG" dir="#LANG_DIR"[ class="(#EXPOSE)"]>
[(#EXPOSE{'',<a href="[(#URL_ACTION_AUTEUR{'converser',#LANG&var_lang=#LANG,[(#URL_ARTICLE|parametre_url{lang,'','&'})]}|parametre_url{arg,''})]" rel="alternate" hreflang="#LANG"[ title="(#TITRE|attribut_html|couper{80})"]>})]
[(#LANG|traduire_nom_langue)]#EXPOSE{'',</a>}</span>
]</BOUCLE_traductions>
</p>
</B_traductions>
</BOUCLE_article>
<B_rubriques>
<p class="traductions">
<BOUCLE_rubriques(RUBRIQUES){racine}{'|'}>
<span lang="#LANG" xml:lang="#LANG" dir="#LANG_DIR" [(#ENV{lang}|=={#LANG}|oui) class="on"]>
[(#ENV{lang}|=={#LANG}|non)<a href="[(#URL_ACTION_AUTEUR{'converser',#LANG&var_lang=#LANG,[(#URL_RUBRIQUE|parametre_url{lang,'','&'})]}|parametre_url{arg,''})]" rel="alternate" hreflang="#LANG"[ title="(#TITRE|attribut_html|couper{80})"]>[(#LANG|traduire_nom_langue)]</a>]
[(#ENV{lang}|=={#LANG}|oui)[(#LANG|traduire_nom_langue)]]
</span>
</BOUCLE_rubriques>
</p>
</B_rubriques>
<//B_article>

11
inclure/nav.html

@ -0,0 +1,11 @@
<BOUCLE_nav(RUBRIQUES) {racine} {par num titre}{!par date}{lang}>
<B_enfants>
<div class="nav clearfix[ (#TOTAL_BOUCLE|=={1}|oui)none]" id="nav">
<ul>
<BOUCLE_enfants(RUBRIQUES){id_parent}>
<li[ class="(#EXPOSE)"]><a href="#URL_RUBRIQUE">#TITRE</a></li>
</BOUCLE_enfants>
</ul>
</div>
</B_enfants>
</BOUCLE_nav>

170
inclure/rubrique_spip3.html

@ -0,0 +1,170 @@
<BOUCLE_principale(RUBRIQUES) {id_rubrique}>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
[(#REM) Cf.: http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/
]<!--[if lt IE 7 ]> <html dir="#LANG_DIR" lang="#LANG" xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" class="[(#LANG_DIR)][ (#LANG)] no-js ie ie6"> <![endif]-->
<!--[if IE 7 ]> <html dir="#LANG_DIR" lang="#LANG" xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" class="[(#LANG_DIR)][ (#LANG)] no-js ie ie7"> <![endif]-->
<!--[if IE 8 ]> <html dir="#LANG_DIR" lang="#LANG" xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" class="[(#LANG_DIR)][ (#LANG)] no-js ie ie8"> <![endif]-->
<!--[if IE 9 ]> <html dir="#LANG_DIR" lang="#LANG" xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" class="[(#LANG_DIR)][ (#LANG)] no-js ie ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html dir="#LANG_DIR" lang="#LANG" xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" class="[(#LANG_DIR)][ (#LANG)] no-js"> <!--<![endif]-->
<head>
<script type='text/javascript'>/*<![CDATA[*/(function(H){H.className=H.className.replace(/\bno-js\b/,'js')})(document.documentElement);/*]]>*/</script>
<title>[(#TITRE|couper{80}|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title>
[<meta name="description" content="(#INTRODUCTION{150}|textebrut)" />]
[<link rel="canonical" href="(#URL_RUBRIQUE|url_absolue)" />]
<INCLURE{fond=inclure/head} />
[(#REM) Lien vers le flux RSS des articles la rubrique ]
<link rel="alternate" type="application/rss+xml" title="<:syndiquer_rubrique:>" href="[(#URL_PAGE{backend}|parametre_url{id_rubrique,#ID_RUBRIQUE})]" />
</head>
<body class="pas_surlignable page_rubrique">
<div class="page">
<INCLURE{fond=inclure/header,id_rubrique} />
<INCLURE{fond=inclure/nav,env} />
<div class="main">
[(#REM) Contenu principal : contenu de la rubrique ]
<div class="wrapper">
<div class="content" id="content">
<p class="arbo">
[(#ID_PARENT|!={0}|oui)<a href="#URL_SITE_SPIP/"><:accueil_site:></a>]
<BOUCLE_ariane(HIERARCHIE){id_rubrique}>
[(#ID_PARENT|!={0}|oui) &gt; <a href="#URL_RUBRIQUE">[(#TITRE|couper{80})]</a>]
</BOUCLE_ariane>
[(#ID_PARENT|!={0}|?{[ &gt; <strong class="on">(#TITRE|couper{80})</strong>],<strong class="on"><:accueil_site:></strong>})]</p><!--.arbo-->
<div class="cartouche">
<h1 class="#EDIT{titre}">[(#LOGO_RUBRIQUE|image_reduire{40,*}) ]#TITRE</h1>
</div>
[<div class="#EDIT{texte} texte">(#TEXTE)</div>]
[(#REM) Articles de la rubrique ]
<B_articles>
<div class="menu menu_articles">
#ANCRE_PAGINATION
<ul>
<BOUCLE_articles(ARTICLES) {id_rubrique} {!par date} {pagination}>
<li>
<strong><a href="#URL_ARTICLE">[(#LOGO_ARTICLE_RUBRIQUE|image_reduire{40,*}) ]#TITRE</a></strong>
<br /><small>[(#DATE|affdate_jourcourt)][, <:par_auteur:> (#LESAUTEURS|supprimer_tags)]</small>
</li>
</BOUCLE_articles>
</ul>
[<p class="pagination">(#PAGINATION)</p>]
</div>
</B_articles>
[(#REM) Si aucun article, affiche un plan de la rubrique ]
<B_sous_rubriques>
<div class="menu menu_rubriques">
<h2><:sous_rubriques:></h2>
<ul class="spip">
<BOUCLE_sous_rubriques(RUBRIQUES) {id_parent} {par num titre}{!par date}>
<li>
<a href="#URL_RUBRIQUE">#TITRE</a>
[(#REM) Une boucle recursive pour le mini plan]
<B_miniplan>
<ul>
<BOUCLE_miniplan(RUBRIQUES) {id_parent} {par num titre}{!par date}>
<li>
<a href="#URL_RUBRIQUE">#TITRE</a>
<BOUCLE_m2(BOUCLE_miniplan)></BOUCLE_m2>
</li>
</BOUCLE_miniplan>
</ul>
</B_miniplan>
</li>
</BOUCLE_sous_rubriques>
</ul>
</div>
</B_sous_rubriques>
<//B_articles>[(#REM) supprimer pour toujours avoir le miniplan]
[(#REM) Documents joints a la rubrique ]
<B_documents_joints>
<div class="menu" id="documents_joints">
<h2><:medias:titre_documents_joints:></h2>
<ul class="spip">
<BOUCLE_documents_joints(DOCUMENTS) {id_rubrique} {mode=document} {par num titre, date} {doublons}>
<li>
<a href="#URL_DOCUMENT" type="#MIME_TYPE" class="spip_doc[ (#EXTENSION|attribut_html)]"><strong class="#EDIT{titre} titre">[(#TITRE|sinon{[(#FICHIER|basename|couper{80})]})]</strong>
<small class="info_document">([<abbr title="<:info_document:> #TYPE_DOCUMENT" class="ext">(#EXTENSION|strtoupper)</abbr> - ][<span>(#TAILLE|taille_en_octets)</span>])</small></a>
[<div class="#EDIT{descriptif} descriptif">(#DESCRIPTIF)</div>]
</li>
</BOUCLE_documents_joints>
</ul>
</div><!--#documents_joints-->
</B_documents_joints>
[<div class="notes"><hr />(#NOTES)</div>]
</div><!--.content-->
</div><!--.wrapper-->
<div class="aside">
<INCLURE{fond=inclure/navsub, id_rubrique} />
[(#REM) Menu de navigation mots-cles ]
<B_mots>
<div class="menu">
<h2><:mots_clefs:></h2>
<ul>
<BOUCLE_mots(MOTS) {id_rubrique} {par titre}>
<li><a href="#URL_MOT" rel="tag">#TITRE</a></li>
</BOUCLE_mots>
</ul>
</div>
</B_mots>
[(#REM) Breves du secteur ]
<B_breves>
<div class="menu menu_breves">
<h2><:breves:breves:></h2>
<ul>
<BOUCLE_breves(BREVES) {id_rubrique} {!par date} {0,5}>
<li>[(#DATE|affdate_jourcourt) &ndash; ]<a href="#URL_BREVE">#TITRE</a></li>
</BOUCLE_breves>
</ul>
</div>
</B_breves>
[(#REM) Sites de la rubrique ]
<B_sites>
<div class="menu">
<h2><:sur_web:></h2>
<ul>
<BOUCLE_sites(SITES) {id_rubrique} {par nom_site}>
<li>
<a href="[(#ID_SYNDIC|generer_url_entite{site,'','',#CONNECT})]">#NOM_SITE</a>
<B_syndic>
<ul>
<BOUCLE_syndic(SYNDIC_ARTICLES) {id_syndic} {age<180} {!par date} {0,3}>
<li><a href="#URL_ARTICLE" class="spip_out">#TITRE</a></li>
</BOUCLE_syndic>
</ul>
</B_syndic>
</li>
</BOUCLE_sites>
</ul>
</div>
</B_sites>
[(#REM) Proposer un site ]
#FORMULAIRE_SITE
</div><!--.aside-->
</div><!--.main-->
<INCLURE{fond=inclure/footer,self=#SELF} />
</div><!--.page-->
</body>
</html>
</BOUCLE_principale>[(#INCLURE{fond=404, erreur=<:aucune_rubrique:>})]
<//B_principale>

20
lang/multilingue_fr.php

@ -0,0 +1,20 @@
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
if (!defined('_ECRIRE_INC_VERSION')) return;
$GLOBALS[$GLOBALS['idx_lang']] = array(
// M
'multilingue_titre' => 'Site multilingue facile',
// C
'cfg_exemple' => 'Exemple',
'cfg_exemple_explication' => 'Explication de cet exemple',
'cfg_titre_parametrages' => 'Paramétrages',
// T
'titre_page_configurer_multilingue' => 'multlinguisme',
);
?>

32
lang/paquet-multilingue_fr.php

@ -0,0 +1,32 @@
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
if (!defined('_ECRIRE_INC_VERSION')) return;
$GLOBALS[$GLOBALS['idx_lang']] = array(
// M
'multilingue_description' => 'Met en place un site multilingue avec une langue par secteur.
Le plugin force l\'installation de, plusieurs plugin
- [Traduction entre rubriques->http://plugins.spip.net/tradrub.html]
- [Langue préférée par l’internaute ->http://www.spip-contrib.net/Plugin-Langue-preferee-par-l-internaute]
- [Traductions de rubriques autrement->http://www.spip-contrib.net/Traductions-de-rubriques-autrement-3]
- [Traductions d’articles autremen->http://www.spip-contrib.net/Traductions-d-articles-autrement-3]
Sous Spip 2 ou 2.1 il es recommendable d\'installer auparavant le plugin [Step->http://www.spip-contrib.net/STEP-Systeme-de-Telechargements-de-Plugins], puis installer ce plugin ce qui forcera également l\'installation de tous les plugin nécessaires.
Le plugin modifie également quelques squelettes (rubriques et articles) et quelques noisettes de bases.
Une fois installé les plugins nécessaires, il vous suffira de déterminer les langues du site dans "Configuration"->"Mulilinguisme/Gestion des langues
et voilà votre site est multilingue
',
'multilingue_nom' => 'Site multilingue facile',
'multilingue_slogan' => 'Créer facilement un site multilingue',
);
?>

21
paquet.xml

@ -0,0 +1,21 @@
<paquet
prefix="multilingue"
categorie="edition"
version="0.0.1"
etat="test"
compatibilite="[2.0.0;3.0.*]"
logo="prive/themes/spip/images/multilingue-64.png"
documentation=""
>
<nom>Site multilingue facile</nom>
<!-- cette balise peut être présente plusieurs fois s'il y a plusieurs auteurs -->
<auteur lien='http://www.mychacra.net/'>Rainer Müller</auteur>
<licence>GNU/GPL</licence>
<necessite nom="tradrub" compatibilite="[3.0.0;[" />
<necessite nom="languepreferee" compatibilite="[0.4.0;[" />
<necessite nom="trad_rub" compatibilite="[1.1.0;]" />
<necessite nom="taa" compatibilite="[1.1.0;[" />
</paquet>

39
plugin.xml

@ -0,0 +1,39 @@
<plugin>
<nom><multi>[fr]Site multilingue facile</multi></nom>
<slogan>Créer facilement un site multilingue</slogan>
<auteur>[Rainer M&uuml;ller->http://www.mychacra.net]</auteur>
<version>0.0.1</version>
<etat>test</etat>
<description>
<multi>
[fr]
Met en place un site multilingue avec une langue par secteur.
Le plugin force l\'installation de, plusieurs plugin
- [Traduction entre rubriques->http://plugins.spip.net/tradrub.html]
- [Langue préférée par l’internaute ->http://www.spip-contrib.net/Plugin-Langue-preferee-par-l-internaute]
- [Traductions de rubriques autrement->http://www.spip-contrib.net/Traductions-de-rubriques-autrement-3]
- [Traductions d’articles autremen->http://www.spip-contrib.net/Traductions-d-articles-autrement-3]
Sous Spip 2 ou 2.1 il es recommendable d\'installer auparavant le plugin [Step->http://www.spip-contrib.net/STEP-Systeme-de-Telechargements-de-Plugins], puis d'installer ce plugin ce qui forcera également l\'installation de tous les autres plugin nécessaires.
Le plugin modifie également quelques squelettes (rubriques et articles) et quelques noisettes de bases.
Une fois installé les plugins nécessaires, il vous suffira de déterminer les langues du site dans "Configuration"->"Mulilinguisme/Gestion des langues"
et voilà votre site est multilingue
</multi>
</description>
<lien></lien>
<licence>GNU/GPL</licence>
<prefix>multilingue</prefix>
<icon>prive/themes/spip/images/multilingue-64.png</icon>
<categorie>edition</categorie>
<necessite id="SPIP" version="[2.0.0;3.1.99]" />
<necessite id="tradrub" version="[2.1.1;]" />
<necessite id="languepreferee" version="[0.4.0;]" />
<necessite id="trad_rub" version='[0.1.6;]'/>
<necessite id="taa" version='[0.3.4;]'/>
<traduire gestionnaire="salvatore" module="multilingue" reference="fr" />
</plugin>

37
plugin_multilinguisme.geany

@ -0,0 +1,37 @@
[indentation]
indent_width=4
indent_type=1
indent_hard_tab_width=8
detect_indent=false
detect_indent_width=false
indent_mode=2
[project]
name=plugin_multilinguisme
base_path=/home/abelass/www/spip_2.1/plugins/multilingue/
description=
file_patterns=
[long line marker]
long_line_behaviour=1
long_line_column=72
[files]
current_page=6
FILE_NAME_0=743;XML;0;16;1;1;1;/home/abelass/www/spip3/plugins/multilingue/paquet.xml;0;4
FILE_NAME_1=0;PHP;0;16;1;1;1;/home/abelass/www/spip3/plugins/multilingue/lang/paquet-multilingue_fr.php;0;4
FILE_NAME_2=268;HTML;0;16;1;1;1;/home/abelass/www/spip3/plugins/multilingue/inclure/header.html;0;4
FILE_NAME_3=478;HTML;0;16;1;1;1;/home/abelass/www/spip3/plugins/multilingue/inclure/menu_langues.html;0;4
FILE_NAME_4=300;HTML;0;16;1;1;1;/home/abelass/www/spip3/plugins/multilingue/inclure/nav.html;0;4
FILE_NAME_5=338;HTML;0;16;1;1;1;/home/abelass/www/spip3/plugins/multilingue/article.html;0;4
FILE_NAME_6=298;HTML;0;16;1;1;1;/home/abelass/www/spip3/plugins/multilingue/rubrique.html;0;4
[VTE]
last_dir=/home/abelass
[gproject]
source_patterns=*.c;*.C;*.cpp;*.cxx;*.c++;*.cc;
header_patterns=*.h;*.H;*.hpp;*.hxx;*.h++;*.hh;*.m;
ignored_dirs_patterns=.*;CVS;
generate_tags=false

7
prive/squelettes/contenu/configurer_multilingue.html

@ -0,0 +1,7 @@
[(#AUTORISER{configurer,_multilingue}|sinon_interdire_acces)]
<h1 class="grostitre"><:multilingue:titre_page_configurer_multilingue:></h1>
<div class="ajax">
#FORMULAIRE_CONFIGURER_MULTILINGUE
</div>

BIN
prive/themes/spip/images/multilingue-128.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
prive/themes/spip/images/multilingue-32.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
prive/themes/spip/images/multilingue-64.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

4
rubrique.html

@ -0,0 +1,4 @@
[(#REM) Choisis le squelettes selon la version spip, les squelettes, inclus puevent être utilisé tels quels, il suffit de renommer le squelette correspondant à votre version]
[(#SPIP_VERSION|version_compare{2.1.99, >}|non)<INCLURE{fond=rubrique_spip2,env}/>]
[(#SPIP_VERSION|version_compare{2.1.99, >}|oui)<INCLURE{fond=rubrique_spip3,env}/>]

182
rubrique_spip2.html

@ -0,0 +1,182 @@
[(#REM)
Un cache plus court, pour la boucle syndic_articles
]#CACHE{3600}
<BOUCLE_principale(RUBRIQUES) {id_rubrique}>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR">
<head>
<title>[(#TITRE|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title>
[<meta name="description" content="(#INTRODUCTION{150}|textebrut)" />]
<INCLURE{fond=inc-head}>
[(#REM) Lien vers le flux RSS des articles la rubrique ]
<link rel="alternate" type="application/rss+xml" title="<:syndiquer_rubrique:>" href="[(#URL_PAGE{backend}|parametre_url{id_rubrique,#ID_RUBRIQUE})]" />
</head>
<body class="page_rubrique">
<div id="page">
[(#REM) Entete de la page + titre du site ]
<INCLURE{fond=inc-entete}>
[(#REM) Contenu principal : contenu de la rubrique ]
<div id="conteneur">
<div id="contenu">
[(#REM) Fil d'Ariane ]
<div id="hierarchie">
[(#ID_PARENT|!={0}|oui)<a href="#URL_SITE_SPIP/"><:accueil_site:></a>]
<BOUCLE_ariane(HIERARCHIE){id_rubrique}>
[(#ID_PARENT|!={0}|oui) &gt; <a href="#URL_RUBRIQUE">[(#TITRE|couper{80})]</a>]
</BOUCLE_ariane>
[(#ID_PARENT|!={0}|?{[ &gt; <strong class="on">(#TITRE|couper{80})</strong>],<strong class="on"><:accueil_site:></strong>})]
</div><!--.arbo-->
<div class="cartouche">
[(#LOGO_RUBRIQUE|image_reduire{200,200})]
<h1 class="#EDIT{titre}">#TITRE</h1>
[<p><small><:dernier_ajout:> : (#DATE|affdate_jourcourt).</small></p>]
</div>
[<div class="#EDIT{texte} chapo">(#TEXTE)</div>]
[(#REM) Articles de la rubrique ]
<B_articles>
<div class="menu articles">
#ANCRE_PAGINATION
<h2><:articles_rubrique:></h2>
<ul>
<BOUCLE_articles(ARTICLES) {id_rubrique} {par date}{inverse} {pagination}>
<li>
[(#LOGO_ARTICLE{#URL_ARTICLE}|image_reduire{150,100})]
<h3><a href="#URL_ARTICLE">#TITRE</a></h3>
<small>[(#DATE|affdate_jourcourt)][, <:par_auteur:> (#LESAUTEURS)]</small>
</li>
</BOUCLE_articles>
</ul>
[<p class="pagination">(#PAGINATION)</p>]
</div>
</B_articles>
[(#REM) Si aucun article, affiche un plan de la rubrique ]
<B_sous_rubriques>
<div class="menu rubriques">
<h2><:sous_rubriques:></h2>
<ul>
<BOUCLE_sous_rubriques(RUBRIQUES) {id_parent} {par num titre, titre}>
<li>
<a href="#URL_RUBRIQUE">[(#TITRE)]</a>
[(#REM) Une boucle recursive pour le mini plan]
<B_miniplan>
<ul>
<BOUCLE_miniplan(RUBRIQUES) {id_parent} {par num titre, titre}>
<li>
<a href="#URL_RUBRIQUE">[(#TITRE)]</a>
<BOUCLE_m2(BOUCLE_miniplan)></BOUCLE_m2>
</li>
</BOUCLE_miniplan>
</ul>
</B_miniplan>
</li>
</BOUCLE_sous_rubriques>
</ul>
</div>
</B_sous_rubriques>
<//B_articles>[(#REM) supprimer pour toujours avoir le miniplan]
[(#REM) Documents joints a la rubrique ]
<B_documents_joints>
<div class="menu" id="documents_joints">
<h2><:titre_documents_joints:></h2>
<ul>
<BOUCLE_documents_joints(DOCUMENTS) {id_rubrique} {mode=document} {par num titre, date} {doublons}>
<li>
<strong><a href="#URL_DOCUMENT" title="<:bouton_telecharger:>" type="#MIME_TYPE">[(#TITRE|sinon{<:info_document:>})]</a></strong>
<small>(#TYPE_DOCUMENT[ &ndash; (#TAILLE|taille_en_octets)])</small>
#DESCRIPTIF
</li>
</BOUCLE_documents_joints>
</ul>
</div>
</B_documents_joints>
[(#REM) Breves du secteur ]
<B_breves>
<div class="menu">
#ANCRE_PAGINATION
<h2><:breves:></h2>
<ul>
<BOUCLE_breves(BREVES) {id_rubrique} {par date}{inverse} {pagination 5}>
<li>[(#DATE|affdate_jourcourt) &ndash; ]<a href="#URL_BREVE">#TITRE</a></li>
</BOUCLE_breves>
</ul>
[<p class="pagination">(#PAGINATION)</p>]
</div>
</B_breves>
[(#REM) Sites de la rubrique ]
<B_sites>
<div class="menu">
<h2><:sur_web:></h2>
<ul>
<BOUCLE_sites(SITES) {id_rubrique} {par nom_site}>
<li>
<a href="[(#ID_SYNDIC|generer_url_entite{site,'','',#CONNECT})]">#NOM_SITE</a>
<B_syndic>
<ul>
<BOUCLE_syndic(SYNDIC_ARTICLES) {id_syndic} {age<180} {par date}{inverse} {0,3}>
<li><a href="#URL_ARTICLE" class="spip_out">#TITRE</a></li>
</BOUCLE_syndic>
</ul>
</B_syndic>
</li>
</BOUCLE_sites>
</ul>
</div>
</B_sites>
[(#REM) Proposer un site ]
#FORMULAIRE_SITE
[<div class="notes"><h2><:info_notes:></h2>(#NOTES)</div>]
</div><!--#contenu-->
</div><!--#conteneur-->
[(#REM) Menu de navigation laterale ]
<div id="navigation">
[(#REM) Menu de navigation par rubriques ]
<INCLURE{fond=inc-rubriques}{id_rubrique}>
#FORMULAIRE_RECHERCHE
</div><!--#navigation-->
[(#REM) Menu de navigation laterale ]
<div id="extra">
[(#REM) Menu de navigation mots-cles ]
<B_mots>
<div class="menu">
<h2><:mots_clefs:></h2>
<ul>
<BOUCLE_mots(MOTS) {id_rubrique} {par titre}>
<li><a href="#URL_MOT" rel="tag">#TITRE</a></li>
</BOUCLE_mots>
</ul>
</div>
</B_mots>
</div><!--#extra-->
[(#REM) Pied de page ]
<INCLURE{fond=inc-pied}{skel=#SQUELETTE}>
</div><!--#page-->
</body>
</html>
</BOUCLE_principale>

171
rubrique_spip3.html

@ -0,0 +1,171 @@
<BOUCLE_principale(RUBRIQUES) {id_rubrique}>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
[(#REM) Cf.: http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/
]<!--[if lt IE 7 ]> <html dir="#LANG_DIR" lang="#LANG" xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" class="[(#LANG_DIR)][ (#LANG)] no-js ie ie6"> <![endif]-->
<!--[if IE 7 ]> <html dir="#LANG_DIR" lang="#LANG" xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" class="[(#LANG_DIR)][ (#LANG)] no-js ie ie7"> <![endif]-->
<!--[if IE 8 ]> <html dir="#LANG_DIR" lang="#LANG" xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" class="[(#LANG_DIR)][ (#LANG)] no-js ie ie8"> <![endif]-->
<!--[if IE 9 ]> <html dir="#LANG_DIR" lang="#LANG" xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" class="[(#LANG_DIR)][ (#LANG)] no-js ie ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html dir="#LANG_DIR" lang="#LANG" xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" class="[(#LANG_DIR)][ (#LANG)] no-js"> <!--<![endif]-->
<head>
<script type='text/javascript'>/*<![CDATA[*/(function(H){H.className=H.className.replace(/\bno-js\b/,'js')})(document.documentElement);/*]]>*/</script>
<title>[(#TITRE|couper{80}|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title>
[<meta name="description" content="(#INTRODUCTION{150}|textebrut)" />]
[<link rel="canonical" href="(#URL_RUBRIQUE|url_absolue)" />]
<INCLURE{fond=inclure/head} />
[(#REM) Lien vers le flux RSS des articles la rubrique ]
<link rel="alternate" type="application/rss+xml" title="<:syndiquer_rubrique:>" href="[(#URL_PAGE{backend}|parametre_url{id_rubrique,#ID_RUBRIQUE})]" />
</head>
<body class="pas_surlignable page_rubrique">
<div class="page">
<INCLURE{fond=inclure/header} />
<INCLURE{fond=inclure/nav,env} />
<div class="main">
[(#REM) Contenu principal : contenu de la rubrique ]
<div class="wrapper">
<div class="content" id="content">
<p class="arbo">
[(#ID_PARENT|!={0}|oui)<a href="#URL_SITE_SPIP/"><:accueil_site:></a>]
<BOUCLE_ariane(HIERARCHIE){id_rubrique}>
[(#ID_PARENT|!={0}|oui) &gt; <a href="#URL_RUBRIQUE">[(#TITRE|couper{80})]</a>]
</BOUCLE_ariane>
[(#ID_PARENT|!={0}|?{[ &gt; <strong class="on">(#TITRE|couper{80})</strong>],<strong class="on"><:accueil_site:></strong>})]
</p><!--.arbo-->
<div class="cartouche">
<h1 class="#EDIT{titre}">[(#LOGO_RUBRIQUE|image_reduire{40,*}) ]#TITRE</h1>
</div>
[<div class="#EDIT{texte} texte">(#TEXTE)</div>]
[(#REM) Articles de la rubrique ]
<B_articles>
<div class="menu menu_articles">
#ANCRE_PAGINATION
<ul>
<BOUCLE_articles(ARTICLES) {id_rubrique} {!par date} {pagination}>
<li>
<strong><a href="#URL_ARTICLE">[(#LOGO_ARTICLE_RUBRIQUE|image_reduire{40,*}) ]#TITRE</a></strong>
<br /><small>[(#DATE|affdate_jourcourt)][, <:par_auteur:> (#LESAUTEURS|supprimer_tags)]</small>
</li>
</BOUCLE_articles>
</ul>
[<p class="pagination">(#PAGINATION)</p>]
</div>
</B_articles>
[(#REM) Si aucun article, affiche un plan de la rubrique ]
<B_sous_rubriques>
<div class="menu menu_rubriques">
<h2><:sous_rubriques:></h2>
<ul class="spip">
<BOUCLE_sous_rubriques(RUBRIQUES) {id_parent} {par num titre}{!par date}>
<li>
<a href="#URL_RUBRIQUE">#TITRE</a>
[(#REM) Une boucle recursive pour le mini plan]
<B_miniplan>
<ul>
<BOUCLE_miniplan(RUBRIQUES) {id_parent} {par num titre}{!par date}>
<li>
<a href="#URL_RUBRIQUE">#TITRE</a>
<BOUCLE_m2(BOUCLE_miniplan)></BOUCLE_m2>
</li>
</BOUCLE_miniplan>
</ul>
</B_miniplan>
</li>
</BOUCLE_sous_rubriques>
</ul>
</div>
</B_sous_rubriques>
<//B_articles>[(#REM) supprimer pour toujours avoir le miniplan]
[(#REM) Documents joints a la rubrique ]
<B_documents_joints>
<div class="menu" id="documents_joints">
<h2><:medias:titre_documents_joints:></h2>
<ul class="spip">
<BOUCLE_documents_joints(DOCUMENTS) {id_rubrique} {mode=document} {par num titre, date} {doublons}>
<li>
<a href="#URL_DOCUMENT" type="#MIME_TYPE" class="spip_doc[ (#EXTENSION|attribut_html)]"><strong class="#EDIT{titre} titre">[(#TITRE|sinon{[(#FICHIER|basename|couper{80})]})]</strong>
<small class="info_document">([<abbr title="<:info_document:> #TYPE_DOCUMENT" class="ext">(#EXTENSION|strtoupper)</abbr> - ][<span>(#TAILLE|taille_en_octets)</span>])</small></a>
[<div class="#EDIT{descriptif} descriptif">(#DESCRIPTIF)</div>]
</li>
</BOUCLE_documents_joints>
</ul>
</div><!--#documents_joints-->
</B_documents_joints>
[<div class="notes"><hr />(#NOTES)</div>]
</div><!--.content-->
</div><!--.wrapper-->
<div class="aside">
<INCLURE{fond=inclure/navsub, id_rubrique} />
[(#REM) Menu de navigation mots-cles ]
<B_mots>
<div class="menu">
<h2><:mots_clefs:></h2>
<ul>
<BOUCLE_mots(MOTS) {id_rubrique} {par titre}>
<li><a href="#URL_MOT" rel="tag">#TITRE</a></li>
</BOUCLE_mots>
</ul>
</div>
</B_mots>
[(#REM) Breves du secteur ]
<B_breves>
<div class="menu menu_breves">
<h2><:breves:breves:></h2>
<ul>
<BOUCLE_breves(BREVES) {id_rubrique} {!par date} {0,5}>
<li>[(#DATE|affdate_jourcourt) &ndash; ]<a href="#URL_BREVE">#TITRE</a></li>
</BOUCLE_breves>
</ul>
</div>
</B_breves>
[(#REM) Sites de la rubrique ]
<B_sites>
<div class="menu">
<h2><:sur_web:></h2>
<ul>
<BOUCLE_sites(SITES) {id_rubrique} {par nom_site}>
<li>
<a href="[(#ID_SYNDIC|generer_url_entite{site,'','',#CONNECT})]">#NOM_SITE</a>
<B_syndic>
<ul>
<BOUCLE_syndic(SYNDIC_ARTICLES) {id_syndic} {age<180} {!par date} {0,3}>
<li><a href="#URL_ARTICLE" class="spip_out">#TITRE</a></li>
</BOUCLE_syndic>
</ul>
</B_syndic>
</li>
</BOUCLE_sites>
</ul>
</div>
</B_sites>
[(#REM) Proposer un site ]
#FORMULAIRE_SITE
</div><!--.aside-->
</div><!--.main-->
<INCLURE{fond=inclure/footer,self=#SELF} />
</div><!--.page-->
</body>
</html>
</BOUCLE_principale>[(#INCLURE{fond=404, erreur=<:aucune_rubrique:>})]
<//B_principale>

1
sommaire.html

@ -0,0 +1 @@
#LANGUE_PREFEREE_SECTEUR_REDIRECTION
Loading…
Cancel
Save