Browse Source

preparer une migration spip 3

git-svn-id: svn://svn.spip.net/spip-zone/_galaxie_/party.spip.net@60207 ac52e18a-acf5-0310-9fe8-c4428f23b10a
old_history/pre_trunk
cedric@yterium.com 8 years ago
parent
commit
c805798df3
91 changed files with 4616 additions and 0 deletions
  1. +1
    -0
      squelettes/2012/agenda.html
  2. +99
    -0
      squelettes/2012/article.html
  3. +46
    -0
      squelettes/2012/auteur.html
  4. +64
    -0
      squelettes/2012/backend-calendrier.html
  5. +43
    -0
      squelettes/2012/breve.html
  6. +44
    -0
      squelettes/2012/contact.html
  7. +39
    -0
      squelettes/2012/evenement.html
  8. +12
    -0
      squelettes/2012/flickr_photos.html
  9. +16
    -0
      squelettes/2012/flickr_une_photo.html
  10. +60
    -0
      squelettes/2012/formulaires/calendrier_mini.html
  11. +144
    -0
      squelettes/2012/formulaires/troglo.html
  12. +155
    -0
      squelettes/2012/formulaires/troglo.php
  13. +106
    -0
      squelettes/2012/htaccess.txt
  14. +26
    -0
      squelettes/2012/ical.html
  15. BIN
      squelettes/2012/images/aide.gif
  16. BIN
      squelettes/2012/images/cal.png
  17. BIN
      squelettes/2012/images/favico.ico
  18. BIN
      squelettes/2012/images/favico.png
  19. BIN
      squelettes/2012/images/gravatar.jpg
  20. BIN
      squelettes/2012/images/ilovespip.png
  21. BIN
      squelettes/2012/images/ispipzone.png
  22. BIN
      squelettes/2012/images/javascript.gif
  23. BIN
      squelettes/2012/images/logo-spip.gif
  24. BIN
      squelettes/2012/images/mailinglist.gif
  25. BIN
      squelettes/2012/images/rss-livemarks-spipzilla.gif
  26. BIN
      squelettes/2012/images/rss.png
  27. BIN
      squelettes/2012/images/separateur-spip-party-blue.jpg
  28. BIN
      squelettes/2012/images/separateur-spip-party-purple.jpg
  29. BIN
      squelettes/2012/images/separateur-spip-party-yellow.jpg
  30. BIN
      squelettes/2012/images/separateur1.png
  31. BIN
      squelettes/2012/images/spip-zone-orange.png
  32. BIN
      squelettes/2012/images/web-badge.png
  33. +10
    -0
      squelettes/2012/inc_auteurs_tous.html
  34. +13
    -0
      squelettes/2012/inc_contact.html
  35. +11
    -0
      squelettes/2012/inc_dernieres_breves.html
  36. +48
    -0
      squelettes/2012/inc_derniers_commentaires.html
  37. +23
    -0
      squelettes/2012/inc_forum.html
  38. +6
    -0
      squelettes/2012/inc_galaxie.html
  39. +1
    -0
      squelettes/2012/inc_gazette.html
  40. +19
    -0
      squelettes/2012/inc_hcal.html
  41. +35
    -0
      squelettes/2012/inc_head.html
  42. +16
    -0
      squelettes/2012/inc_herbier.html
  43. +10
    -0
      squelettes/2012/inc_liste.html
  44. +10
    -0
      squelettes/2012/inc_meme_rubrique.html
  45. +16
    -0
      squelettes/2012/inc_memes_mots.html
  46. +4
    -0
      squelettes/2012/inc_menu-haut.html
  47. +11
    -0
      squelettes/2012/inc_photos.html
  48. +6
    -0
      squelettes/2012/inc_pied_de_page.html
  49. +7
    -0
      squelettes/2012/inc_recherche.html
  50. +7
    -0
      squelettes/2012/inc_rubriques.html
  51. +22
    -0
      squelettes/2012/inc_signatures.html
  52. +45
    -0
      squelettes/2012/inc_sites.html
  53. +11
    -0
      squelettes/2012/inc_syndication.html
  54. +43
    -0
      squelettes/2012/jour.html
  55. +24
    -0
      squelettes/2012/js/ajax_comments.js
  56. +570
    -0
      squelettes/2012/js/effects.js
  57. +119
    -0
      squelettes/2012/js/moo.fx.js
  58. +117
    -0
      squelettes/2012/js/moo.fx.pack.js
  59. +1038
    -0
      squelettes/2012/js/prototype.js
  60. +127
    -0
      squelettes/2012/js/prototype.lite.js
  61. +37
    -0
      squelettes/2012/lang/local_fr.php
  62. +19
    -0
      squelettes/2012/lang/troglo_fr.php
  63. +1
    -0
      squelettes/2012/lesaperos.html
  64. +70
    -0
      squelettes/2012/mes_fonctions.php
  65. +3
    -0
      squelettes/2012/modeles/auteur_ecrire.html
  66. +8
    -0
      squelettes/2012/modeles/lesauteurs.html
  67. +43
    -0
      squelettes/2012/mois.html
  68. +54
    -0
      squelettes/2012/plan.html
  69. +45
    -0
      squelettes/2012/recherche.html
  70. +58
    -0
      squelettes/2012/resume.html
  71. +1
    -0
      squelettes/2012/rubrique-32.html
  72. +71
    -0
      squelettes/2012/rubrique-35.html
  73. +1
    -0
      squelettes/2012/rubrique-46.html
  74. +99
    -0
      squelettes/2012/rubrique.html
  75. +57
    -0
      squelettes/2012/rubrique=1.html
  76. +56
    -0
      squelettes/2012/site.html
  77. +82
    -0
      squelettes/2012/sommaire.html
  78. +35
    -0
      squelettes/2012/styles/calendrier_mini.css
  79. +20
    -0
      squelettes/2012/styles/doc.css
  80. +24
    -0
      squelettes/2012/styles/feria-blue.css
  81. +24
    -0
      squelettes/2012/styles/feria-purple.css
  82. +24
    -0
      squelettes/2012/styles/feria-yellow.css
  83. +80
    -0
      squelettes/2012/styles/formulaires.css
  84. +4
    -0
      squelettes/2012/styles/gazette.css
  85. BIN
      squelettes/2012/styles/header-apero.jpg
  86. BIN
      squelettes/2012/styles/header-blue.png
  87. BIN
      squelettes/2012/styles/header-purple.jpg
  88. +330
    -0
      squelettes/2012/styles/style.css
  89. +30
    -0
      squelettes/2012/styles/tableau.css
  90. +66
    -0
      squelettes/2012/suivre.html
  91. +50
    -0
      squelettes/2012/twitt.html

+ 1
- 0
squelettes/2012/agenda.html View File

@@ -0,0 +1 @@
<INCLURE{fond=mois}>

+ 99
- 0
squelettes/2012/article.html View File

@@ -0,0 +1,99 @@
<BOUCLE_article_principal(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">
[(#REM) SPIP Party par Ben.spip, Gilles Vincent, Tetue & IZO, base sur K2 et Bones ]
<head>
<title>[(#TITRE|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title>
[<meta name="description" content="(#INTRODUCTION|couper{150}|textebrut)" />]
<INCLURE{fond=inc_head}{id_article}{id_rubrique}>
</head>
<body class="page_item">
<div id="page">
<div id="header">
<ul class="menu">
<li class="current_item"><a href="#URL_SITE_SPIP/" title="<:accueil_site:>"><b><:accueil_site:></b></a></li>
<INCLURE{fond=inc_menu-haut}{id_rubrique}>
</ul>
</div>
<div class="primary">
<div class="navigation">
<BOUCLE_precedent(ARTICLES){id_rubrique}{age_relatif>0}{!par date}{0,1}{doublons}>
<div class="alignleft">&laquo;&nbsp;<a rel="prev" href="#URL_ARTICLE"[ title="(#DESCRIPTIF|couper{80}|texte_backend)"]>[(#TITRE|couper{60})]</a></div>
</BOUCLE_precedent>
<BOUCLE_suivant(ARTICLES){id_rubrique}{age_relatif<0}{par date}{0,1}{doublons}>
<div class="alignright"><a rel="next" href="#URL_ARTICLE"[ title="(#DESCRIPTIF|couper{80}|texte_backend)"]>[(#TITRE|couper{60})]</a>&nbsp;&raquo;</div>
</BOUCLE_suivant>
<div class="clear">&nbsp;</div>
</div>
<div class="itemhead">
[<div>(#LOGO_ARTICLE_RUBRIQUE|right||image_reduire{75})</div>]
<h1 class="#EDIT{titre}">#TITRE</h1>
<small class="metadata">[<:par_auteur:> (#LESAUTEURS) &ndash; ]<BOUCLE_rub(RUBRIQUES){id_rubrique}><a href="#URL_RUBRIQUE">[(#TITRE|majuscules)]</a> &ndash; </BOUCLE_rub>[(#DATE|affdate)]<BOUCLE_compte_messages(FORUMS){id_article}{plat}> </BOUCLE_compte_messages> &mdash; <a href="#forum">[(#TOTAL_BOUCLE)]&nbsp;[(#TOTAL_BOUCLE|=={1}|?{commentaire,commentaires})]</a></B_compte_messages></small>
[<p><strong class="#EDIT{descriptif}">(#DESCRIPTIF|PtoBR)</strong></p>]
</div><!-- itemhead -->
<div class="clear">&nbsp;</div>
<div class="itemtext">
[<div class="#EDIT{texte}">(#TEXTE|image_reduire{490})</div>]
[(#REM) Les prochains evenements ]
<B_event_list>
<h2>Prochaines dates :</h2>
<ul>
<BOUCLE_event_list(EVENEMENTS) {id_article} {agendafull date_debut, date_fin, (#ENV{date}|annee)} {statut=publie}{par date_fin}{age<7} {0,10}>
<li><a href="[(#URL_PAGE{evenement}|parametre_url{id_evenement,#ID_EVENEMENT})]">#TITRE</a>[ &ndash; (#DATE_DEBUT|Agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE})][ &ndash; (#LIEU)]</li>
</BOUCLE_event_list>
</ul>
</B_event_list>
<INCLURE{fond=inc_signatures}{id_article}>
<//B_event_list>
[(#PS)]
</div><!-- itemtext -->
<B_documents_portfolio>
<a name="portfolio" id="portfolio"></a>
<h2>Portfolio</h2>
<B_afficher_document>
<div class="spip_documents spip_documents_center">
<BOUCLE_afficher_document(DOCUMENTS) {id_document} {mode=document}{extension==(png|jpg|gif)$}>
[<a href="#URL_DOCUMENT">(#FICHIER|image_reduire{490})</a>]
<p>[(#TITRE)][ &mdash; (#DESCRIPTIF|PtoBR)]</p>
</BOUCLE_afficher_document>
</div>
</B_afficher_document>
<div class="spip_documents_portfolio">
<BOUCLE_documents_portfolio(DOCUMENTS) {id_article} {mode=document}{extension==(png|jpg|gif)$} {doublons}>[<a href="#URL_ARTICLE[(#URL_ARTICLE|strpos{?}|?{&amp;,?})]id_document=#ID_DOCUMENT#portfolio"[ title="(#TITRE|couper{80}|texte_backend)"] type="#MIME_TYPE">(#LOGO_DOCUMENT{0,60})</a>]
</BOUCLE_documents_portfolio>
</div>
<div class="clear">&nbsp;</div>
</B_documents_portfolio>
<B_documents_joints>
<div class="demilist">
<h2><:titre_documents_joints:></h2>
<ul>
<BOUCLE_documents_joints(DOCUMENTS) {id_article} {extension!==jpg|png|gif} {mode=document} {doublons}>
<li>
[(#LOGO_DOCUMENT|#URL_DOCUMENT|image_reduire{200,180})]
<p><a href="#URL_DOCUMENT" title="<:bouton_telecharger:>" type="#MIME_TYPE">[<strong>(#TITRE|sinon{<:info_document:>})</strong>]</a> <small>(#TYPE_DOCUMENT[ - (#TAILLE|taille_en_octets)])</small>[ &mdash; (#DESCRIPTIF|PtoBR)]</p>
</li>
</BOUCLE_documents_joints>
</ul>
</div>
<div class="clear">&nbsp;</div>
</B_documents_joints>
[(#NOTES)]
<INCLURE{fond=inc_forum}{id_article}>
</div><!-- primary -->
<div class="secondary">
[(#CALENDRIER_MINI{#ENV{date},'date',#SELF})]
#FORMULAIRE_SIGNATURE
<INCLURE{fond=inc_meme_rubrique}{id_rubrique}>
<INCLURE{fond=inc_memes_mots}{id_article}{id_rubrique}>
<INCLURE{fond=inc_syndication}{id_rubrique}>
<INCLURE{fond=inc_galaxie}>
</div><!-- secondary -->
<div class="clear">&nbsp;</div>
</div><!-- Close Page -->
<INCLURE{fond=inc_pied_de_page}>
</body>
</BOUCLE_article_principal>
</html>

+ 46
- 0
squelettes/2012/auteur.html View File

@@ -0,0 +1,46 @@
<BOUCLE_breve_principal(AUTEURS) {id_auteur}>
<!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">
[(#REM) SPIP Party par Ben.spip, Gilles Vincent, Tetue & IZO, base sur K2 et Bones ]
<head>
<title>[(#NOM|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title>
[<meta name="description" content="(#BIO|couper{150}|textebrut)" />]
<meta name="robots" content="none" />
<INCLURE{fond=inc_head}{id_auteur}>
</head>
<body class="page_item">
<div id="page">
<div id="header">
<ul class="menu">
<li class="current_item"><a href="#URL_SITE_SPIP/" title="<:accueil_site:>"><b><:accueil_site:></b></a></li>
<INCLURE{fond=inc_menu-haut}>
</ul>
</div>
<div class="primary">
<div class="itemhead">
[<div>(#LOGO_AUTEUR|right||image_reduire{75})</div>]
<h1>[(#NOM)]</h1>
[<small class="metadata"><:voir_en_ligne:> : <a href="(#URL_SITE)" class="spip_out">[(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]</a></small>]
<p>#BIO</p>
</div><!-- itemhead -->
<div class="clear">&nbsp;</div>
<div class="itemtext">
<ul>
<BOUCLE_articles(ARTICLES){id_auteur} {!par date}>
<li><BOUCLE_rub(RUBRIQUES){id_rubrique}>[(#TITRE|majuscules)&nbsp;: ]</BOUCLE_rub><a href="#URL_ARTICLE">#TITRE</a>&nbsp;<em style="color: #999;">[(#DATE|affdate_court)]</em></li>
</BOUCLE_articles>
</ul>
</div><!-- itemtext -->
</div><!-- primary -->
<div class="secondary">
[(#CALENDRIER_MINI{#ENV{date},'date',#SELF})]
<INCLURE{fond=inc_auteurs_tous}>
<INCLURE{fond=inc_syndication}>
<INCLURE{fond=inc_galaxie}>
</div><!-- secondary -->
<div class="clear">&nbsp;</div>
</div><!-- Close Page -->
<INCLURE{fond=inc_pied_de_page}>
</body>
</BOUCLE_breve_principal>
</html>

+ 64
- 0
squelettes/2012/backend-calendrier.html View File

@@ -0,0 +1,64 @@
#CACHE{3600}
[(#HTTP_HEADER{Content-type: text/xml[; charset=(#CHARSET)]})]
<?php echo '<' ?>?xml version="1.0"[ encoding="(#CHARSET)"]?>
<rss version="2.0"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
>

<channel>
<title>[Calendrier (#NOM_SITE_SPIP|texte_backend)]</title>
<link>#URL_SITE_SPIP/</link>
<description>[(#DESCRIPTIF_SITE_SPIP|texte_backend)]</description>
<language>#LANG</language>
<generator>SPIP - www.spip.net</generator>
[<image>
<title>[(#NOM_SITE_SPIP|texte_backend)]</title>
<url>(#LOGO_SITE_SPIP||extraire_attribut{src}|url_absolue|texte_backend)</url>
<link>#URL_SITE_SPIP/</link>
[<height>(#LOGO_SITE_SPIP||extraire_attribut{height})</height>]
[<width>(#LOGO_SITE_SPIP||extraire_attribut{width})</width>]
</image>]
<BOUCLE_evenement(EVENEMENTS) {branche ?} {statut=publie}{par date_fin}{age<7} {0,60}>
<item>
<title>[(#TITRE|texte_backend)]<BOUCLE_rub(RUBRIQUES){id_rubrique}>[ - (#TITRE|texte_backend)]</BOUCLE_rub></title>
<link>[(#URL_PAGE{evenement}|parametre_url{id_evenement,#ID_EVENEMENT}|url_absolue)]</link>
[<guid isPermaLink="true">(#URL_PAGE{evenement}|parametre_url{id_evenement,#ID_EVENEMENT}|url_absolue)</guid>]
<date>#DATE_DEBUT</date>
[<dc:date>(#DATE_DEBUT|date_iso)</dc:date>]
<dc:format>text/html</dc:format>
[<dc:language>(#LANG)</dc:language>]
[(#REM) Le bloc qui suit diffuse diffuse la rubrique a la mode RSS ]
<BOUCLE_rubrique_rss(RUBRIQUES){id_rubrique}>
[<category[ domain="(#URL_RUBRIQUE|url_absolue)"]>(#TITRE|texte_backend)</category>]
</BOUCLE_rubrique_rss>
<description>
[(#DATE_DEBUT|Agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE}|texte_backend)]
[ - (#LIEU|texte_backend)]
[ - (#DESCRIPTIF|texte_backend)]
[(#REM) Le bloc qui suit diffuse la rubrique sous forme de "microformats"]
<BOUCLE_rubrique_mf(RUBRIQUES){id_rubrique}>
[&lt;a href="[(#URL_RUBRIQUE|url_absolue)]" rel="directory"&gt;(#TITRE|texte_backend)&lt;/a&gt;]
</BOUCLE_rubrique_mf>
</description>
[(#REM) Le bloc qui suit diffuse aussi le texte integral de l'evenement,
ce qui permet une syndication plus riche (mais plus "lourde").
Fonction desactivable depuis les reglages du site.]
[(#CONFIG{syndication_integrale}|=={oui}|?{' ',''})<content:encoded>
[(#LOGO_RUBRIQUE|right||texte_backend)]
&lt;div class='rss_texte'&gt;
[(#DATE_DEBUT|Agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE}|texte_backend)]
[ - (#LIEU|texte_backend)]
[ - (#DESCRIPTIF|texte_backend)]
&lt;/div&gt;
</content:encoded>]
</item>
</BOUCLE_evenement>
</channel>

</rss>

+ 43
- 0
squelettes/2012/breve.html View File

@@ -0,0 +1,43 @@
<BOUCLE_breve_principal(BREVES) {id_breve}>
<!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">
[(#REM) SPIP Party par Ben.spip, Gilles Vincent, Tetue & IZO, base sur K2 et Bones ]
<head>
<title>[(#TITRE|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title>
[<meta name="description" content="(#INTRODUCTION|couper{150}|textebrut)" />]
<INCLURE{fond=inc_head}{id_breve}{id_rubrique}>
<body class="page_item">
<div id="page">
<div id="header">
<ul class="menu">
<li class="current_item"><a href="#URL_SITE_SPIP/" title="<:accueil_site:>"><b><:accueil_site:></b></a></li>
<INCLURE{fond=inc_menu-haut}{id_rubrique}>
</ul>
</div>
<div class="primary">
<div class="itemhead">
[<div>(#LOGO_BREVE_RUBRIQUE|right||image_reduire{75})</div>]
<h1>#TITRE</h1>
<small class="metadata"><BOUCLE_rub(RUBRIQUES){id_rubrique}><a href="#URL_RUBRIQUE">[(#TITRE|majuscules)]</a> &ndash; </BOUCLE_rub>[(#DATE|affdate)] [(#DATE|heures)]:[(#DATE|minutes)]<BOUCLE_compte_messages(FORUMS){id_breve}{plat}> </BOUCLE_compte_messages> &mdash; <a href="#forum">[(#TOTAL_BOUCLE)]&nbsp;[(#TOTAL_BOUCLE|=={1}|?{commentaire,commentaires})]</a></B_compte_messages></small>
</div><!-- itemhead -->
<div class="clear">&nbsp;</div>
<div class="itemtext">
[<div>(#TEXTE|image_reduire{490})</div>]
[<p><:voir_en_ligne:> : <strong><a href="(#URL_SITE)" class="spip_out">[(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]</a></strong></p>]
[(#NOTES)]
</div><!-- itemtext -->
<INCLURE{fond=inc_forum}{id_breve}>
</div><!-- primary -->
<div class="secondary">
[(#CALENDRIER_MINI{#ENV{date},'date',#SELF})]
<INCLURE{fond=inc_meme_rubrique}{id_rubrique}>
<INCLURE{fond=inc_syndication}>
<INCLURE{fond=inc_galaxie}>
</div><!-- secondary -->
<div class="clear">&nbsp;</div>
</div><!-- Close Page -->
<INCLURE{fond=inc_pied_de_page}>
</body>
</BOUCLE_breve_principal>
</html>

+ 44
- 0
squelettes/2012/contact.html View File

@@ -0,0 +1,44 @@
<BOUCLE_rubrique_principal(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">
[(#REM) SPIP Party par Ben.spip, Gilles Vincent, Tetue & IZO, base sur K2 et Bones ]
<head>
<title>[(#TITRE|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title>
[<meta name="description" content="(#INTRODUCTION|couper{150}|textebrut)" />]
<meta name="robots" content="none" />
<INCLURE{fond=inc_head}{id_rubrique}>
</head>
<body class="page_index">
<div id="page">
<div id="header">
<ul class="menu">
<li class="page_item"><a href="#URL_SITE_SPIP/" title="<:accueil_site:>"><b><:accueil_site:></b></a></li>
<INCLURE{fond=inc_menu-haut}{id_rubrique}>
</ul>
</div>
<div class="primary">
<div class="itemhead">
[(#LOGO_RUBRIQUE|right||image_reduire{100})]
<h1>#TITRE</h1>
[<div>(#TEXTE)</div>]
</div><!-- itemhead -->
<div class="itemtext">
<BOUCLE_contact(AUTEURS){id_auteur=193}>
#FORMULAIRE_ECRIRE_AUTEUR
</BOUCLE_contact>

</div><!-- itemtext -->
</div><!-- primary -->
<div class="secondary">
[(#CALENDRIER_MINI{#ENV{date},'date',#SELF})]
<INCLURE{fond=inc_derniers_commentaires}>
<INCLURE{fond=inc_syndication}>
<INCLURE{fond=inc_galaxie}>
</div><!-- secondary -->
<div class="clear">&nbsp;</div>
</div><!-- Close Page -->
<INCLURE{fond=inc_pied_de_page}>
</body>
</html>
</BOUCLE_rubrique_principal>

+ 39
- 0
squelettes/2012/evenement.html View File

@@ -0,0 +1,39 @@
<BOUCLE_evenement(EVENEMENTS) {id_evenement}>
<!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">
[(#REM) SPIP Party par Ben.spip, Gilles Vincent, Tetue & IZO, base sur K2 et Bones ]
<head>
<title>[(#TITRE|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title>
[<meta name="description" content="(#DESCRIPTIF|couper{150}|textebrut)" />]
<INCLURE{fond=inc_head}{id_rubrique}>
</head>
<body class="page_item">
<div id="page">
<div id="header">
<ul class="menu">
<li class="current_item"><a href="#URL_SITE_SPIP/" title="<:accueil_site:>"><b><:accueil_site:></b></a></li>
<INCLURE{fond=inc_menu-haut}{id_rubrique}>
</ul>
</div>
<div class="primary">
<div class="itemhead" style="display: none;">
<h1>#TITRE</h1>
</div><!-- itemhead -->
<div class="itemtext">
<INCLURE{fond=inc_hcal}{id_evenement}>
<p class="metadata">Retour &agrave; l'article&nbsp;: <BOUCLE_art(ARTICLES){id_article}><a href="#URL_ARTICLE">#TITRE</a><BOUCLE_compte_messages(FORUMS){id_article}{plat}> </BOUCLE_compte_messages> &mdash; <a href="#URL_ARTICLE#forum">[(#TOTAL_BOUCLE)]&nbsp;[(#TOTAL_BOUCLE|=={1}|?{commentaire,commentaires})]</a></B_compte_messages></BOUCLE_art> &mdash; <BOUCLE_rub(RUBRIQUES){id_rubrique}><a href="#URL_RUBRIQUE">[(#TITRE|majuscules)]</a></BOUCLE_rub></p>
</div><!-- itemtext -->
</div><!-- primary -->
<div class="secondary">
[(#CALENDRIER_MINI{#ENV{date},'date',#SELF})]
#FORMULAIRE_SIGNATURE
<INCLURE{fond=inc_meme_rubrique}{id_rubrique}>
<INCLURE{fond=inc_syndication}{id_rubrique}>
<INCLURE{fond=inc_galaxie}>
</div><!-- secondary -->
<div class="clear">&nbsp;</div>
</div><!-- Close Page -->
<INCLURE{fond=inc_pied_de_page}>
</body>
</BOUCLE_evenement>
</html>

+ 12
- 0
squelettes/2012/flickr_photos.html View File

@@ -0,0 +1,12 @@
#CACHE{2*24*3600}
<B_flickrs_portfolio>
<a name="portfolio" id="portfolio"></a>
<h2>Portfolio</h2>
[(#ID_PHOTO|?{' ',''})<INCLURE{fond=flickr_une_photo}{id_photo}>]
<div class="spip_documents_portfolio">
<BOUCLE_flickrs_portfolio(FLICKR_PHOTOS_SEARCH) {tags spip-party,spip-party:#ID_ARTICLE} {tag_mode all}>
[<a href="[(#URL_ARTICLE|parametre_url{id_photo,#ID_PHOTO})]#portfolio"[ title="(#TITLE|couper{80}|texte_backend)"]>(#LOGO_PHOTO{s})</a>]
</BOUCLE_flickrs_portfolio>
</div>
<div class="clear">&nbsp;</div>
</B_flickrs_portfolio>

+ 16
- 0
squelettes/2012/flickr_une_photo.html View File

@@ -0,0 +1,16 @@
#CACHE{100*24*3600}
<B_afficher_flickr>
<div class="spip_documents spip_documents_center">
<BOUCLE_afficher_flickr(FLICKR_PHOTOS_GETINFO) {id_photo}>
[<a href="#URL_PHOTO">(#LOGO_PHOTO)</a>]
<p>[(#TITLE)] [&mdash; <:par:> (#OWNER_REALNAME|sinon{#OWNER_USERNAME})] [ &mdash; (#DESCRIPTION|PtoBR)]</p>
<B_tags>
<p>
<BOUCLE_tags(FLICKR_PHOTO_TAGS){","}>
[(#RAW|sinon{#SAFE})]
</BOUCLE_tags>
</p>
</B_tags>
</BOUCLE_afficher_flickr>
</div>
</B_afficher_flickr>

+ 60
- 0
squelettes/2012/formulaires/calendrier_mini.html View File

@@ -0,0 +1,60 @@
<div id="calendar">
<h2><BOUCLE_titre(ARTICLES){id_article}>#TITRE</BOUCLE_titre><:icone_calendrier:><//B_titre></h2>
<table summary="<:icone_calendrier:>">
<caption>[
<a
href="(#ENV{self}|parametre_url{#ENV{var_date},[(#ENV{#ENV{var_date},#ENV{date}}|Agenda_moisdecal{-1,'Y-m'})]})"
title="[(#ENV{#ENV{var_date},#ENV{date}}|Agenda_moisdecal{-1,'Y-m'}|affdate_mois_annee)]"
>&#171;</a>][
(#ENV{#ENV{var_date},#ENV{date}}|affdate_mois_annee)][
<a
href="(#ENV{self}|parametre_url{#ENV{var_date},[(#ENV{#ENV{var_date},#ENV{date}}|Agenda_moisdecal{1,'Y-m'})]})"
title="[(#ENV{#ENV{var_date},#ENV{date}}|Agenda_moisdecal{1,'Y-m'}|affdate_mois_annee)]"
>&#187;</a>]
</caption>
<thead>
<tr>
<th scope="col"><abbr title="<:date_jour_2:>"><:date_jour_2|spip_substr{0,1}|strtoupper:></abbr></th>
<th scope="col"><abbr title="<:date_jour_3:>"><:date_jour_3|spip_substr{0,1}|strtoupper:></abbr></th>
<th scope="col"><abbr title="<:date_jour_4:>"><:date_jour_4|spip_substr{0,1}|strtoupper:></abbr></th>
<th scope="col"><abbr title="<:date_jour_5:>"><:date_jour_5|spip_substr{0,1}|strtoupper:></abbr></th>
<th scope="col"><abbr title="<:date_jour_6:>"><:date_jour_6|spip_substr{0,1}|strtoupper:></abbr></th>
<th scope="col"><abbr title="<:date_jour_7:>"><:date_jour_7|spip_substr{0,1}|strtoupper:></abbr></th>
<th scope="col"><abbr title="<:date_jour_1:>"><:date_jour_1|spip_substr{0,1}|strtoupper:></abbr></th>
</tr>
</thead>
<tbody>
[(#REM)
Simplification: On commence par calculer les evenements qui:
(1) commencent avant le debut du mois suivant le mois demande (borne_fin_mois est en fait le 1er jour du mois suivant)
ET
(2) finissent apres le debut du mois demande (1er jour inclus)
Sont donc inclus:
(a) les evenements qui commencent dans le mois demande (test 1)
et dont la fin est necessairement apres le debut du mois demande (test 2 vrai aussi)
(b) les evenements qui finissent dans le mois demande (test 2)
et dont le debut est necessairement avant la fin du mois demande (test 1 vrai aussi)
(c) les evenements qui commencent avant le mois demande (test 1) ET finissent apres le mois demande (test 2)
Plus simple depuis qu'on dispose du calcul des bornes de debut et fin de mois... et plus de doublons :-)
Correction: on tronque le jour de la date pour bien partir du debut de mois quelle que soit la date demandee:
2009-12-15 donne quand meme borne_debut_mois==2009-12-01 et borne_fin_mois==2010-01-01
au lieu de borne_debut_mois==2009-12-15 et borne_fin_mois==2010-01-15
]
#SET{'borne_debut_mois', (#ENV{#ENV{var_date},#ENV{date}}|affdate{'Y-m'}|Agenda_moisdecal{0,'Y-m-d'})}
#SET{'borne_fin_mois', (#ENV{#ENV{var_date},#ENV{date}}|affdate{'Y-m'}|Agenda_moisdecal{1,'Y-m-d'})}
<!-- le debut de mois est #GET{'borne_debut_mois'}, le debut du suivant est #GET{'borne_fin_mois'} -->
<BOUCLE_calendrier(EVENEMENTS)
{id_article?}{id_mot?}
{date_debut < #GET{'borne_fin_mois'}}
{date_fin >= #GET{'borne_debut_mois'}}>
[(#DATE_DEBUT|Agenda_memo_full{#DATE_FIN,[(#TITRE|addslashes)],#DESCRIPTIF,#LIEU,#URL_PAGE{jour},'',#ENV{var_date}})]
</BOUCLE_calendrier>
[(#REM) le "courante" ci-dessus peut etre remplace par "debut" pour retrouver l'ancien comportement]
[(#REM) Puis on les affiche dans un agenda]
[(#ENV{#ENV{var_date},#ENV{date}}|agenda_mini)]
</tbody>
</table>
<small class="metadata" style="display: block; text-align: center;">Abonnez-vous au<br />calendrier g&eacute;n&eacute;ral&nbsp;: <a rel="alternate" href="[(#URL_PAGE{ical})]" title="iCal [(#NOM_SITE_SPIP|textebrut)]">iCal</a> | <a rel="alternate" type="application/rss+xml" href="[(#URL_PAGE{backend-calendrier})]" title="RSS Calendrier [(#NOM_SITE_SPIP|textebrut)]">RSS&nbsp;2.0</a></small>
</div>

+ 144
- 0
squelettes/2012/formulaires/troglo.html View File

@@ -0,0 +1,144 @@

<link rel="stylesheet" type="text/css" href="squelettes-dist/spip_formulaires.css">

<div class="ajax">


<table class="spip">
<thead><tr class='row_first'>
<th scope='col'>Pseudo</th>
<th scope='col'>Nb. d'adultes</th>
<th scope='col'>Nb. d'enfants</th>
<th scope='col'>Vendredi</th>
<th scope='col'>Samedi</th>
<th scope='col'>Dimanche</th>
<th scope='col'>Tee</th>
</thead>
<tbody>

<BOUCLE_T(spip_troglo){par hasard}>

[(#VENDREDI|oui)#SET{comptageAV,#GET{comptageAV}|plus{#NBADULTES}}]
[(#VENDREDI|oui)#SET{comptageEV,#GET{comptageEV}|plus{#NBENFANTS}}]


[(#SAMEDI|oui)#SET{comptageAS,#GET{comptageAS}|plus{#NBADULTES}}]
[(#SAMEDI|oui)#SET{comptageES,#GET{comptageES}|plus{#NBENFANTS}}]


[(#DIMANCHE|oui)#SET{comptageAD,#GET{comptageAD}|plus{#NBADULTES}}]
[(#DIMANCHE|oui)#SET{comptageED,#GET{comptageED}|plus{#NBENFANTS}}]

#SET{comptageA,#GET{comptageA}|plus{#NBADULTES}}
#SET{comptageE,#GET{comptageE}|plus{#NBENFANTS}}

<tr [class="(#COMPTEUR_BOUCLE|alterner{'row_odd','row_even'})"]>
<td>#PSEUDO</td>
<td>&nbsp;#NBADULTES</td>
<td>&nbsp;#NBENFANTS</td>
<td><input type="checkbox" disabled="disabled" class="checkbox" name="#ID_TROGLO" id="#ID_TROGLO" [(#VENDREDI|oui)checked="checked"]/></td>
<td><input type="checkbox" disabled="disabled" class="checkbox" name="#ID_TROGLO" id="#ID_TROGLO" [(#SAMEDI|oui)checked="checked"]/></td>
<td><input type="checkbox" disabled="disabled" class="checkbox" name="#ID_TROGLO" id="#ID_TROGLO" [(#DIMANCHE|oui)checked="checked"]/></td>
</tr>

</BOUCLE_T>
</tbody>
<tfoot>
<tr >
<td></td>
<td>#GET{comptageA}</td>
<td>#GET{comptageE}</td>
<td>#GET{comptageAV}-#GET{comptageEV}</td>
<td>#GET{comptageAS}-#GET{comptageES}</td>
<td>#GET{comptageAD}-#GET{comptageED}</td>
</tr>
</tfoot>

</table>

<p>Pour modifier votre inscription, entrez votre email (seulement) et validez le formulaire pour r&eacute;cup&eacute;rer les informations enregistr&eacute;es, puis modifiez les informations à votre guise et validez de nouveau.</p>
<div class=" formulaire_spip formulaire_configurer formulaire_#FORM formulaire_#FORM-#ENV{id,nouveau}">
<h3 class="titrem">10 ans de SPIP en fanfare</h3>
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
[(#ENV{editable})
<form method='post' action='#ENV{action}'><div>
[(#REM) declarer les hidden qui declencheront le service du formulaire
parametre : url d'action ]
#ACTION_FORMULAIRE{#ENV{action}}
#SET{fl,troglo}
<fieldset>
<legend><:troglo:legend:></legend>
<ul>
#SET{name,email}#SET{obli,'obligatoire'}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
<li class="editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
<label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
<span class='erreur_message'>(#GET{erreurs})</span>
]<input type="text" class="text" name="#GET{name}" value="#ENV*{#GET{name}}" id="#GET{name}"/>
</li>
#SET{name,pseudo}#SET{obli,'obligatoire'}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
<li class="editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
<label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
<span class='erreur_message'>(#GET{erreurs})</span>
]<input type="text" class="text" name="#GET{name}" value="#ENV*{#GET{name}}" id="#GET{name}"/>
</li>
#SET{name,nbadultes}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
<li class="editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
<label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
<span class='erreur_message'>(#GET{erreurs})</span>
]<input type="text" class="text" name="#GET{name}" value="#ENV*{#GET{name}}" id="#GET{name}"/>
</li>
#SET{name,nbenfants}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
<li class="editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
<label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
<span class='erreur_message'>(#GET{erreurs})</span>
]<input type="text" class="text" name="#GET{name}" value="#ENV*{#GET{name}}" id="#GET{name}"/>
</li>

#SET{name,jour}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
<li class="editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
<label>[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
<span class='erreur_message'>(#GET{erreurs})</span>
]
#SET{val,vendredi}
<div class="choix">
<input type="checkbox" class="checkbox" name="#GET{name}#EVAL{chr(91)}#EVAL{chr(93)}" id="#GET{name}_#GET{val}" value="#GET{val}"[(#GET{val}|in_any{#ENV{#GET{name}}}|oui)checked="checked"] />
<label for="#GET{name}_#GET{val}">[(#GET{fl}|concat{':label_',#GET{name},'_',#GET{val}}|_T)]</label>
</div>
#SET{val,samedi}
<div class="choix">
<input type="checkbox" class="checkbox" name="#GET{name}#EVAL{chr(91)}#EVAL{chr(93)}" id="#GET{name}_#GET{val}" value="#GET{val}"[(#GET{val}|in_any{#ENV{#GET{name}}}|oui)checked="checked"] />
<label for="#GET{name}_#GET{val}">[(#GET{fl}|concat{':label_',#GET{name},'_',#GET{val}}|_T)]</label>
</div>
#SET{val,dimanche}
<div class="choix">
<input type="checkbox" class="checkbox" name="#GET{name}#EVAL{chr(91)}#EVAL{chr(93)}" id="#GET{name}_#GET{val}" value="#GET{val}"[(#GET{val}|in_any{#ENV{#GET{name}}}|oui)checked="checked"] />
<label for="#GET{name}_#GET{val}">[(#GET{fl}|concat{':label_',#GET{name},'_',#GET{val}}|_T)]</label>
</div>
</li>



#SET{name,tee}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
<li class="editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
<label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
<span class='erreur_message'>(#GET{erreurs})</span>
]<input type="text" class="text" name="#GET{name}" value="#ENV*{#GET{name}}" id="#GET{name}"/>
</li>


</ul>
</fieldset>
[(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
<!--extra-->
<p class='boutons'><span class='image_loading'>&nbsp;</span>
<input type='submit' class='submit' name="cancel" value='<:bouton_annuler:>' />
<input type='submit' class='submit' value='<:bouton_enregistrer:>' /></p>
</div></form>
]
[(#ENV{editable}|non)
<p class='boutons'><span class='image_loading'>&nbsp;</span>
<input type='submit' class='submit' name="cancel" value='<:bouton_fermer:>' onclick="$.modalboxclose();return false;" />
]
</div>
</div>

+ 155
- 0
squelettes/2012/formulaires/troglo.php View File

@@ -0,0 +1,155 @@
<?php

function formulaires_troglo_charger_dist() {
$contexte = array(
'tee' => '',
'pseudo' => '',
'email' => '',
'nbenfants' => '',
'nbadultes' => '',
'jour' => '',
);
return $contexte;
}


function formulaires_troglo_verifier_dist()
{
include_spip('base/abstract_sql');
$retour = array();
if ( !_request('email')) {
$retour['message_erreur'] = "Merci de renseigner l'Email " ;
}
else
{
if (!email_valide(_request('email'))) {
$retour['message_erreur'] = "Votre email ne semble pas valide ";
}
else
{
if ( !_request('pseudo')) {
$row= sql_fetsel('*', 'spip_troglo', 'email="'._request ('email').'"');
set_request('tee', $row['tee']) ;
set_request('pseudo', $row['pseudo']) ;
set_request('nbenfants', $row['nbenfants']);
set_request('nbadultes', $row['nbadultes']);
$jour=array();
if ( $row['vendredi'] == 1 ) {array_push($jour,'vendredi');}
if ( $row['samedi'] == 1 ) {array_push($jour,'samedi');}
if ( $row['dimanche'] == 1 ) {array_push($jour,'dimanche');}
set_request('jour', $jour);
$retour['message_erreur'] = "&nbsp;";
}
}
}
return $retour ;
}




function formulaires_troglo_traiter_dist (){
$retour = array();
include_spip('base/abstract_sql');

#appeller cette fonction pour la creation de la table
# _maFonctionJustePourleFunQuiNeSeraPasAppellee45 () ;


$jour =_request('jour');
$id_troglo = sql_getfetsel('id_troglo', 'spip_troglo', 'email="'._request ('email').'"');
spip_log(__LINE__);
if ( $id_troglo >0 ) {
spip_log("update $id_troglo");
$res_lien = sql_updateq(
'spip_troglo',
array(
'pseudo' => _request('pseudo') ,
'tee' => _request ('tee'),
'email' => _request ('email'),
'nbadultes' => _request ('nbadultes'),
'nbenfants' => _request ('nbenfants'),
'vendredi' => in_array('vendredi',$jour),
'samedi' => in_array('samedi',$jour),
'dimanche' => in_array('dimanche',$jour),
'date' => date('Y-m-d H:i:s'),
),
"id_troglo=$id_troglo") ;
$retour['message_ok'] = $retour['message_ok']."Merci vos infos sont à jour";
$sujet_mail="[TROGLO] "._request('email')." Mise a jour";
}
else {
spip_log("Insert ");
$res_lien = sql_insertq('spip_troglo',array(
'pseudo' => _request('pseudo') ,
'email' => _request ('email'),
'tee' => _request ('tee'),
'nbadultes' => _request ('nbadultes'),
'nbenfants' => _request ('nbenfants'),
'date' => date('Y-m-d H:i:s'),
'vendredi' => in_array('vendredi',$jour),
'samedi' => in_array('samedi',$jour),
'dimanche' => in_array('dimanche',$jour),
));
$retour['message_ok'] = $retour['message_ok']." Merci c'est noté, si vous voulez modifier vos infos : il suffit de reremplir le formulaire avec l'email que vous avez utilisé";
$sujet_mail="[TROGLO] "._request('email')." Inscription";
}

$texte_email ="\n";
$envoyer_mail = charger_fonction('envoyer_mail','inc');
$envoyer_mail("ben@rezo.net", "".$sujet_mail,htmlentities($texte_email),"ben@rezo.net");

$retour['editable']=true;
include_spip('inc/invalideur');
suivre_invalideur(1);
return $retour ;
/*

// message
// include_spip('inc/headers');
// redirige_par_entete('http://36.36pulp.com/spip.php?page=merci');

// return array(
// "redirect" =>'http://36pulp.com/spip.php?page=merci',
// );
*/
}


function _maFonctionJustePourleFunQuiNeSeraPasAppellee45 ()
{

include_spip('base/create');
include_spip('base/abstract_sql');
include_spip('base/serial');
$spip_troglo = array(
"id_troglo" => "bigint(21) NOT NULL",
"tee" => "text DEFAULT '' NOT NULL",
"pseudo" => "text DEFAULT '' NOT NULL",
"email" => "text DEFAULT '' NOT NULL",
"vendredi" => "integer DEFAULT '0' NOT NULL",
"samedi" => "integer DEFAULT '0' NOT NULL",
"dimanche" => "integer DEFAULT '0' NOT NULL",
"nbenfants" => "integer DEFAULT '0' NOT NULL",
"nbadultes" => "integer DEFAULT '0' NOT NULL",
"date" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
"ip" => "varchar(40) DEFAULT '' NOT NULL"

);

$spip_troglo_key = array(
"PRIMARY KEY" => "id_troglo"
);
$table_troglo= array('field' => &$spip_troglo, 'key' => &$spip_troglo_key);

creer_ou_upgrader_table("spip_troglo",$table_troglo,true);


}


?>

+ 106
- 0
squelettes/2012/htaccess.txt View File

@@ -0,0 +1,106 @@
##############################################################
# Fichier .htaccess SPIP v1.9 #
# #
# Permet de controler les URLs et la version de php utilisee #
# Compatible avec les URLs 'html', 'propres' et 'propres2' #
# Permet aussi d'effectuer la transition de .PHP 3 vers .PHP #
# #
# Pour utiliser ce fichier renommez-le '.htaccess' dans le #
# repertoire racine du site, en veillant a ne pas ecraser un #
# .htaccess personnalise qui s'y trouverait deja #
# #
# Attention certains hebergeurs desactivent tout ou partie #
# des fonctions du fichier .htaccess ; celui-ci est donc #
# indicatif - en cas de difficulte voir sur les forums SPIP #
##############################################################

RewriteEngine On

################ CONFIGURATION ######################

### Configuration sous-repertoire
# Si votre site est dans un sous-repertoire, preciser ci-dessous
# le nom du sous-repertoire, et supprimer le '#'
# Chez certains hebergeurs il faut indiquer "RewriteBase /"

#RewriteBase /sous/repertoire/


# SPIP version 'php' - si vous avez d'anciennes adresses en '.php[3]',
# supprimez le '#' sur les lignes qui suivent pour rediriger les acces
# errones vers le .php correspondant

#RewriteCond %{REQUEST_FILENAME} -f
#RewriteRule ^(.+)\.php[3]$ $1.php [QSA,L]

# Fin version
###


################ REGLAGES PERSONNALISES ######################
# Inscrivez ci-dessous vos reglages supplementaires

# Permettre a IE de reconnaitre le win_png.htc de retraitement des png transparents
AddType text/x-component .htc

# bloquer les acces aux repertoires .svn/ (SPIP, plugins, squelettes...)
RewriteRule ^(.*/)?\.svn/ - [F]
RewriteRule ^calendrier\.xml$ spip.php?page=backend-calendrier [QSA,L]


################ GESTIONS DES URLS SPIP #######################

###
# Si le fichier ou repertoire demande existe
# ignorer toutes les regles qui suivent
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule "." - [skip=100]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule "." - [skip=100]
#
###


###
# Compatibilite avec les URLS "html" (pour transition sympa)
# voir fichier ecrire/urls/html.php3
RewriteRule rubrique([0-9]+)\.html$ spip.php?page=rubrique&id_rubrique=$1 [QSA,L]
RewriteRule article([0-9]+)\.html$ spip.php?page=article&id_article=$1 [QSA,L]
RewriteRule breve([0-9]+)\.html$ spip.php?page=breve&id_breve=$1 [QSA,L]
RewriteRule mot([0-9]+)\.html$ spip.php?page=mot&id_mot=$1 [QSA,L]
RewriteRule auteur([0-9]+)\.html$ spip.php?page=auteur&id_auteur=$1 [QSA,L]
RewriteRule site([0-9]+)\.html$ spip.php?page=site&id_syndic=$1 [QSA,L]
# Compatibilite avec les anciennes URLS appelant directement des fichiers php
RewriteRule ^(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|resume|sommaire|sommaire_texte)\.php3?$ spip.php?page=$1 [QSA,L]
RewriteRule ^page.php[3]? spip.php [QSA,L]
RewriteRule ^spip_cal\.php3?$ spip.php?action=ical [QSA,L]
RewriteRule ^spip_rss\.php3?$ spip.php?action=rss [QSA,L]
# Fin compatibilite
###

###
# URLs "propres" et "propres2"
# pensez a regler $type_urls='propres' ou 'propres2'
# dans ecrire/mes_options.php
# (fichier associe : ecrire/urls/propres.php)

# Les mots-cles
RewriteRule ^\+-[^/\.]+(-\+)?(\.html)?$ spip.php?page=mot [QSA,E=url_propre:$0,L]

# Les breves
RewriteRule ^\+[^/\.]+\+?(\.html)?$ spip.php?page=breve [QSA,E=url_propre:$0,L]

# Les rubriques
RewriteRule ^-[^/\.]+-?(\.html)?$ spip.php?page=rubrique [QSA,E=url_propre:$0,L]

# les auteurs
RewriteRule ^_[^/\.]+_?(\.html)?$ spip.php?page=auteur [QSA,E=url_propre:$0,L]

# Les sites
RewriteRule ^@[^/\.]+@?(\.html)?$ spip.php?page=site [QSA,E=url_propre:$0,L]

# Les articles (en dernier car expression plus "large")
RewriteRule ^[^/\.]+(\.html)?$ spip.php?page=article [QSA,E=url_propre:$0,L]

# Fin URLs "propres" et "propres2"
###

+ 26
- 0
squelettes/2012/ical.html View File

@@ -0,0 +1,26 @@
#HTTP_HEADER{Content-type: text/calendar}
#CACHE{3600}
BEGIN:VCALENDAR
VERSION:2.0
X-WR-TIMEZONE:Europe/Paris
CALSCALE:GREGORIAN
X-WR-CALNAME;VALUE=TEXT:[(#NOM_SITE_SPIP|filtrer_ical)]
X-WR-CALDESC:[(#DESCRIPTIF_SITE_SPIP|filtrer_ical)]
X-WR-RELCALID:[(#URL_SITE_SPIP|filtrer_ical)]

<BOUCLE_evenement(EVENEMENTS) {branche ?} {statut=publie}{date_fin<0}{par date_fin} {0,100}>
BEGIN:VEVENT
SUMMARY:[(#TITRE|filtrer_ical)]<BOUCLE_rub(RUBRIQUES){id_rubrique}>[ - (#TITRE|filtrer_ical)]</BOUCLE_rub>[ / (#LIEU|filtrer_ical)]
UID:evenement#ID_EVENEMENT @ [(#URL_SITE_SPIP|filtrer_ical)]
[DTSTAMP:(#DATE_DEBUT|date_ical)]
[DTSTART:(#DATE_DEBUT|date_ical)]
[DTEND:(#DATE_FIN|date_ical{60})]
LOCATION:<BOUCLE_rub2(RUBRIQUES){id_rubrique}>[(#TITRE|filtrer_ical)]</BOUCLE_rub2>[ / (#LIEU|filtrer_ical)]
[DESCRIPTION:(#DESCRIPTIF|filtrer_ical)]
CATEGORIES:<BOUCLE_article(ARTICLES) {id_article=#ID_ARTICLE}>[(#TITRE|filtrer_ical)]</BOUCLE_article>
URL:[(#URL_PAGE{evenement}|parametre_url{id_evenement,#ID_EVENEMENT}|url_absolue|filtrer_ical)]
STATUS:CONFIRMED
END:VEVENT
</BOUCLE_evenement>

END:VCALENDAR

BIN
squelettes/2012/images/aide.gif View File

Before After
Width: 12  |  Height: 12  |  Size: 103 B

BIN
squelettes/2012/images/cal.png View File

Before After
Width: 20  |  Height: 20  |  Size: 506 B

BIN
squelettes/2012/images/favico.ico View File

Before After

BIN
squelettes/2012/images/favico.png View File

Before After
Width: 16  |  Height: 15  |  Size: 860 B

BIN
squelettes/2012/images/gravatar.jpg View File

Before After
Width: 67  |  Height: 67  |  Size: 1.9 KiB

BIN
squelettes/2012/images/ilovespip.png View File

Before After
Width: 16  |  Height: 16  |  Size: 796 B

BIN
squelettes/2012/images/ispipzone.png View File

Before After
Width: 38  |  Height: 16  |  Size: 1.7 KiB

BIN
squelettes/2012/images/javascript.gif View File

Before After
Width: 15  |  Height: 15  |  Size: 201 B

BIN
squelettes/2012/images/logo-spip.gif View File

Before After
Width: 100  |  Height: 115  |  Size: 6.3 KiB

BIN
squelettes/2012/images/mailinglist.gif View File

Before After
Width: 20  |  Height: 20  |  Size: 718 B

BIN
squelettes/2012/images/rss-livemarks-spipzilla.gif View File

Before After
Width: 45  |  Height: 16  |  Size: 1.5 KiB

BIN
squelettes/2012/images/rss.png View File

Before After
Width: 16  |  Height: 16  |  Size: 758 B

BIN
squelettes/2012/images/separateur-spip-party-blue.jpg View File

Before After
Width: 551  |  Height: 63  |  Size: 8.7 KiB

BIN
squelettes/2012/images/separateur-spip-party-purple.jpg View File

Before After
Width: 551  |  Height: 60  |  Size: 9.0 KiB

BIN
squelettes/2012/images/separateur-spip-party-yellow.jpg View File

Before After
Width: 550  |  Height: 63  |  Size: 8.7 KiB

BIN
squelettes/2012/images/separateur1.png View File

Before After
Width: 561  |  Height: 41  |  Size: 2.7 KiB

BIN
squelettes/2012/images/spip-zone-orange.png View File

Before After
Width: 60  |  Height: 57  |  Size: 4.7 KiB

BIN
squelettes/2012/images/web-badge.png View File

Before After
Width: 91  |  Height: 13  |  Size: 2.1 KiB

+ 10
- 0
squelettes/2012/inc_auteurs_tous.html View File

@@ -0,0 +1,10 @@
<B_auteurs>
<div class="sb_meta">
<h2><:info_auteurs:></h2>
<ul>
<BOUCLE_auteurs(AUTEURS){par nom}>
<li style="display: inline; padding-right: 1em;"><a href="#URL_AUTEUR">[(#NOM)]</a></li>
</BOUCLE_auteurs>
</ul>
</div>
</B_auteurs>

+ 13
- 0
squelettes/2012/inc_contact.html View File

@@ -0,0 +1,13 @@
<B_contact>
<div>
<h2>Prise de contact</h2>
<ul>
<BOUCLE_contact(SITES) {id_rubrique=46}>
<li class="metadata">
[(#LOGO_SITE_RUBRIQUE||image_reduire{12}) ]
<a class="spip_out" href="#URL_SITE">#NOM_SITE</a>
</li>
</BOUCLE_contact>
</ul>
</div>
</B_contact>

+ 11
- 0
squelettes/2012/inc_dernieres_breves.html View File

@@ -0,0 +1,11 @@
<B_breves>
<div class="sb_latest">
<h2><:dernieres_breves:></h2>
<span class="metadata">&nbsp;&ndash;&nbsp;<a rel="alternate" type="application/rss+xml" href="#URL_PAGE{backend-breves}" title="RSS <:breves:>">RSS</a></span>
<ul id="dernieres_breves">
<BOUCLE_breves(BREVES) {!par date}{age<150} {0,5}>
<li><a href="#URL_BREVE">#TITRE</a></li>
</BOUCLE_breves>
</ul>
</div>
</B_breves>

+ 48
- 0
squelettes/2012/inc_derniers_commentaires.html View File

@@ -0,0 +1,48 @@
<BOUCLE_rubrique(RUBRIQUES){id_rubrique}>
[(#REM) Si on est dans une rubrique :
on affiche les derniers commentaires faits dans la rubrique, sinon rien.

Comme on ne peut pas appeler directement les commentaires postes dans une branche,
commencons par eliminer tous ceux dont on ne veut pas... ]

<BOUCLE_articles_oui(ARTICLES){branche} {doublons articles}> </BOUCLE_articles_oui>
<BOUCLE_breves_oui(BREVES){id_secteur} {doublons breves}> </BOUCLE_breves_oui>

<BOUCLE_articles_atej(ARTICLES) {doublons articles}>
<BOUCLE_commentaires_articles_atej(FORUMS) {plat}{id_article} {doublons}>
</BOUCLE_commentaires_articles_atej>
</BOUCLE_articles_atej>

<BOUCLE_breves_atej(BREVES) {doublons breves}>
<BOUCLE_commentaires_breves_atej(FORUMS) {plat}{id_breve} {doublons}>
</BOUCLE_commentaires_breves_atej>
</BOUCLE_breves_atej>

<B_commentaires_rubrique>
<div class="sb_comments">
<h2><:derniers_commentaires:></h2>
<ul>
<BOUCLE_commentaires_rubrique(FORUMS) {plat} {!par date}{age<150} {0,4} {doublons}>
<li>Le [(#DATE|jour)] [(#DATE|nom_mois)][, <:par_auteur:> (#NOM)]&nbsp;: <a href="#URL_FORUM">[(#INTRODUCTION|couper{100})]</a></li>
</BOUCLE_commentaires_rubrique>
</ul>
</div>
</B_commentaires_rubrique>

</BOUCLE_rubrique>

[(#REM) Par contre, si l'on est hors d'une rubrique :
on affiche les derniers commentaires faits sur l'ensemble du site. ]

<B_commentaires>
<div class="sb_comments">
<h2><:derniers_commentaires:></h2>
<ul>
<BOUCLE_commentaires(FORUMS) {plat} {!par date} {0,4}>
<li>Le [(#DATE|jour)] [(#DATE|nom_mois)][, <:par_auteur:> (#NOM)]&nbsp;: <a href="#URL_FORUM">[(#INTRODUCTION|couper{100})]</a></li>
</BOUCLE_commentaires>
</ul>
</div>
</B_commentaires>

<//B_rubrique>

+ 23
- 0
squelettes/2012/inc_forum.html View File

@@ -0,0 +1,23 @@
<a href="#forum" name="forum" id="forum"></a>
<div class="comments">

<BOUCLE_combien(FORUMS){plat} {id_article ?}{id_breve ?}> </BOUCLE_combien>
<h2>[(#TOTAL_BOUCLE)]&nbsp;[(#TOTAL_BOUCLE|=={1}|?{commentaire,commentaires})]</h2>
</B_combien>

<B_forums>
<ol class="commentlist">
<BOUCLE_forums(FORUMS){plat} {id_article ?}{id_breve ?} {par date}>
<li>
<img[ src="(#LOGO_AUTEUR||?{[#URL_SITE_SPIP/IMG/(#LOGO_AUTEUR|fichier|sinon{[(#CHEMIN{images/gravatar.jpg})]})],[(#EMAIL|gravatar_url|sinon{[(#CHEMIN{images/gravatar.jpg})]})]})"] alt="" width="32" height="32" class="gravatar" />
<a name="forum#ID_FORUM" id="forum#ID_FORUM"></a>
<p class="counter"><a href="#forum#ID_FORUM">Le [(#DATE|affdate)] &agrave; [(#DATE|heures)]:[(#DATE|minutes)][, <:par_auteur:> (#NOM)]</a>[ - <a href="(#URL_SITE)" class="spip_out"[ title="(#NOM_SITE)"]>www</a>]</p>
[(#TEXTE)]
</li>
</BOUCLE_forums>
</ol>
</B_forums>

[<h2><:form_pet_message_commentaire:></h2>(#FORMULAIRE_FORUM)]

</div><!-- comments -->

+ 6
- 0
squelettes/2012/inc_galaxie.html View File

@@ -0,0 +1,6 @@
[(#MODELE{boussole_panorama,
boussole=spip,
titre_boussole=non,
type_bulle=slogan_site,
taille_logo=42,
div_id=boussole})]

+ 1
- 0
squelettes/2012/inc_gazette.html View File

@@ -0,0 +1 @@
[(#REM) La derniere Gazette SPIP ]<BOUCLE_gazette(SYNDIC_ARTICLES){id_syndic=66}{par date}{inverse}{0,1}> <div id="gazette"> <h2><a href="#URL_SITE">#NOM_SITE</a></h2> <dl> <dt> <a href="[(#TAGS |afficher_tags{enclosure} |extraire_attribut{href})]" [title="(#TITRE|textebrut|entites_html)"] type="application/pdf"> <img src="[(#DESCRIPTIF |extraire_balise{img} |extraire_attribut{src} |copie_locale)]" width="70" height="100"[ alt="(#TITRE|textebrut|entites_html)"] style='height:100px;width:70px;' /> </a> </dt> <dt><strong>#TITRE</strong></dt> <dd>[(#DATE|nom_mois)] [(#DATE|annee)][<br /> Archives&nbsp;: (#TAGS|afficher_tags{directory})]</dd> </dl> </div> </BOUCLE_gazette>

+ 19
- 0
squelettes/2012/inc_hcal.html View File

@@ -0,0 +1,19 @@
<BOUCLE_evenement(EVENEMENTS) {id_evenement}>
[(#REM) debut hcal ]
<div class="vevent">
[(#LOGO_ARTICLE_RUBRIQUE||image_reduire{75})]
<h2 class="summary"><a class="url" href="[(#URL_PAGE{evenement}|parametre_url{id_evenement,#ID_EVENEMENT})]">#TITRE</a></h2>

[<div class="description"><b>Quoi&nbsp;?</b> (#DESCRIPTIF)</div>]
<p class="date"><b>Quand&nbsp;?</b>
<abbr class="dtstamp"[ title="(#DATE_DEBUT|date_iso)]">[(#DATE_DEBUT|Agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE})]</abbr>
<abbr class="dtstart"[ title="(#DATE_DEBUT|date_iso)]">[(#DATE_DEBUT|nom_jour|ucfirst) ][(#DATE_DEBUT|affdate)] [(#DATE_DEBUT|heures)]:[(#DATE_DEBUT|minutes)]</abbr>
<abbr class="dtend"[ title="(#DATE_FIN|date_iso)"]> &agrave; [(#DATE_FIN|nom_jour) ][(#DATE_FIN|affdate)] [(#DATE_FIN|heures)]:[(#DATE_FIN|minutes)]</abbr>
</p>
<p class="location">[<b>O&ugrave;&nbsp;?</b> (#LIEU|ucfirst|PtoBR)]</p>
</div>
[(#REM) fin hcal ]
</BOUCLE_evenement>

+ 35
- 0
squelettes/2012/inc_head.html View File

@@ -0,0 +1,35 @@
<meta http-equiv="Content-Type" content="text/html; charset=#CHARSET" />
<meta name="generator" content="SPIP[ (#SPIP_VERSION)]" />
<meta name="template" content="SPIP Party 1.5" />
<link rel="start" title="<:accueil_site:>" href="#URL_SITE_SPIP/" />
<meta name="Robots" content="index,follow,all" />
<meta name="Identifier-URL" content="#URL_SITE_SPIP/" />
<meta name="rating" content="General" />
<meta name="revisit-after" content="15 days" />
[(#REM) Lien vers le flux RSS du site ]
<link rel="alternate" type="application/rss+xml" title="<:syndiquer_site:> [(#NOM_SITE_SPIP|textebrut)]" href="#URL_PAGE{backend}" />
<BOUCLE_rub_rss(RUBRIQUES) {id_rubrique}><link rel="alternate" type="application/rss+xml" title="<:syndiquer_rubrique:> [(#TITRE|textebrut)]" href="[(#URL_PAGE{backend}|parametre_url{id_rubrique,#ID_RUBRIQUE})]" /></BOUCLE_rub_rss>
[(#REM) Lien vers l'icone destinee a la barre de bookmarks ]
[<link rel="shortcut icon" type="image/png" href="(#CHEMIN{images/favico.png})" />]
[<link rel="shortcut icon" type="image/x-icon" href="(#CHEMIN{images/favico.ico})" />]
[(#REM) Choix des CSS selon les secteurs ]
<link rel="stylesheet" href="#CHEMIN{styles/style.css}" type="text/css" />
<BOUCLE_feria-yellow(RUBRIQUES){id_rubrique}{id_secteur=1}>
<link rel="stylesheet" href="#CHEMIN{styles/feria-yellow.css}" type="text/css" />
</BOUCLE_feria-yellow>
<BOUCLE_feria-purple(RUBRIQUES){id_rubrique}{id_secteur=30}>
<link rel="stylesheet" href="#CHEMIN{styles/feria-purple.css}" type="text/css" />
</BOUCLE_feria-purple>
<link rel="stylesheet" href="#CHEMIN{styles/feria-blue.css}" type="text/css" />
<//B_feria-purple>
<//B_feria-yellow>
[(#REM) Balise permettant aux plugins d'inserer des appels javascript ou css ]
#INSERT_HEAD

+ 16
- 0
squelettes/2012/inc_herbier.html View File

@@ -0,0 +1,16 @@
[(#REM)
Une capture d'ecran d'un site pris au hasard dans l'herbier
Adaptation de la noisette proposee ici :
http://www.spip-herbier.net/syndication
]
<BOUCLE_herbier(SYNDIC_ARTICLES){id_syndic=43}{!par date}{0,1}>
[<div id="herbier">
<h2>Dernier site dans l'herbier</h2>
<a href="#URL_ARTICLE"[ title="(#TITRE|textebrut|entites_html)"]>
(#DESCRIPTIF
|extraire_balise{img}
|reduire_image{175,132}
|inserer_attribut{alt,[(#TITRE|textebrut)]}
|inserer_attribut{'align',''})
</a>
</div>]</BOUCLE_herbier>

+ 10
- 0
squelettes/2012/inc_liste.html View File

@@ -0,0 +1,10 @@
<B_liste>
<div>
<h2>Liste de discussion</h2>
<ul>
<BOUCLE_liste(SITES){id_rubrique}{id_mot=26}>
<li><a href="#URL_SITE">#NOM_SITE</a>[ &ndash; (#DESCRIPTIF)]</li>
</BOUCLE_liste>
</ul>
</div>
</B_liste>

+ 10
- 0
squelettes/2012/inc_meme_rubrique.html View File

@@ -0,0 +1,10 @@
<B_meme_rubrique>
<div class="sb_meta">
<h2><a href="#URL_RUBRIQUE"><:meme_rubrique:></a></h2>
<ul>
<BOUCLE_meme_rubrique(ARTICLES){id_rubrique} {!par date} {0,5}>
<li><a href="#URL_ARTICLE"[ title="(#DESCRIPTIF|couper{80}|texte_backend)"]>#TITRE</a></li>
</BOUCLE_meme_rubrique>
</ul>
</div>
</B_meme_rubrique>

+ 16
- 0
squelettes/2012/inc_memes_mots.html View File

@@ -0,0 +1,16 @@
[(#REM) Mots-cles pour la feria ]
<BOUCLE_rub(RUBRIQUES){id_rubrique}{id_secteur=30}>
<BOUCLE_mots(MOTS) {id_groupe IN 1,3,4}{id_article} {par id_groupe} {0,3}>
<B_articles_mot>
<div>
<h2>[(#TITRE|titre_homogene)]</h2>
<ul>
<BOUCLE_articles_mot(ARTICLES) {id_mot}{id_secteur=30} {par hasard} {0,3}>
<li><a href="#URL_ARTICLE"[ title="(#DESCRIPTIF|couper{80}|texte_backend)"]>[(#TITRE|titre_homogene)]</a></li>
</BOUCLE_articles_mot>
</ul>
</div>
</B_articles_mot>
</BOUCLE_mots>
</B_mots>
</BOUCLE_rub>

+ 4
- 0
squelettes/2012/inc_menu-haut.html View File

@@ -0,0 +1,4 @@
<BOUCLE_rubriques(RUBRIQUES){titre_mot=une}{par num titre, titre}>
<li[ class="(#EXPOSE{current_page_item,page_item})"]><a href="#URL_RUBRIQUE"[ title="(#DESCRIPTIF|couper{80}|texte_backend)"]>[(#TITRE)]</a></li>
</BOUCLE_rubriques>
<li class="admintab"><a href="ecrire"><:espace_prive:></a></li>

+ 11
- 0
squelettes/2012/inc_photos.html View File

@@ -0,0 +1,11 @@
<B_flickr>

<div id="flickr">


<BOUCLE_flickr(SYNDIC_ARTICLES) {id_syndic=37} {doublons}{0,5}>

<a href="#URL_ARTICLE" title="#TITRE">[(#DESCRIPTIF|extraire_balise{img})]</a>
</BOUCLE_flickr>
</div>
</B_flickr>

+ 6
- 0
squelettes/2012/inc_pied_de_page.html View File

@@ -0,0 +1,6 @@
<p id="footer">
Listes de discussion : <BOUCLE_rub(RUBRIQUES){id_secteur=1}{par titre}>
<BOUCLE_listes(SITES){id_rubrique}{id_mot=26}><a href="#URL_SITE"[ title="(#NOM_SITE|couper{80}|texte_backend)"]>#TITRE</a> | </BOUCLE_listes>
</BOUCLE_rub>...<br />
<a href="#URL_SITE_SPIP/oo">&Eacute;dition en mode texte</a> | <a href="#URL_PAGE{plan}"><:plan_site:></a> | <a href="http://www.spip.net"><:site_realise_avec_spip:></a> | <a href="http://www.aucuneid.net/bones" title="Bones">Squelette BONES</a> + <a href="http://getk2.com">K2</a> by <a href="http://binarybonsai.com">Michael</a> and <a href="http://chrisjdavis.org">Chris</a>
</p>

+ 7
- 0
squelettes/2012/inc_recherche.html View File

@@ -0,0 +1,7 @@
<div class="sb_search" style="display: none;">
<h2>Search</h2>
<form action="#URL_PAGE{recherche}" method="get">
<input type="text" name="recherche" size="15" maxlength="50" />
<input type="submit" value="ok" />
</form>
</div>

+ 7
- 0
squelettes/2012/inc_rubriques.html View File

@@ -0,0 +1,7 @@

<h2><:rubriques:></h2>
<BOUCLE_rubriques(RUBRIQUES){racine}>
<ul>
<li><a href="#URL_RUBRIQUE"[ title="(#DESCRIPTIF|couper{80}|texte_backend)"]>#TITRE</a></li>
</ul>
</BOUCLE_rubriques>

+ 22
- 0
squelettes/2012/inc_signatures.html View File

@@ -0,0 +1,22 @@
<a href="#forum" name="forum" id="forum"></a>
<div class="comments">

[(#REM) Signatures de la petition : on n'affiche un site que s'il est unique ]

<B_signatures>
#ANCRE_PAGINATION
<h2>#GRAND_TOTAL <:sites_web:> :</h2>
[<p class="pagination">(#PAGINATION)</p>]
<ul class="commentlist">
<BOUCLE_signatures(SIGNATURES) {id_article ?} {!par date} {pagination 5}>
[<li>
<p class="counter" style="margin: 0; padding: 0;"><strong>#NOM_SITE</strong> - <a href="(#URL_SITE|unique{signatures})" class="spip_url">www</a></p>
<small>r&eacute;f&eacute;renc&eacute; [<:par_auteur:> (#NOM), ][le (#DATE|affdate)]</small>
[<br />(#MESSAGE|PtoBR)]
</li>]
</BOUCLE_signatures>
</ul>
[<p class="pagination">(#PAGINATION)</p>]
</B_signatures>

</div><!-- comments -->

+ 45
- 0
squelettes/2012/inc_sites.html View File

@@ -0,0 +1,45 @@
[(#REM) Affichons les articles syndiques des sites references dans la rubrique

Comme on ne peut pas appeler directement les articles syndiques dans une branche,
commencons par eliminer tous ceux dont on ne veut pas... ]

<BOUCLE_sites_oui(SITES){branche} {doublons sites}> </BOUCLE_sites_oui>

<BOUCLE_sites_atej(SITES) {doublons sites}>
<BOUCLE_syndic_sites_atej(SYNDIC_ARTICLES) {id_syndic} {doublons}>
</BOUCLE_syndic_sites_atej>
</BOUCLE_sites_atej>

<B_syndic_rubrique>
<div>
<h2><a href="#URL_PAGE{site}"><:nouveautes_web:></a></h2>
<ul>
<BOUCLE_syndic_rubrique(SYNDIC_ARTICLES) {!par date}{age<150} {0,5} {doublons}>
<li>[(#LOGO_SITE_RUBRIQUE||image_reduire{16}) ]<a href="#URL_ARTICLE">#TITRE</a></li>
</BOUCLE_syndic_rubrique>
</ul>
</div>
</B_syndic_rubrique>


[(#REM) Sinon, affichons les articles syndiques des sites a la Une ]

<BOUCLE_sites_bis_oui(SITES){titre_mot=une} {doublons sites_bis}> </BOUCLE_sites_bis_oui>

<BOUCLE_sites_bis_atej(SITES) {doublons sites_bis}>
<BOUCLE_syndic_sites_bis_atej(SYNDIC_ARTICLES) {id_syndic} {doublons bis}>
</BOUCLE_syndic_sites_bis_atej>
</BOUCLE_sites_bis_atej>

<B_syndic>
<div>
<h2><a href="#URL_PAGE{site}"><:nouveautes_web:></a></h2>
<ul>
<BOUCLE_syndic(SYNDIC_ARTICLES) {!par date}{age<150} {0,5} {doublons bis}>
<li>[(#LOGO_SITE||image_reduire{16}) ]<a href="#URL_ARTICLE">#TITRE</a></li>
</BOUCLE_syndic>
</ul>
</div>
</B_syndic>

<//B_syndic_rubrique>

+ 11
- 0
squelettes/2012/inc_syndication.html View File

@@ -0,0 +1,11 @@
<div>
<h2>Abonnez vous</h2>
<ul>
<li class="metadata"><img src="#CHEMIN{images/rss.png}" alt="-" width="12" height="12" class="format_png" /> <:syndiquer_site:> : <a rel="alternate" type="application/rss+xml" href="#URL_PAGE{backend}"[ title="RSS (#NOM_SITE_SPIP|texte_backend)"]>RSS&nbsp;2.0</a></li>
<BOUCLE_rub_rss(RUBRIQUES) {id_rubrique}><li class="metadata"><img src="#CHEMIN{images/rss.png}" alt="-" width="12" height="12" class="format_png" /> <:syndiquer_rubrique:> : <a rel="alternate" type="application/rss+xml" href="[(#URL_PAGE{backend}|parametre_url{id_rubrique,#ID_RUBRIQUE})]"[ title="RSS (#TITRE|texte_backend)"]>RSS&nbsp;2.0</a></li></BOUCLE_rub_rss>
<BOUCLE_liste(SITES){id_rubrique}{id_mot=26}>
<li class="metadata"><img src="#CHEMIN{images/mailinglist.gif}" alt="-" width="12" height="12" class="format_png" /> Mailing List : <a href="#URL_SITE"[ title="(#DESCRIPTIF|couper{80}|texte_backend)]">#NOM_SITE</a></li>
</BOUCLE_liste>
<li class="metadata"><img src="#CHEMIN{images/aide.gif}" alt="Aide" width="12" height="12"> Euh... <a href="#URL_PAGE{suivre}" title="Comment &ccedil;a marche ?">Comment &ccedil;a marche&nbsp;?</a></li>
</ul>
</div>

+ 43
- 0
squelettes/2012/jour.html View File

@@ -0,0 +1,43 @@
<!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">
[(#REM) SPIP Party par Ben.spip, Gilles Vincent, Tetue & IZO, base sur K2 et Bones ]
<head>
<title>[(#ENV{date}|nom_jour|ucfirst) ][(#ENV{date}|affdate)] - [(#NOM_SITE_SPIP|textebrut)]</title>
[<meta name="description" content="(#DESCRIPTIF|couper{150}|textebrut)" />]
<INCLURE{fond=inc_head}>
</head>
<body class="page_jour">
<div id="page">
<div id="header">
<ul class="menu">
<li class="current_item"><a href="#URL_SITE_SPIP/" title="<:accueil_site:>"><b><:accueil_site:></b></a></li>
<INCLURE{fond=inc_menu-haut}>
</ul>
</div>
<div class="primary">
<div class="itemhead">
<h1>[(#ENV{date}|nom_jour|ucfirst) ][(#ENV{date}|affdate)]</h1>
</div><!-- itemhead -->
<B_event_list>
<ul style="list-style: none; margin: 0; padding: 0;">
<BOUCLE_event_list(EVENEMENTS) {agendafull date_debut, date_fin, jour, (#ENV{date}|annee), (#ENV{date}|mois), (#ENV{date}|jour)} {statut=publie}{par date_fin}>
<li style="margin: 0; padding: 0;"><INCLURE{fond=inc_hcal}{id_evenement}></li>
</BOUCLE_event_list>
</ul>
</B_event_list>
<em>Aucun &eacute;v&eacute;nement SPIP annonc&eacute; le [(#ENV{date}|affdate)]&nbsp;!</em>
<//B_event_list>
</div><!-- primary -->
<div class="secondary">
[(#CALENDRIER_MINI{#ENV{date},'date',#SELF})]
<INCLURE{fond=inc_derniers_commentaires}>
<INCLURE{fond=inc_syndication}>
<INCLURE{fond=inc_sites}>
<INCLURE{fond=inc_galaxie}>
</div><!-- secondary -->
<div class="clear">&nbsp;</div>
</div><!-- Close Page -->
<INCLURE{fond=inc_pied_de_page}>
</body>
</html>

+ 24
- 0
squelettes/2012/js/ajax_comments.js View File

@@ -0,0 +1,24 @@
function commentAdded(request) {
new Effect.BlindDown($('commentlist').lastChild);
$('comment').value = '';
$('comment').focus();
}
function failure(request) {
$('error').innerHTML = request.responseText;
new Effect.Highlight('error');
}
function loading() {
$('submit').disabled = true;
Element.show('loading');
}
function complete(request) {
Element.hide('loading');
Element.show('commentform');
$('submit').disabled = false;
if (request.status == 200) {commentAdded()}
else {failure(request)};
}

+ 570
- 0
squelettes/2012/js/effects.js View File

@@ -0,0 +1,570 @@
// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
//
// Parts (c) 2005 Justin Palmer (http://encytemedia.com/)
// Parts (c) 2005 Mark Pilgrim (http://diveintomark.org/)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Effect = {}
Effect2 = Effect; // deprecated
/* ------------- transitions ------------- */
Effect.Transitions = {}
Effect.Transitions.linear = function(pos) {
return pos;
}
Effect.Transitions.sinoidal = function(pos) {
return (-Math.cos(pos*Math.PI)/2) + 0.5;
}
Effect.Transitions.reverse = function(pos) {
return 1-pos;
}
Effect.Transitions.flicker = function(pos) {
return ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random(0.25);
}
Effect.Transitions.wobble = function(pos) {
return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5;
}
Effect.Transitions.pulse = function(pos) {
return (Math.floor(pos*10) % 2 == 0 ?
(pos*10-Math.floor(pos*10)) : 1-(pos*10-Math.floor(pos*10)));
}
Effect.Transitions.none = function(pos) {
return 0;
}
Effect.Transitions.full = function(pos) {
return 1;
}
/* ------------- core effects ------------- */
Effect.Base = function() {};
Effect.Base.prototype = {
setOptions: function(options) {
this.options = {
transition: Effect.Transitions.sinoidal,
duration: 1.0, // seconds
fps: 25.0, // max. 100fps
sync: false, // true for combining
from: 0.0,
to: 1.0
}.extend(options || {});
},
start: function(options) {
this.setOptions(options || {});
this.currentFrame = 0;
this.startOn = new Date().getTime();
this.finishOn = this.startOn + (this.options.duration*1000);
if(this.options.beforeStart) this.options.beforeStart(this);
if(!this.options.sync) this.loop();
},
loop: function() {
timePos = new Date().getTime();
if(timePos >= this.finishOn) {
this.render(this.options.to);
if(this.finish) this.finish();
if(this.options.afterFinish) this.options.afterFinish(this);
return;
}
pos = (timePos - this.startOn) / (this.finishOn - this.startOn);
frame = Math.round(pos * this.options.fps * this.options.duration);
if(frame > this.currentFrame) {
this.render(pos);
this.currentFrame = frame;
}
this.timeout = setTimeout(this.loop.bind(this), 10);
},
render: function(pos) {
if(this.options.transition) pos = this.options.transition(pos);
pos = pos * (this.options.to-this.options.from);
pos += this.options.from;
if(this.options.beforeUpdate) this.options.beforeUpdate(this);
if(this.update) this.update(pos);
if(this.options.afterUpdate) this.options.afterUpdate(this);
},
cancel: function() {
if(this.timeout) clearTimeout(this.timeout);
}
}
Effect.Parallel = Class.create();
Effect.Parallel.prototype = (new Effect.Base()).extend({
initialize: function(effects) {
this.effects = effects || [];
this.start(arguments[1]);
},
update: function(position) {
for (var i = 0; i < this.effects.length; i++)
this.effects[i].render(position);
},
finish: function(position) {
for (var i = 0; i < this.effects.length; i++)
if(this.effects[i].finish) this.effects[i].finish(position);
}
});
// Internet Explorer caveat: works only on elements the have
// a 'layout', meaning having a given width or height.
// There is no way to safely set this automatically.
Effect.Opacity = Class.create();
Effect.Opacity.prototype = (new Effect.Base()).extend({
initialize: function(element) {
this.element = $(element);
options = {
from: 0.0,
to: 1.0
}.extend(arguments[1] || {});
this.start(options);
},
update: function(position) {
this.setOpacity(position);
},
setOpacity: function(opacity) {
opacity = (opacity == 1) ? 0.99999 : opacity;
this.element.style.opacity = opacity;
this.element.style.filter = "alpha(opacity:"+opacity*100+")";
}
});
Effect.MoveBy = Class.create();
Effect.MoveBy.prototype = (new Effect.Base()).extend({
initialize: function(element, toTop, toLeft) {
this.element = $(element);
this.originalTop = parseFloat(this.element.style.top || '0');
this.originalLeft = parseFloat(this.element.style.left || '0');
this.toTop = toTop;
this.toLeft = toLeft;
if(this.element.style.position == "")
this.element.style.position = "relative";
this.start(arguments[3]);
},
update: function(position) {
topd = this.toTop * position + this.originalTop;
leftd = this.toLeft * position + this.originalLeft;
this.setPosition(topd, leftd);
},
setPosition: function(topd, leftd) {
this.element.style.top = topd + "px";
this.element.style.left = leftd + "px";
}
});
Effect.Scale = Class.create();
Effect.Scale.prototype = (new Effect.Base()).extend({
initialize: function(element, percent) {
this.element = $(element)
options = {
scaleX: true,
scaleY: true,
scaleContent: true,
scaleFromCenter: false,
scaleMode: 'box', // 'box' or 'contents' or {} with provided values
scaleFrom: 100.0
}.extend(arguments[2] || {});
this.originalTop = this.element.offsetTop;
this.originalLeft = this.element.offsetLeft;
if (this.element.style.fontSize=="") this.sizeEm = 1.0;
if (this.element.style.fontSize && this.element.style.fontSize.indexOf("em")>0)
this.sizeEm = parseFloat(this.element.style.fontSize);
this.factor = (percent/100.0) - (options.scaleFrom/100.0);
if(options.scaleMode=='box') {
this.originalHeight = this.element.clientHeight;
this.originalWidth = this.element.clientWidth;
} else
if(options.scaleMode=='contents') {
this.originalHeight = this.element.scrollHeight;
this.originalWidth = this.element.scrollWidth;
} else {
this.originalHeight = options.scaleMode.originalHeight;
this.originalWidth = options.scaleMode.originalWidth;
}
this.start(options);
},
update: function(position) {
currentScale = (this.options.scaleFrom/100.0) + (this.factor * position);
if(this.options.scaleContent && this.sizeEm)
this.element.style.fontSize = this.sizeEm*currentScale + "em";
this.setDimensions(
this.originalWidth * currentScale,
this.originalHeight * currentScale);
},
setDimensions: function(width, height) {
if(this.options.scaleX) this.element.style.width = width + 'px';
if(this.options.scaleY) this.element.style.height = height + 'px';
if(this.options.scaleFromCenter) {
topd = (height - this.originalHeight)/2;
leftd = (width - this.originalWidth)/2;
if(this.element.style.position=='absolute') {
if(this.options.scaleY) this.element.style.top = this.originalTop-topd + "px";
if(this.options.scaleX) this.element.style.left = this.originalLeft-leftd + "px";
} else {
if(this.options.scaleY) this.element.style.top = -topd + "px";
if(this.options.scaleX) this.element.style.left = -leftd + "px";
}
}
}
});
Effect.Highlight = Class.create();
Effect.Highlight.prototype = (new Effect.Base()).extend({
initialize: function(element) {
this.element = $(element);
// try to parse current background color as default for endcolor
// browser stores this as: "rgb(255, 255, 255)", convert to "#ffffff" format
var endcolor = "#ffffff";
var current = this.element.style.backgroundColor;
if(current && current.slice(0,4) == "rgb(") {
endcolor = "#";
var cols = current.slice(4,current.length-1).split(',');
var i=0; do { endcolor += parseInt(cols[i]).toColorPart() } while (++i<3); }
var options = {
startcolor: "#ffff99",
endcolor: endcolor
}.extend(arguments[1] || {});
// init color calculations
this.colors_base = [
parseInt(options.startcolor.slice(1,3),16),
parseInt(options.startcolor.slice(3,5),16),
parseInt(options.startcolor.slice(5),16) ];
this.colors_delta = [
parseInt(options.endcolor.slice(1,3),16)-this.colors_base[0],
parseInt(options.endcolor.slice(3,5),16)-this.colors_base[1],
parseInt(options.endcolor.slice(5),16)-this.colors_base[2] ];
this.start(options);
},
update: function(position) {
var colors = [
Math.round(this.colors_base[0]+(this.colors_delta[0]*position)),
Math.round(this.colors_base[1]+(this.colors_delta[1]*position)),
Math.round(this.colors_base[2]+(this.colors_delta[2]*position)) ];
this.element.style.backgroundColor = "#" +
colors[0].toColorPart() + colors[1].toColorPart() + colors[2].toColorPart();
}
});
/* ------------- prepackaged effects ------------- */
Effect.Fade = function(element) {
options = {
from: 1.0,
to: 0.0,
afterFinish: function(effect)
{ Element.hide(effect.element);
effect.setOpacity(1); }
}.extend(arguments[1] || {});
new Effect.Opacity(element,options);
}
Effect.Appear = function(element) {
options = {
from: 0.0,
to: 1.0,
beforeStart: function(effect)
{ effect.setOpacity(0);
Element.show(effect.element); },
afterUpdate: function(effect)
{ Element.show(effect.element); }
}.extend(arguments[1] || {});
new Effect.Opacity(element,options);
}
Effect.Puff = function(element) {
new Effect.Parallel(
[ new Effect.Scale(element, 200, { sync: true, scaleFromCenter: true }),
new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0 } ) ],
{ duration: 1.0,
afterUpdate: function(effect)
{ effect.effects[0].element.style.position = 'absolute'; },
afterFinish: function(effect)
{ Element.hide(effect.effects[0].element); }
}
);
}
Effect.BlindUp = function(element) {
$(element)._overflow = $(element).style.overflow || 'visible';
$(element).style.overflow = 'hidden';
new Effect.Scale(element, 0,
{ scaleContent: false,
scaleX: false,
afterFinish: function(effect)
{
Element.hide(effect.element);
effect.element.style.overflow = effect.element._overflow;
}
}.extend(arguments[1] || {})
);
}
Effect.BlindDown = function(element) {
$(element).style.height = '0px';
$(element)._overflow = $(element).style.overflow || 'visible';
$(element).style.overflow = 'hidden';
Element.show(element);
new Effect.Scale(element, 100,
{ scaleContent: false,
scaleX: false,
scaleMode: 'contents',
scaleFrom: 0,
afterFinish: function(effect) {
effect.element.style.overflow = effect.element._overflow;
}
}.extend(arguments[1] || {})
);
}
Effect.SwitchOff = function(element) {
new Effect.Appear(element,
{ duration: 0.4,
transition: Effect.Transitions.flicker,
afterFinish: function(effect)
{ effect.element.style.overflow = 'hidden';
new Effect.Scale(effect.element, 1,
{ duration: 0.3, scaleFromCenter: true,
scaleX: false, scaleContent: false,
afterUpdate: function(effect) {
if(effect.element.style.position=="")
effect.element.style.position = 'relative'; },
afterFinish: function(effect) { Element.hide(effect.element); }
} )
}
} )
}
Effect.DropOut = function(element) {
new Effect.Parallel(
[ new Effect.MoveBy(element, 100, 0, { sync: true }),
new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0 } ) ],
{ duration: 0.5,
afterFinish: function(effect)
{ Element.hide(effect.effects[0].element); }
});
}
Effect.Shake = function(element) {
new Effect.MoveBy(element, 0, 20,
{ duration: 0.05, afterFinish: function(effect) {
new Effect.MoveBy(effect.element, 0, -40,
{ duration: 0.1, afterFinish: function(effect) {
new Effect.MoveBy(effect.element, 0, 40,
{ duration: 0.1, afterFinish: function(effect) {
new Effect.MoveBy(effect.element, 0, -40,
{ duration: 0.1, afterFinish: function(effect) {
new Effect.MoveBy(effect.element, 0, 40,
{ duration: 0.1, afterFinish: function(effect) {
new Effect.MoveBy(effect.element, 0, -20,
{ duration: 0.05, afterFinish: function(effect) {
}}) }}) }}) }}) }}) }});
}
Effect.SlideDown = function(element) {
$(element)._overflow = $(element).style.overflow || 'visible';
$(element).style.height = '0px';
$(element).style.overflow = 'hidden';
$(element).firstChild.style.position = 'relative';
Element.show(element);
new Effect.Scale(element, 100,
{ scaleContent: false,
scaleX: false,
scaleMode: 'contents',
scaleFrom: 0,
afterUpdate: function(effect)
{ effect.element.firstChild.style.bottom =
(effect.originalHeight - effect.element.clientHeight) + 'px'; },
afterFinish: function(effect)
{ effect.element.style.overflow = effect.element._overflow; }
}.extend(arguments[1] || {})
);
}
Effect.SlideUp = function(element) {
$(element)._overflow = $(element).style.overflow || 'visible';
$(element).style.overflow = 'hidden';
$(element).firstChild.style.position = 'relative';
Element.show(element);
new Effect.Scale(element, 0,
{ scaleContent: false,
scaleX: false,
afterUpdate: function(effect)
{ effect.element.firstChild.style.bottom =
(effect.originalHeight - effect.element.clientHeight) + 'px'; },
afterFinish: function(effect)
{
Element.hide(effect.element);
effect.element.style.overflow = effect.element._overflow;
}
}.extend(arguments[1] || {})
);
}
Effect.Squish = function(element) {
new Effect.Scale(element, 0,
{ afterFinish: function(effect) { Element.hide(effect.element); } });
}
Effect.Grow = function(element) {
element = $(element);
var options = arguments[1] || {};
var originalWidth = element.clientWidth;
var originalHeight = element.clientHeight;
element.style.overflow = 'hidden';
Element.show(element);
var direction = options.direction || 'center';
var moveTransition = options.moveTransition || Effect.Transitions.sinoidal;
var scaleTransition = options.scaleTransition || Effect.Transitions.sinoidal;
var opacityTransition = options.opacityTransition || Effect.Transitions.full;
var initialMoveX, initialMoveY;
var moveX, moveY;
switch (direction) {
case 'top-left':
initialMoveX = initialMoveY = moveX = moveY = 0;
break;
case 'top-right':
initialMoveX = originalWidth;
initialMoveY = moveY = 0;
moveX = -originalWidth;
break;
case 'bottom-left':
initialMoveX = moveX = 0;
initialMoveY = originalHeight;
moveY = -originalHeight;
break;
case 'bottom-right':
initialMoveX = originalWidth;
initialMoveY = originalHeight;
moveX = -originalWidth;
moveY = -originalHeight;
break;
case 'center':
initialMoveX = originalWidth / 2;
initialMoveY = originalHeight / 2;
moveX = -originalWidth / 2;
moveY = -originalHeight / 2;
break;
}
new Effect.MoveBy(element, initialMoveY, initialMoveX, {
duration: 0.01,
beforeUpdate: function(effect) { $(element).style.height = '0px'; },
afterFinish: function(effect) {
new Effect.Parallel(
[ new Effect.Opacity(element, { sync: true, to: 1.0, from: 0.0, transition: opacityTransition }),
new Effect.MoveBy(element, moveY, moveX, { sync: true, transition: moveTransition }),
new Effect.Scale(element, 100, {
scaleMode: { originalHeight: originalHeight, originalWidth: originalWidth },
sync: true, scaleFrom: 0, scaleTo: 100, transition: scaleTransition })],
options); }
});
}
Effect.Shrink = function(element) {
element = $(element);
var options = arguments[1] || {};
var originalWidth = element.clientWidth;
var originalHeight = element.clientHeight;
element.style.overflow = 'hidden';
Element.show(element);
var direction = options.direction || 'center';
var moveTransition = options.moveTransition || Effect.Transitions.sinoidal;
var scaleTransition = options.scaleTransition || Effect.Transitions.sinoidal;
var opacityTransition = options.opacityTransition || Effect.Transitions.none;
var moveX, moveY;
switch (direction) {
case 'top-left':
moveX = moveY = 0;
break;
case 'top-right':
moveX = originalWidth;
moveY = 0;
break;
case 'bottom-left':
moveX = 0;
moveY = originalHeight;
break;
case 'bottom-right':
moveX = originalWidth;
moveY = originalHeight;
break;
case 'center':
moveX = originalWidth / 2;
moveY = originalHeight / 2;
break;
}
new Effect.Parallel(
[ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: opacityTransition }),
new Effect.Scale(element, 0, { sync: true, transition: moveTransition }),
new Effect.MoveBy(element, moveY, moveX, { sync: true, transition: scaleTransition }) ],
options);
}
Effect.Pulsate = function(element) {
var options = arguments[1] || {};
var transition = options.transition || Effect.Transitions.sinoidal;
var reverser = function(pos){ return transition(1-Effect.Transitions.pulse(pos)) };
reverser.bind(transition);
new Effect.Opacity(element,
{ duration: 3.0,
afterFinish: function(effect) { Element.show(effect.element); }
}.extend(options).extend({transition: reverser}));
}
Effect.Fold = function(element) {
$(element).style.overflow = 'hidden';
new Effect.Scale(element, 5, {
scaleContent: false,
scaleTo: 100,
scaleX: false,
afterFinish: function(effect) {
new Effect.Scale(element, 1, {
scaleContent: false,
scaleTo: 0,
scaleY: false,
afterFinish: function(effect) { Element.hide(effect.element) } });
}}.extend(arguments[1] || {}));
}
// old: new Effect.ContentZoom(element, percent)
// new: Element.setContentZoom(element, percent)
Element.setContentZoom = function(element, percent) {
var element = $(element);
element.style.fontSize = (percent/100) + "em";
if(navigator.appVersion.indexOf('AppleWebKit')>0) window.scrollBy(0,0);
}

+ 119
- 0
squelettes/2012/js/moo.fx.js View File

@@ -0,0 +1,119 @@
/*
moo.fx, simple effects library built with prototype.js (http://prototype.conio.net).
by Valerio Proietti (http://mad4milk.net) MIT-style LICENSE.
for more info (http://moofx.mad4milk.net).
10/24/2005
v(1.0.2)
*/
//base
var fx = new Object();
fx.Base = function(){};
fx.Base.prototype = {
setOptions: function(options) {
this.options = {
duration: 500,
onComplete: ''
}
Object.extend(this.options, options || {});
},
go: function() {
this.duration = this.options.duration;
this.startTime = (new Date).getTime();
this.timer = setInterval (this.step.bind(this), 13);