Browse Source

[html] depot initial squelette kamakura

master v1.3.0
erational 5 months ago
commit
d9cc028379
84 changed files with 37214 additions and 0 deletions
  1. +54
    -0
      404.html
  2. +158
    -0
      _patron_article.html
  3. +21
    -0
      article.html
  4. +21
    -0
      auteur.html
  5. +26
    -0
      base/kamakura.php
  6. +6
    -0
      contact.html
  7. +4556
    -0
      css/all.css
  8. +2744
    -0
      css/animate.css
  9. +9887
    -0
      css/bootstrap.css
  10. BIN
      css/font/montserrat-v14-latin-300.woff
  11. BIN
      css/font/montserrat-v14-latin-300.woff2
  12. BIN
      css/font/montserrat-v14-latin-500.woff
  13. BIN
      css/font/montserrat-v14-latin-500.woff2
  14. BIN
      css/font/montserrat-v14-latin-700.woff
  15. BIN
      css/font/montserrat-v14-latin-700.woff2
  16. BIN
      css/font/montserrat-v14-latin-900.woff
  17. BIN
      css/font/montserrat-v14-latin-900.woff2
  18. BIN
      css/font/montserrat-v14-latin-regular.woff
  19. BIN
      css/font/montserrat-v14-latin-regular.woff2
  20. +1645
    -0
      css/style.css
  21. +64
    -0
      formulaires/configurer_kamakura.html
  22. +19
    -0
      formulaires/recherche.html
  23. BIN
      img/404.png
  24. BIN
      img/but-top.png
  25. BIN
      img/kamakura.png
  26. BIN
      img/logo-generique.png
  27. +2
    -0
      img/search.svg
  28. BIN
      img/test.jpg
  29. +134
    -0
      inc/article.html
  30. +50
    -0
      inc/article_card.html
  31. +41
    -0
      inc/article_illus.html
  32. +39
    -0
      inc/article_preview.html
  33. +61
    -0
      inc/auteur.html
  34. +51
    -0
      inc/footer.html
  35. +27
    -0
      inc/head.html
  36. +83
    -0
      inc/header.html
  37. +17
    -0
      inc/header_ssmenu.html
  38. +22
    -0
      inc/liste_articles.html
  39. +30
    -0
      inc/logo_article.html
  40. +73
    -0
      inc/recherche.html
  41. +34
    -0
      inc/recherche_liste_articles.html
  42. +98
    -0
      inc/rubrique.html
  43. +15
    -0
      inc/rubrique_liste_articles_actu.html
  44. +15
    -0
      inc/rubrique_liste_articles_numero.html
  45. +29
    -0
      inc/sommaire_actu.html
  46. +37
    -0
      inc/sommaire_intro.html
  47. +50
    -0
      inc/sommaire_outro.html
  48. +6818
    -0
      js/bootstrap.bundle.js
  49. +67
    -0
      js/gui.js
  50. +509
    -0
      js/wow.js
  51. +53
    -0
      kamakura_administrations.php
  52. +20
    -0
      kamakura_options.php
  53. +102
    -0
      lang/kamakura_fr.php
  54. +15
    -0
      lang/paquet-kamakura_fr.php
  55. +52
    -0
      modeles/image.html
  56. +7
    -0
      mot.html
  57. +30
    -0
      paquet.xml
  58. +6
    -0
      plan.html
  59. +7
    -0
      prive/squelettes/contenu/configurer_kamakura.html
  60. +15
    -0
      prive/squelettes/navigation/configurer_kamakura.html
  61. BIN
      prive/themes/spip/images/kamakura-128.png
  62. BIN
      prive/themes/spip/images/kamakura-16.png
  63. BIN
      prive/themes/spip/images/kamakura-24.png
  64. BIN
      prive/themes/spip/images/kamakura-48.png
  65. BIN
      prive/themes/spip/images/kamakura.png
  66. +21
    -0
      recherche.html
  67. +27
    -0
      robots.txt.html
  68. +24
    -0
      rubrique.html
  69. +21
    -0
      sommaire.html
  70. BIN
      webfonts/fa-brands-400.eot
  71. +3570
    -0
      webfonts/fa-brands-400.svg
  72. BIN
      webfonts/fa-brands-400.ttf
  73. BIN
      webfonts/fa-brands-400.woff
  74. BIN
      webfonts/fa-brands-400.woff2
  75. BIN
      webfonts/fa-regular-400.eot
  76. +803
    -0
      webfonts/fa-regular-400.svg
  77. BIN
      webfonts/fa-regular-400.ttf
  78. BIN
      webfonts/fa-regular-400.woff
  79. BIN
      webfonts/fa-regular-400.woff2
  80. BIN
      webfonts/fa-solid-900.eot
  81. +4938
    -0
      webfonts/fa-solid-900.svg
  82. BIN
      webfonts/fa-solid-900.ttf
  83. BIN
      webfonts/fa-solid-900.woff
  84. BIN
      webfonts/fa-solid-900.woff2

+ 54
- 0
404.html View File

@ -0,0 +1,54 @@
[(#REM)
page 404
param:
- (rien)
]#HTTP_HEADER{HTTP/1.0 #ENV{code,'404 Not Found'}}
#HTTP_HEADER{"Cache-Control: no-store, no-cache, must-revalidate"}
#HTTP_HEADER{Pragma: no-cache}<!DOCTYPE html>
<html lang="#LANG">
<head>
<INCLURE{fond=inc/head,no-bot=oui} />
<title><:pass_erreur:> [(#ENV{status, 404}|intval) - ][(#NOM_SITE_SPIP|textebrut)]</title>
</head>
<body>
<INCLURE{fond=inc/header} />
<!-- content -->
<div class="content container">
<div class="row">
<!-- content-main -->
<div class="col-md-12 content-main">
<!-- Fil d'Ariane -->
<a name="contenu" accesskey="2"></a>
<!-- content -->
<div class="content-main-wrapper article-texte">
<div class="article-header pt-5">
<h1 class="article-h1"><:pass_erreur:> [(#ENV{status, 404}|intval)]</h1>
<div class="article-slot"></div>
</div>
<div class="article-body text-center wow wobble">
<h2><:kamakura:404_sorry:></h2>
[<img src="(#CHEMIN{img/404.png})" alt="<:pass_erreur:> 404" >]
</div>
</div>
<!-- #content -->
</div>
<!-- #content-main -->
</div>
</div>
<INCLURE{fond=inc/footer} />
</body>
</html>

+ 158
- 0
_patron_article.html View File

@ -0,0 +1,158 @@
[(#REM)
patron de la page article
]<!doctype html>
<html lang="#LANG">
<head>
<title>#NOM_SITE_SPIP - Page Patron ARTICLE </title>
<INCLURE{fond=inc/head,no-bot=oui} />
</head>
<body>
<INCLURE{fond=inc/header, id_rubrique=1} />
<!-- content :header -->
<div class="bg-gray content-header-wrapper">
<div class="content container">
<div class="row">
<!-- ariane -->
<div class="col-md-12">
<div class="ariane">
<ul>
<li class="home"><a href="#URL_SITE_SPIP">Accueil</a><span><i class="fas fa-caret-right"></i></span></li>
<li><a href="rubrique1.html">Démonstration</a><span><i class="fas fa-caret-right"></i></span></li>
<li><a href="rubrique298.html" class="on">Saison 2020-2021</a></li>
</ul>
</div>
</div>
<!-- article-header -->
<div class="col-md-10 offset-md-1">
<div class="article-header">
<div class="article-event-date">Saison 2020-2021</div>
<h1 class="article-h1">Squelette Kamakura</h1>
<div class="article-descriptif">
Lorem ipsum dolor sit amet consectetuer dignissim pretium porttitor ullamcorper Nam. Urna Pellentesque porttitor eu eros risus vitae metus interdum risus Vivamus. Orci congue Cras pretium ipsum convallis quam ut mattis Integer id. Donec ac egestas lobortis consectetuer Sed fringilla orci sed dui pretium. Suspendisse pede et orci nibh ipsum pede.
</div>
<div class="article-chapo">
Sagittis congue ac amet orci ut Donec nec <a href="###">turpis urna risus</a>. Augue eros est dui orci porttitor nunc Mauris Quisque Vestibulum Vestibulum. Turpis elit orci non nec lobortis eros ut justo leo at. Eu feugiat vitae molestie Nam metus Nunc condimentum id nunc in. Pede urna metus nibh elit dis risus enim neque Curabitur Aenean. Sem ligula hendrerit Integer.
</div>
</div>
</div>
</div>
</div>
</div>
<!-- #content :header -->
<!-- content :main -->
<div class="bg-white">
<div class="content container">
<div class="row">
<!-- article-body -->
<div class="col-md-10 offset-md-1">
<div class="article-body">
<p> <span class='spip_document_15941 spip_documents spip_documents_right'>
[(#CHEMIN{img/kamakura.png}|image_reduire{300,0})]
</span></p>
<p>Turpis pretium ante nibh ligula ut sed justo <a href="">Pellentesque metus Vivamus</a>. Id vel fermentum eu tincidunt sed enim lorem magnis sapien senectus. Et interdum justo orci a dui Nam tincidunt Suspendisse Ut nibh. Massa Mauris ut Duis ornare quis magnis gravida amet in tincidunt. Tincidunt eu vel Vestibulum pretium justo et urna.</p>
<blockquote class="spip">
Pellentesque metus Vivamus. 20% Id vel fermentum eu tincidunt sed enim lorem magnis sapien senectus. Et interdum justo orci a dui Nam tincidunt Suspendisse Ut nibh. Massa Mauris ut Duis ornare quis magnis gravida amet in tincidunt.
</blockquote>
<p>Ante nibh ligula ut sed justo Pellentesque metus Vivamus. Id vel fermentum eu tincidunt sed enim lorem magnis sapien senectus. Et interdum justo orci a dui Nam tincidunt Suspendisse Ut nibh. Massa Mauris ut Duis ornare quis magnis gravida amet in tincidunt. Tincidunt eu vel Vestibulum pretium justo et urna.</p>
<h2 class="spip">Test video</h2>
#MODELE{oembed,url=https://www.youtube.com/watch?v=lGYi_v8ItX8}
<h2 class="spip">Objectifs</h2>
<p>Turpis pretium ante nibh ligula ut sed justo Pellentesque metus Vivamus. Id vel fermentum eu tincidunt sed enim lorem magnis sapien senectus. Et interdum justo orci a dui Nam tincidunt Suspendisse Ut nibh. Massa Mauris ut Duis ornare quis magnis gravida amet in tincidunt. Tincidunt eu vel Vestibulum pretium justo et urna.</p>
<ul class='spip'>
<li>Concevoir, fabriquer et documenter une réalisation technique numérique.</li>
<li>Concevoir et documenter un parcours pédagogique mobilisant cette réalisation technique, adapté à son contexte professionnel.</li>
<li>D’utiliser les base de l’électronique programmable (Arduino) pour fabriquer des projets</li>
<li>Connaitre et mobiliser des compétences et ressources en fabrication numérique sur son territoire.</li>
<li>Se constituer un réseau d’homologue sur le territoire en vue de projets collaboratifs.</li>
</ul>
<h2 class="spip">Des graphes aussi</h2>
<p> <span class='spip_document_15941 spip_documents spip_documents_center'>
[(#CHEMIN{img/test.jpg}|balise_img)]
</span></p>
<p>Eu sagittis In sed leo Cras Nunc vel aliquam Curabitur Sed. Sed ut non accumsan orci nunc rutrum lorem nibh cursus mauris. Egestas faucibus elit Sed tempus Nullam natoque massa eu lorem et. Id consectetuer risus elit massa ac vitae faucibus laoreet ligula tristique. Ante Vivamus hac volutpat fringilla eget sem ipsum vel hac turpis. </p>
<p>Dui Vestibulum id Proin id Nunc orci augue id leo et. Augue congue adipiscing aliquam quis lobortis enim at dui scelerisque egestas. Vitae et cursus semper ornare sollicitudin cursus orci Vestibulum Nam at. Euismod mauris convallis porta tristique et neque Sed venenatis pellentesque vel. Magna accumsan sit at porttitor pharetra semper condimentum tortor elit vitae. Ut et vitae habitant quam et Aenean elit Mauris.</p>
<p>Nibh ut scelerisque accumsan Vestibulum interdum tristique elit condimentum nisl tellus. A Lorem mauris facilisis vel aliquam sed justo sed tempus ligula. Morbi magnis vitae Phasellus egestas Duis rutrum cursus ac sit eu. Donec porta metus velit Nam Donec vel nec montes eros rhoncus. Massa quis convallis convallis semper sed consectetuer habitant gravida Duis.</p>
<blockquote class="spip">
<p>La finalité est de permettre aux stagiaires de se construire une culture numérique sur la fabrication numérique dans la perspective de transposer dans le domaine professionnel.</p>
</blockquote>
<p>Felis vitae elit ut sem quam orci Vestibulum ante nibh nec. Enim ridiculus tincidunt Nam dui metus sed In ipsum nec et. Habitasse ultrices id Suspendisse ligula dui leo elit Maecenas quis nibh. Justo auctor eget neque dapibus aliquam Aenean purus orci tincidunt In. Vivamus metus semper interdum ante pellentesque est nibh eu ac.</p>
<h2 class="spip">Tableaux</h2>
<table class="spip">
<thead>
<tr>
<th>Parfum</th>
<th>Valeur</th>
</tr>
</thead>
<tbody>
<tr class='row_odd odd'>
<td>Vanilla</td>
<td>15.05</td>
</tr>
<tr class='row_even even'>
<td>Chocolat</td>
<td>25.05</td>
</tr>
<tr class='row_odd odd'>
<td>Berries</td>
<td>5.25</td>
</tr>
<tr class='row_even even'>
<td>Mangue</td>
<td>25.05</td>
</tr>
</tbody>
</table>
<p>Neque Cum Suspendisse mi consequat tempus id congue fringilla Vivamus eros. Proin eget nulla Nullam Curabitur platea mauris amet faucibus consequat lorem. Laoreet turpis condimentum sagittis id odio Vivamus Maecenas dui quis est. Neque justo et pretium nisl augue tincidunt consequat Sed ligula sociis. Vel ac molestie enim orci ante Morbi volutpat ante tempus tristique. Tincidunt interdum.</p>
</div>
<!-- #article-body -->
</div>
<!-- #content-main -->
</div>
</div>
</div>
<!-- #content -->
<INCLURE{fond=inc/footer} />
</body>
</html>

+ 21
- 0
article.html View File

@ -0,0 +1,21 @@
[(#REM)
page article
param:
- id_article
]<BOUCLE_art(ARTICLES){id_article}><!DOCTYPE html>
<html lang="#LANG">
<head>
<INCLURE{fond=inc/head} />
<title>[(#TITRE|couper{50,'&nbsp;\[...\]'}|textebrut)] - [(#NOM_SITE_SPIP|textebrut)]</title>
[<meta name="description" content="(#INTRODUCTION{130}|attribut_html)" />]
[<link rel="canonical" href="(#URL_ARTICLE|url_absolue)" />]
</head>
<body>
<INCLURE{fond=inc/header, id_rubrique} />
<INCLURE{fond=inc/article, id_article} />
<INCLURE{fond=inc/footer} />
</body>
</html></BOUCLE_art>

+ 21
- 0
auteur.html View File

@ -0,0 +1,21 @@
[(#REM)
page auteur
param:
- id_auteur
]<BOUCLE_auteur(AUTEURS){id_auteur}{tout}><!DOCTYPE html>
<html lang="#LANG">
<head>
<INCLURE{fond=inc/head} />
<title>[(#NOM_AUTEUR|oui)#PRENOM_AUTEUR #NOM_AUTEUR][(#NOM_AUTEUR|non)#NOM][ - (#NOM_SITE_SPIP|textebrut) ]</title>
[<meta name="description" content="(#BIO{150}|attribut_html)" />]
[<link rel="canonical" href="(#URL_AUTEUR|url_absolue)" />]
</head>
<body>
<INCLURE{fond=inc/header} />
<INCLURE{fond=inc/auteur, id_auteur} />
<INCLURE{fond=inc/footer} />
</body>
</html></BOUCLE_auteur>

+ 26
- 0
base/kamakura.php View File

@ -0,0 +1,26 @@
<?php
if (!defined("_ECRIRE_INC_VERSION")) {
return;
}
function kamakura_declarer_champs_extras($champs = array()) {
// Table spip_rubriques
$champs['spip_rubriques']['kamakura_type_rubrique'] = array(
'saisie' => 'radio',
'options' => array(
'nom' => 'kamakura_type_rubrique',
'label' => _T('kamakura:kamakura_type_rubrique'),
'sql' => "varchar(30) NOT NULL DEFAULT ''",
'defaut' => 'tri_date',
'datas' => array(
'tri_date' => _T('kamakura:kamakura_type_rubrique_tri_date'),
'tri_num' => _T('kamakura:kamakura_type_rubrique_tri_num'),
),
'restrictions'=>array('voir' => array('auteur' => ''), //Tout le monde peut voir
'modifier' => array('auteur' => 'webmestre')), //Seuls les webmestres peuvent modifier
),
);
return $champs;
}

+ 6
- 0
contact.html View File

@ -0,0 +1,6 @@
[(#REM)
contact
on desactive
]<INCLURE{fond=404} />

+ 4556
- 0
css/all.css
File diff suppressed because it is too large
View File


+ 2744
- 0
css/animate.css
File diff suppressed because it is too large
View File


+ 9887
- 0
css/bootstrap.css
File diff suppressed because it is too large
View File


BIN
css/font/montserrat-v14-latin-300.woff View File


BIN
css/font/montserrat-v14-latin-300.woff2 View File


BIN
css/font/montserrat-v14-latin-500.woff View File


BIN
css/font/montserrat-v14-latin-500.woff2 View File


BIN
css/font/montserrat-v14-latin-700.woff View File


BIN
css/font/montserrat-v14-latin-700.woff2 View File


BIN
css/font/montserrat-v14-latin-900.woff View File


BIN
css/font/montserrat-v14-latin-900.woff2 View File


BIN
css/font/montserrat-v14-latin-regular.woff View File


BIN
css/font/montserrat-v14-latin-regular.woff2 View File


+ 1645
- 0
css/style.css
File diff suppressed because it is too large
View File


+ 64
- 0
formulaires/configurer_kamakura.html View File

@ -0,0 +1,64 @@
<div class="formulaire_spip formulaire_configurer formulaire_#FORM">
<h3 class="titrem"><:kamakura: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
<fieldset>
<legend><:kamakura:cfg_menu:></legend>
[(#SAISIE{case, afficher_moteur_recherche,
label=<:kamakura:cfg_afficher_moteur_recherche:>,
label_case=<:kamakura:cfg_afficher_moteur_recherche_case:>})]
[(#SAISIE{case, afficher_accueil,
label=<:kamakura:cfg_afficher_accueil:>,
label_case=<:kamakura:cfg_afficher_accueil_case:>})]
</fieldset>
<fieldset>
<legend><:kamakura:cfg_homepage:></legend>
[(#SAISIE{selecteur_article, home_outro,
multiple=non,
label=<:kamakura:cfg_home_outro:>,
explication=<:kamakura:cfg_home_outro_explication:>})]
[(#SAISIE{selecteur_rubrique, home_rubrique_outro,
multiple=non,
label=<:kamakura:cfg_home_rubrique_outro:>,
explication=<:kamakura:cfg_home_rubrique_outro_explication:>})]
</fieldset>
<fieldset>
<legend><:kamakura:cfg_footer:></legend>
[(#SAISIE{textarea, footer_adresse,
rows=8,
inserer_barre=edition,
label=<:kamakura:cfg_footer_adresse:>})]
[(#SAISIE{selecteur_article, footer_articles_contact,
multiple=non,
label=<:kamakura:cfg_footer_articles_contact:>,
explication=<:kamakura:cfg_footer_articles_contact_explication:>})]
[(#SAISIE{selecteur_article, footer_articles,
multiple=oui,
label=<:kamakura:cfg_footer_articles:>,
explication=<:kamakura:cfg_footer_articles_explication:>})]
</fieldset>
<input type="hidden" name="_meta_casier" value="kamakura" />
<p class="boutons"><span class="image_loading">&nbsp;</span><input type="submit" class="submit" value="<:bouton_enregistrer:>" /></p>
</div>
</form>
</div>
<div style="padding:1rem;background-color:#eee;text-align:center"><:kamakura:ours:></div>

+ 19
- 0
formulaires/recherche.html View File

@ -0,0 +1,19 @@
[(#REM)
formulaire de recherche
param:
- recherche (facultatif) la recherche
]<form action="[(#ENV{action})]" method="get" class="search-form">
<fieldset>
[(#ENV{action}|form_hidden)]
<input type="hidden" name="lang" value="#LANG" />
<input name="page" value="recherche" type="hidden"/>
<input type="search" class="span search" placeholder="<:kamakura:recherche_recherche:>" accesskey="4" name="recherche" id="recherche" [ value="(#ENV{recherche})"]>
<!-- <input type="submit" class="search-submit" value="OK" />-->
<input type="image" class="search-submit" src="#CHEMIN{img/search.svg}" alt="" />
</fieldset>
</form>

BIN
img/404.png View File

Before After
Width: 400  |  Height: 425  |  Size: 1.5 KiB

BIN
img/but-top.png View File

Before After
Width: 50  |  Height: 50  |  Size: 421 B

BIN
img/kamakura.png View File

Before After
Width: 800  |  Height: 800  |  Size: 13 KiB

BIN
img/logo-generique.png View File

Before After
Width: 800  |  Height: 800  |  Size: 54 KiB

+ 2
- 0
img/search.svg View File

@ -0,0 +1,2 @@
<svg aria-hidden="true" data-prefix="fas" data-icon="search" class="svg-inline--fa fa-search fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="#000000" d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"></path></svg>

BIN
img/test.jpg View File

Before After
Width: 719  |  Height: 408  |  Size: 62 KiB

+ 134
- 0
inc/article.html View File

@ -0,0 +1,134 @@
[(#REM)
article entier
- contenu (compatible crayons)
- la barre outils est inspiree de inspi plugin outils_article http://www.spip-contrib.net/Boite-a-outils-pour-article,1
- avec portfolio
- agenda
logo: on affiche le logo
param:
- id_article
]<BOUCLE_findArt(ARTICLES){id_article}>
<!-- content :header -->
<div class="bg-gray content-header-wrapper">
<div class="content container">
<div class="row">
<!-- ariane -->
<div class="col-md-12">
<div class="ariane">
<ul>
<li class="home"><a href="#URL_SITE_SPIP"><:kamakura:accueil_site:></a><BOUCLE_is_ariane(HIERARCHIE){id_article}{titre !=='^999.'}{0,n}> </BOUCLE_is_ariane><span><i class="fas fa-caret-right"></i></span></B_is_ariane></li>
<BOUCLE_ariane(HIERARCHIE){id_article}{titre !=='^999.'}{0,n}><li[(#ID_RUBRIQUE|=={#_findArt:ID_RUBRIQUE}|oui) class="on"]><a href="#URL_RUBRIQUE">[(#TITRE|couper{50})]</a>[(#ID_RUBRIQUE|=={#_findArt:ID_RUBRIQUE}|non)<span><i class="fas fa-caret-right"></i></span>]</li></BOUCLE_ariane>
</ul>
</div>
</div>
<!-- article-header -->
<div class="col-md-10 offset-md-1">
<div class="article-header">
[(#REM)
on affiche le titre rubrique
si
- rubrique n'est pas cachée 999.
- le titre de la rubrique n'est pas le meme que celui de l'article
]
<BOUCLE_nom_rub(RUBRIQUES){id_rubrique}>
[(#RANG|=={999}|non)
[(#_findArt:TITRE|supprimer_numero|=={#TITRE|supprimer_numero}|non)
<div class="article-event-date">#TITRE</div>
]
]
</BOUCLE_nom_rub>
[<h1 class="article-h1 #EDIT{titre}">(#TITRE)</h1>]
[<div class="article-descriptif #EDIT{descriptif}">(#DESCRIPTIF)</div>]
[<div class="article-chapo #EDIT{chapo}">(#CHAPO)</div>]
</div>
</div>
</div>
</div>
</div>
<!-- #content :header -->
<!-- content :main -->
<div class="bg-white">
<div class="content container">
<div class="row">
<!-- article-body -->
<div class="col-md-10 offset-md-1">
<div class="article-body">
[<div class="article-logo">(#LOGO_ARTICLE|image_reduire{1200,0}|inserer_attribut{class,no-logo}|inserer_attribut{alt,#TITRE})</div>]
[<h2 class="#EDIT{soustitre} article-soustitre">(#SOUSTITRE)</h2>]
[<div class="#EDIT{texte} article-texte">(#TEXTE|image_reduire{1200,0})</div>]
[<div class="hypertxt"><strong>URL: </strong> <a href="#URL_SITE" class="spip_out">(#NOM_SITE)</a></div>]
[<div class="article-notes">(#NOTES)</div>]
[(#REM) Portfolio]
<B_doc>
<div class="content-sidebar-portfolio">
<BOUCLE_doc(DOCUMENTS){id_article}{extension IN png,jpg,gif}{par rang_lien}{vu=non}{doublons portaits}>
<figure class="myportfolio-item">
[(#FICHIER|image_reduire{800,0})]
[(#TITRE|sinon{#DESCRIPTIF}|sinon{#CREDITS}|oui)
<figcaption>
<span class="figcaption-titre">#TITRE</span>
[<span class="figcaption-desc">(#DESCRIPTIF|supprimer_tags)</span>]
[<span class="figcaption-credits">(#DESCRIPTIF|supprimer_tags)</span>]
</figcaption>]
</figure>
</BOUCLE_doc>
</div>
</B_doc>
<BOUCLE_doc_exclure_img(DOCUMENTS){id_article}{extension IN png,jpg,gif}{mode=document}{doublons}> </BOUCLE_doc_exclure_img>
[<!-- autre doc -->(#REM) Autres documents joints a l'article]
<BOUCLE_docjoint(DOCUMENTS){id_article}{mode=document}{doublons}{par rang_lien}>
<div class="docjoint">
<a href="#URL_DOCUMENT" title="<:bouton_telecharger:>" type="#MIME_TYPE" download>
#LOGO_DOCUMENT
<small>#TYPE_DOCUMENT[ - (#TAILLE|taille_en_octets)]</small>
[<div class="docjoint-titre">(#TITRE|sinon{#FICHIER|basename}|couper{50})</div>
</a>]
[<div class="docjoint-desc">(#DESCRIPTIF)</div]
</div>
</BOUCLE_docjoint>
</div>
<!-- #article-body -->
</div>
<!-- #content-main -->
</div>
</div>
</div>
<!-- #content -->
<!-- content :ps -->
[<div class="bg-gray-dark">
<div class="content container">
<div class="row">
<div class="col-md-10 offset-md-1">
<div class="article-ps article-body #EDIT{ps}">
(#PS)
</div>
</div>
</div>
</div>
</div>]
<!-- #content :ps -->
</BOUCLE_findArt>
#FILTRE{trim}

+ 50
- 0
inc/article_card.html View File

@ -0,0 +1,50 @@
[(#REM)
article présenté sous forme de card
param:
- id_article
]<BOUCLE_art(ARTICLES){id_article}>
<!-- card art #ID_ARTICLE -->
<div class="col-lg-4 mb-5">
<div class="card-event h-100">
<div class="card-event-top">
<div class="card-event-img">
[(#REM)
on recherche la meilleure image
si un logo est trouvé, on lui applique la centre / direction artistique
https://23forward.com/Plugin-centre_image
]
[(#SET{illus,#CHEMIN{img/logo-generique.png}})]
[(#SET{l,360})]
[(#SET{h,360})]
[(#LOGO_ARTICLE|oui)
[<a href="#URL_ARTICLE">(#LOGO_ARTICLE|image_proportions{#GET{l},#GET{h},focus}|inserer_attribut{class,no_logo})</a>]
]
[(#LOGO_ARTICLE|non)
[<a href="#URL_ARTICLE">(#GET{illus}|image_passe_partout{#GET{l},#GET{h}}|image_recadre{#GET{l},#GET{h}}|inserer_attribut{class,no_logo})</a>]
]
</div>
<div class="card-event-keyword">
<BOUCLE_rub(RUBRIQUES){id_rubrique}>
<a href="#URL_RUBRIQUE" class="card-event-keyword-link">
[<span>(#TITRE|couper{50})</span>]
</a>
</BOUCLE_rub>
</div>
</div>
<div class="card-event-body">
<div class="card-event-date">
[(#DATE|nom_jour|ucfirst)]
[(#DATE|affdate{'j'})]
[(#DATE|nom_mois|ucfirst)]
</div>
<div class="card-event-titre">
<a href="#URL_ARTICLE">#TITRE</a>
</div>
</div>
</div>
</div>
</BOUCLE_art>

+ 41
- 0
inc/article_illus.html View File

@ -0,0 +1,41 @@
[(#REM)
retourner l'illustration principale d'un article aux dimensions indiquées
sinon retourne une image générique
on ne prend pas le logo qui sert pour la banniere
param:
- id_article
- l largeur - defaut : 500
- h hauteur - defaut : 500
- titre
- objet (facultatif) permet d'etendre à sur d'autres types d'objets que les mots
- image_generique (facultatif) - permet de forcer l'image generique
- valeur "non" permet de n'avoir aucune image
requiert :
- plugin centre_image
]
[(#SET{l,#ENV{l}|sinon{500}})]
[(#SET{h,#ENV{h}|sinon{500}})]
<BOUCLE_a(ARTICLES){id_article}{si #ENV{objet}|non}>
<BOUCLE_img(DOCUMENTS){id_article}
{extension IN jpg,gif,png}
{par rang_lien, num titre, titre}
{largeur>=#GET{l}}
{hauteur>=#GET{h}}
{0,1}
>
[(#FICHIER|image_proportions{#GET{l},#GET{h},focus}|image_reduire{#GET{l},#GET{h}}|inserer_attribut{alt,#ENV{titre}|textebrut})]
</BOUCLE_img></B_img>
[(#ENV{image_generique}|non) [(#CHEMIN{img/article-illustration-generique.jpg}|image_passe_partout{#GET{l},#GET{h}}|image_recadre{#GET{l},#GET{h}}|inserer_attribut{alt,#ENV{titre}|textebrut})] ]
[(#ENV{image_generique}|oui)
[(#ENV{image_generique}|=={non}|non)
[(#CHEMIN{#ENV{image_generique}}|image_passe_partout{#GET{l},#GET{h}}|image_recadre{#GET{l},#GET{h}}|inserer_attribut{alt,#ENV{titre}|textebrut})]
]
]
<//B_img>
</BOUCLE_a>
#FILTRE{trim}

+ 39
- 0
inc/article_preview.html View File

@ -0,0 +1,39 @@
[(#REM)
article preview
param:
- id_article
- article_preview_short (facultatif) affichage allegé
- affiche_categorie (facultatif) affiche la rubrique non caché
]<BOUCLE_art(ARTICLES){id_article}>
<!-- article-preview #ID_ARTICLE-->
<div class="article-preview[(#ENV{article_preview_short}|oui) article-preview-short]">
<BOUCLE_rub(RUBRIQUES){id_rubrique}{titre !=='^[99]'}{si #ENV{affiche_categorie}|oui}>
<div class="article-preview-theme">#TITRE</div>
</BOUCLE_rub>
<a href="#URL_ARTICLE" class="article-preview-texte">
[<div class="article-surtitre">(#SURTITRE|couper{100})</div>]
<h1 class="article-preview-titre">
<i class="fas fa-circle"></i> #TITRE
</h1>
<div class="article-preview-img">
[(#ENV{article_preview_short}|non)
[(#LOGO_ARTICLE|image_passe_partout{300,300}|image_recadre{300,300}|inserer_attribut{class,img-rounded})]
]
</div>
[(#ENV{article_preview_short}|non)
<div class="article-preview-intro">
[(#INTRODUCTION|couper{300})]
</div>
]
</a>
[(#ENV{article_preview_short}|non)
<div class="article-preview-meta">
[(#DATE|nom_jour|ucfirst) ][(#DATE|affdate)][ - par (#LESAUTEURS)]
</div>]
</div>
<!-- #article-preview -->
</BOUCLE_art>
#FILTRE{trim}

+ 61
- 0
inc/auteur.html View File

@ -0,0 +1,61 @@
[(#REM)
noisette auteur
param:
- id_mot
]<BOUCLE_auteur(AUTEURS){id_auteur}{tout}>
<!-- content :header -->
<div class="bg-gray content-header-wrapper">
<div class="content container">
<div class="row">
<!-- ariane -->
<div class="col-md-12">
<div class="ariane">
<ul>
<li class="home"><a href="#URL_SITE_SPIP"><:kamakura:accueil_site:></a></li>
</ul>
</div>
</div>
<!-- article-header -->
<div class="col-md-10 offset-md-1">
<div class="article-header">
[<h1 class="#EDIT{titre} article-h1">(#NOM)</h1>]
</div>
</div>
</div>
</div>
</div>
<!-- #content :header -->
<!-- content :main -->
<div class="bg-white">
<div class="content container">
<div class="row">
<!-- article-body -->
<div class="col-md-10 offset-md-1">
<div class="article-body">
[<div class="article-logo">(#LOGO_AUTEUR|image_reduire{300,300}|inserer_attribut{class,no-logo}|inserer_attribut{alt,#TITRE})</div>]
[<div class="#EDIT{bio} article-texte">(#BIO)</div>]
[<div class="#EDIT{hyperlien} article-hyperlien">URL: <a href="(#URL_SITE)" class="spip_out">#URL_SITE</a></div>]
[<div class="notes articles-notes">(#NOTES)</div>]
<!-- auteur contact ? -->
[<br /><div class="spacer"></div>(#FORMULAIRE_ECRIRE_AUTEUR)]
</div>
<!-- #article-body -->
</div>
<!-- #content-main -->
</div>
</div>
</div>
<!-- #content -->
</BOUCLE_auteur>

+ 51
- 0
inc/footer.html View File

@ -0,0 +1,51 @@
[(#REM)
pied de page
param:
- langue
]<!-- footer -->
<footer class="footer">
<div class="container">
[<div class="go-top">
<a href="#top"><img src="(#CHEMIN{img/but-top.png})" alt="haut de page" width="50" height="50" /></a>
</div>]
<!-- footer-row-1 -->
<div class="row footer-row-1">
<div class="col-lg-3 footer-logo">
[<img src="(#CHEMIN{img/logo.svg})" alt="#NOM_SITE_SPIP" class="footer-logo-img" />]
</div>
<div class="col-lg-6 footer-adresse">
[<div class="footer-adresse-inner #EDIT{meta-kamakura/footer_adresse}">(#CONFIG{kamakura/footer_adresse}|propre)</div>]
</div>
<div class="col-lg-3 footer-contact">
<BOUCLE_art_contact(ARTICLES){id_article IN #CONFIG{kamakura/footer_articles_contact}|picker_selected{article}}{lang}>
<a href="#URL_ARTICLE" class="bouton">#TITRE</a>
</BOUCLE_art_contact>
</div>
</div>
<!-- #footer-row-1 -->
<!-- footer-row-2 -->
<div class="row footer-row-2">
<div class="col-lg-12">
<div class="footer-copyright">
<BOUCLE_art_copyright(ARTICLES){id_article IN #CONFIG{kamakura/footer_articles}|picker_selected{article}}{lang}>
<a href="#URL_ARTICLE">#TITRE</a>
</BOUCLE_art_copyright>
</div>
</div>
</div>
<!-- #footer-row-2 -->
</div>
</footer>
<!-- #footer -->

+ 27
- 0
inc/head.html View File

@ -0,0 +1,27 @@
[(#REM)
section head
param:
- no-bot: pas indexation
] <meta charset="#CHARSET" />
<meta http-equiv="imagetoolbar" content="no"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
[(#ENV{no-bot}|oui)<meta name="robots" content="none" >]
[(#ENV{no-bot}|non)<meta name="robots" content="index, follow, all">]
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="apple-mobile-web-app-capable" content="no">
<meta name="apple-touch-fullscreen" content="yes">
<meta name="msapplication-tap-highlight" content="no">
#INSERT_HEAD_CSS
<link rel="stylesheet" href="#CHEMIN{css/bootstrap.css}" />
<link rel="stylesheet" href="#CHEMIN{css/animate.css}" />[(#REM) wow.js]
<link rel="stylesheet" href="#CHEMIN{css/all.css}" />[(#REM) fontawesome v5]
<link rel="stylesheet" href="#CHEMIN{css/style.css}" />
[<link rel="stylesheet" href="(#CHEMIN{css/perso.css})" />]
#INSERT_HEAD
<script src="#CHEMIN{js/wow.js}" type='text/javascript'></script>
<script src="#CHEMIN{js/bootstrap.bundle.js}" type='text/javascript'></script>
<script src="#CHEMIN{js/gui.js}" type='text/javascript'></script>
[<link rel="alternate" type="application/rss+xml" title="<:syndiquer_site:>" href="(#URL_PAGE{backend})" />]
#FILTRE{trim}

+ 83
- 0
inc/header.html View File

@ -0,0 +1,83 @@
[(#REM)
header : banniere et barre de navigation
param:
- id_rubrique (facultatif) expose les rubriques
]<!-- header -->
<header role="banner" class="rwd-hidden" id="top">
[(#CONFIG{kamakura/afficher_moteur_recherche}|oui)
<!-- header-search -->
<div class="header-search">
#FORMULAIRE_RECHERCHE
<a class="header-search-ux header-search-untrigger"><i class="fas fa-times"></i></a>
</div>]
<!-- header-inner -->
<div class="container">
<div class="header-inner">
<!-- header-col-2 -->
<div class="header-col-2">
[(#CONFIG{kamakura/afficher_moteur_recherche}|oui)<div class="header-lang">
<a class="header-search-ux header-search-trigger"><i class="fas fa-search"></i></a>
</div>]
<div class="header-title">[<a href="#URL_SITE_SPIP">(#NOM_SITE_SPIP)</a>]</div>
<div class="header-baseline"><span>#SLOGAN_SITE_SPIP</span></div>
</div>
</div>
</div>
<!-- #header-inner -->
<!-- nav-wrapper -->
<div class="nav-wrapper">
<div class="container">
<div class="nav-inner">
[(#REM) navigation importante: 0 < rang < 100]
<ul class="nav nav-primary">
[(#CONFIG{kamakura/afficher_accueil}|oui)<li class="nav-item nav-item-desktop"><a href="#URL_SITE_SPIP" class="nav-link"><:kamakura:accueil_site:></a></li>]
<BOUCLE_nav1(RUBRIQUES){racine}{titre !=='^999.'}{par num titre}>
[(#RANG|<{100}|oui)
<li class="nav-item nav-item-desktop">
<a href="#URL_RUBRIQUE" class="nav-link[ (#EXPOSE)]">#TITRE</a>
<INCLURE{fond=inc/header_ssmenu, id_rubrique}>
</li>]
</BOUCLE_nav1>
</ul>
[(#REM) navigation secondaire 100 < rang < 999]
<ul class="nav nav-secondary">
<BOUCLE_nav2(RUBRIQUES){racine}{titre !=='^999.'}{par num titre}>
[(#RANG|>={100}|oui) <li class="nav-item nav-item-desktop"><a href="#URL_RUBRIQUE" class="nav-link[ (#EXPOSE)]">#TITRE</a></li> ]
</BOUCLE_nav2>
</ul>
</div>
</div>
</div>
<!-- #nav-wrapper -->
</header>
<!-- #header -->
<!-- header responsive (fixed navbar) -->
<nav class="navbar navbar-expand-md navbar-dark fixed-top rwd-show">
<a class="navbar-brand" href="#URL_SITE_SPIP/#LANG">
#NOM_SITE_SPIP
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav mr-auto">
<BOUCLE_rub_rwd(RUBRIQUES){racine}{titre !=='^999.'}>
<li class="nav-item"><a href="#URL_RUBRIQUE" class="nav-link[ (#EXPOSE)]">#TITRE</a></li>
</BOUCLE_rub_rwd>
[(#CONFIG{kamakura/afficher_moteur_recherche}|oui)<li class="nav-item nav-item-search">#FORMULAIRE_RECHERCHE</li>]
</ul>
</div>
</nav>
<!-- header responsive -->
#FILTRE{trim}

+ 17
- 0
inc/header_ssmenu.html View File

@ -0,0 +1,17 @@
[(#REM)
header : noisette pour les sous-menus
param:
- id_rubrique expose les mots-clés
]<BOUCLE_nav1(RUBRIQUES){id_rubrique}>
<B_ss_rub>
<ul class="nav-item-ssmenu">
<BOUCLE_ss_rub(RUBRIQUES){id_parent}{par num titre, titre}>
<li class="nav-item-ssmenu-item"><a href="#URL_RUBRIQUE" class="nav-link[ (#EXPOSE)]">#TITRE</a></li>
</BOUCLE_ss_rub>
</ul>
</B_ss_rub>
</BOUCLE_nav1>
#FILTRE{trim}

+ 22
- 0
inc/liste_articles.html View File

@ -0,0 +1,22 @@
[(#REM)
listing des articles trié par date
param:
- env pour pagination ajax
]<B_actu>
#ANCRE_PAGINATION
[(#ENV{id_auteur}|oui)<h3 class="spip marger-top"><:kamakura:auteur_articles:></h3>]
[(#ENV{id_rubrique}|oui)<h3 class="spip marger-top"><:kamakura:rubrique_articles:></h3>]
<BOUCLE_actu(ARTICLES){id_auteur ?}{id_mot?}{id_rubrique?}{recherche?}{id_mot ?}{!par date}{pagination 6}>
<INCLURE{fond=inc/article_preview, id_article, env} />
</BOUCLE_actu>
[<div class="pagination">
<span class="pagination-titre"><:kamakura:pagination_pages:>:</span>
(#PAGINATION{page})
- #GRAND_TOTAL <:kamakura:resultats_out:>
</div>]
</B_actu>

+ 30
- 0
inc/logo_article.html View File

@ -0,0 +1,30 @@
[(#REM)
retourner le logo d'un article aux dimensions indiqués
sinon retourne une image générique
param:
- id_article
- l largeur - defaut : 500
- h hauteur - defaut : 500
- titre
- objet (facultatif) permet d'etendre à sur d'autres types d'objets que les mots
]
[(#SET{l,#ENV{l}|sinon{500}})]
[(#SET{h,#ENV{h}|sinon{500}})]
<BOUCLE_a(ARTICLES){id_article}{si #ENV{objet}|non}>
[(#LOGO_ARTICLE|oui)[(#LOGO_ARTICLE|image_passe_partout{#GET{l},#GET{h}}|image_recadre{#GET{l},#GET{h}}|inserer_attribut{class,''}|inserer_attribut{alt,#ENV{titre}|textebrut})]]
<BOUCLE_img(DOCUMENTS){id_article}{extension IN jpg,gif,png}{par rang_lien, num titre, titre}{si #LOGO_ARTICLE|non}{0,1}>
[(#FICHIER|image_passe_partout{#GET{l},#GET{h}}|image_recadre{#GET{l},#GET{h}}|image_masque{#GET{masque}}|inserer_attribut{class,#ENV{titre}|textebrut})]]
</BOUCLE_img></B_img>
[(#LOGO_ARTICLE|non)[(#CHEMIN{img/logo-generique.png}|image_passe_partout{#GET{l},#GET{h}}|image_recadre{#GET{l},#GET{h}}|image_masque{#GET{masque}}|inserer_attribut{class,#ENV{titre}|textebrut})]]
<//B_img>
</BOUCLE_a>
<BOUCLE_m(MOTS){id_mot}{si #ENV{objet}|=={mot}|oui}>
[(#LOGO_MOT|oui)[(#LOGO_MOT|image_passe_partout{#GET{l},#GET{h}}|image_recadre{#GET{l},#GET{h}}|inserer_attribut{class,''}|inserer_attribut{alt,#ENV{titre}|textebrut})]]
[(#LOGO_MOT|non)[(#CHEMIN{img/logo-generique.png}|image_passe_partout{#GET{l},#GET{h}}|image_recadre{#GET{l},#GET{h}}|image_masque{#GET{masque}}|inserer_attribut{class,#ENV{titre}|textebrut})]]
</BOUCLE_m>
<BOUCLE_at(AUTEURS){id_auteur}{si #ENV{objet}|=={auteur}|oui}{tout}>
[(#LOGO_AUTEUR|oui)[(#LOGO_AUTEUR|image_reduire{0,#GET{h}}|image_recadre{#GET{l},#GET{h},'center center'}|inserer_attribut{class,''}|inserer_attribut{alt,#ENV{titre}|textebrut})]]
[(#LOGO_AUTEUR|non)[(#CHEMIN{img/logo-generique.png}|image_reduire{0,#GET{h}}|image_recadre{#GET{l},#GET{h},'center center'}|image_masque{#GET{masque}}|inserer_attribut{class,#ENV{titre}|textebrut})]]
</BOUCLE_at>
#FILTRE{trim}

+ 73
- 0
inc/recherche.html View File

@ -0,0 +1,73 @@
[(#REM)
page recherche sur auteurs et articles
param:
- recherche
- env pagination & ajax
]<!-- content :header -->
<div class="bg-gray content-header-wrapper">
<div class="content container">
<div class="row">
<!-- ariane -->
<div class="col-md-12">
<div class="ariane">
<ul>
<li class="home"><a href="#URL_SITE_SPIP"><:accueil_site:></a><span><i class="fas fa-caret-right"></i></span></li>
<li><:kamakura:recherche_titre:></li>
</ul>
</div>
</div>
<!-- article-header -->
<div class="col-md-10 offset-md-1">
<div class="article-header">
<h1 class="article-h1">
[(#ENV{recherche}|non) <:kamakura:recherche_lancer:>]
[(#ENV{recherche}|oui) <:kamakura:recherche_resultat:><br /><i>#ENV{recherche}</i>]
</h1>
<div class="article-search">
#FORMULAIRE_RECHERCHE
</div>
</div>
</div>
</div>
</div>
</div>
<!-- #content :header -->
<!-- content :main -->
<div class="bg-white">
<div class="content container">
<div class="row">
<!-- article-body -->
<div class="col-md-10 offset-md-1">
<div class="article-body">
<div class="rubrique-table-matiere ajax">
#SET{found_result,false}
[(#REM) Phase : recherche articles]
[(#ENV{recherche}|oui)
<INCLURE{fond=inc/recherche_liste_articles,found_resultat=#GET{found_result}, env,ajax}>
]
</div>
</div>
<!-- #article-body -->
</div>
<!-- #content-main -->
</div>
</div>
</div>
<!-- #content -->

+ 34
- 0
inc/recherche_liste_articles.html View File

@ -0,0 +1,34 @@
[(#REM)
listing des articles par recherche
param:
- recherche
- env pour pagination ajax
]
<B_actu>
<!-- <h2 class="marger-top liner-bottom"><:kamakura:resultats_articles:></h2>-->
#ANCRE_PAGINATION
[(#ENV{afficher_compteur}|oui)
[(#GRAND_TOTAL|>{1}|oui)
[<div class="inner pagination-top">
<span class="pagination-titre">(#GRAND_TOTAL) <:kamakura:pagination_gd_total:></span>
</div>]
]
]
<BOUCLE_actu(ARTICLES){recherche?}{!par date}{pagination 6}{lang}>
<INCLURE{fond=inc/article_preview, article_preview_short=oui, affiche_categorie=oui, id_article, env} />
</BOUCLE_actu>
<div class="pagination">
[<span class="pagination-titre"><:kamakura:pagination_pages:>:</span> (#PAGINATION{page}) -]
#GRAND_TOTAL <:kamakura:resultats_out:>
</div>
</B_actu>
[(#ENV{recherche}|oui)
<div class="alert alert-error mt-5 mb-5">
<:kamakura:recherche_nomatch:>
</div>]
<//B_actu>

+ 98
- 0
inc/rubrique.html View File

@ -0,0 +1,98 @@
[(#REM)
rubrique "classique"
- on liste les sous-rubrique
- on liste les articles par date avec pagination
param:
- id_rubrique
- env support de la pagination / ajax
]<BOUCLE_rub(RUBRIQUES){id_rubrique}>
<!-- content :header -->
<div class="bg-gray content-header-wrapper">
<div class="content container">
<div class="row">
<!-- ariane -->
<div class="col-md-12">
<div class="ariane">
<ul>
<li class="home"><a href="#URL_SITE_SPIP"><:kamakura:accueil_site:></a><BOUCLE_is_ariane(HIERARCHIE){id_rubrique}{titre !=='^999.'}{0,n}{tout}> </BOUCLE_is_ariane><span><i class="fas fa-caret-right"></i></span></B_is_ariane></li>
<BOUCLE_ariane(HIERARCHIE){id_rubrique}{titre !=='^999.'}{0,n}{tout}><li[(#ID_RUBRIQUE|=={#_findArt:ID_RUBRIQUE}|oui) class="on"]><a href="#URL_RUBRIQUE">[(#TITRE|couper{50})]</a>[(#ID_RUBRIQUE|=={#_findArt:ID_RUBRIQUE}|non)<span><i class="fas fa-caret-right"></i></span>]</li></BOUCLE_ariane>
</ul>
</div>
</div>
<!-- article-header -->
<div class="col-md-10 offset-md-1">
<div class="article-header">
[<h1 class="article-h1 #EDIT{titre}">(#TITRE)</h1>]
[<div class="article-descriptif #EDIT{descriptif}">(#DESCRIPTIF)</div>]
</div>
</div>
</div>
</div>
</div>
<!-- #content :header -->
<!-- content :main -->
<div class="bg-white">
<div class="content container">
<div class="row">
<!-- article-body -->
<div class="col-md-10 offset-md-1">
<div class="article-body">
[<div class="article-logo">(#LOGO_RUBRIQUE|image_reduire{1200,0}|inserer_attribut{class,no-logo}|inserer_attribut{alt,#TITRE})</div>]
[<div class="#EDIT{texte} article-texte">(#TEXTE|image_reduire{1200,0})</div>]
<!-- rubrique > sous-rubriques -->
<B_ss_rub>
<div class="liste-rubriques">
<BOUCLE_ss_rub(RUBRIQUES){id_parent}{par num titre, titre}>
<h2 class="rubrique-title"><a href="#URL_RUBRIQUE">#TITRE</a></h2>
</BOUCLE_ss_rub>
</div>
</B_ss_rub>
<!-- rubrique > listes articles -->
<div class="liste-articles">
[(#ID_RUBRIQUE|=={317}|non)
[(#KAMAKURA_TYPE_RUBRIQUE|=={tri_date}|non) <INCLURE{fond=inc/rubrique_liste_articles_numero, ajax, env}>]
[(#KAMAKURA_TYPE_RUBRIQUE|=={tri_date}|oui) <INCLURE{fond=inc/rubrique_liste_articles_actu, ajax, env}>]
]
[(#REM) exception video]
[(#ID_RUBRIQUE|=={317}|oui) <INCLURE{fond=inc/rubrique_liste_articles_video, ajax, env}>]
</div>
<!-- #rubrique > listes articles -->
<!-- rubrique > listes sites references -->
<B_sites>
<div class="liste-articles mt-2">
<ul>
<BOUCLE_sites(SITES) {id_rubrique} {par nom_site}>
<li><a href="[(#ID_SYNDIC|generer_url_entite{site})]" class="article-external-link">#NOM_SITE<i class="fas fa-external-link-alt"></i></a></li>
</BOUCLE_sites>
</ul>
</div>
</B_sites>
<!-- #rubrique > listes sites references -->
</div>
<!-- #article-body -->
</div>
<!-- #content-main -->
</div>
</div>
</div>
<!-- #content -->
</BOUCLE_rub>

+ 15
- 0
inc/rubrique_liste_articles_actu.html View File

@ -0,0 +1,15 @@
[(#REM)
listing des articles d'une rubrique par date
param:
- id_rubrique
- env pour pagination ajax
]<B_actu>
<BOUCLE_actu(ARTICLES){id_auteur ?}{id_mot?}{id_rubrique?}{recherche?}{id_mot ?}{!par date}{pagination 9}>
<INCLURE{fond=inc/article_preview, article_preview_short=oui, id_article, env} />
</BOUCLE_actu>
[<div class="pagination">
<span class="pagination-titre"><:kamakura:pagination_pages:>:</span> (#PAGINATION{page})
</div>]
</B_actu>

+ 15
- 0
inc/rubrique_liste_articles_numero.html View File

@ -0,0 +1,15 @@
[(#REM)
listing des articles d'une rubrique par numero
param:
- id_rubrique
- env pour pagination ajax
]<B_actu>
<BOUCLE_actu(ARTICLES){id_auteur ?}{id_mot?}{id_rubrique?}{recherche?}{id_mot ?}{par num titre}{pagination 9}>
<INCLURE{fond=inc/article_preview, article_preview_short=oui, id_article, env} />
</BOUCLE_actu>
[<div class="pagination">
<span class="pagination-titre"><:kamakura:pagination_pages:>:</span> (#PAGINATION{page})
</div>]
</B_actu>

+ 29
- 0
inc/sommaire_actu.html View File

@ -0,0 +1,29 @@
[(#REM)
accueil > section actualites
on liste les 3 articles publiés
param:
- (aucun)
]<B_art>
<!-- home-row-1 -->
<div class="home-row-1">
<div class="content container">
<div class="row">
<div class="col-md-12">
<h2 class="h2-home"><:kamakura:actu:></h2>
</div>
</div>
[(#REM) 3 cards ]
<div class="row row-cols-1 row-cols-md-3">
<BOUCLE_art(ARTICLES){!par date}{1,3}{!id_rubrique IN #CONFIG{kamakura/home_rubrique_outro}|picker_selected{rubrique}}>
<INCLURE{fond=inc/article_card, id_article} />
</BOUCLE_art>
</div>
</div>
</div>
<!-- #home-row-1 -->
</B_art>
#FILTRE{trim}

+ 37
- 0
inc/sommaire_intro.html View File

@ -0,0 +1,37 @@
[(#REM)
accueil > section actualites
on liste derniers articles publiés
param:
- (aucun)
]<!-- home-row-0 -->
<BOUCLE_art_home(ARTICLES){!par date}{0,1}{!id_rubrique IN #CONFIG{kamakura/home_rubrique_outro}|picker_selected{rubrique}}>
<div class="bg-gray home-row-0 content-header-wrapper">
<div class="container">
<div class="row">
<!-- article-header -->
<div class="[(#LOGO_ARTICLE|?{col-md-8,col-md-12})]">
<div class="article-header article-header--home">
[<h1 class="article-h1 #EDIT{titre}">(#TITRE)</h1>]
[<div class="article-descriptif #EDIT{descriptif}">(#DESCRIPTIF)</div>]
[<div class="article-chapo #EDIT{chapo}">(#CHAPO)</div>]
<div class="center">
<a href="#URL_ARTICLE" class="bouton"><:kamakura:lire_la_suite:></a>
</div>
</div>
</div>
<!-- article-logo -->
[<div class="col-md-4">
<a href="#URL_ARTICLE">(#LOGO_ARTICLE|image_reduire{800,0}|inserer_attribut{class,no-logo}|inserer_attribut{alt,#TITRE})</a>
</div>]
</div>
</div>
</div>
</BOUCLE_art_home>
<!-- #home-row-0 -->

+ 50
- 0
inc/sommaire_outro.html View File

@ -0,0 +1,50 @@
[(#REM)
accueil > section reassurance
on liste
- l'article reassurance
- la rubrique video ?
param:
- (aucun)
]<!-- home-row-2 -->
<div class="home-row-2">
<div class="content container">
<div class="row">
<!-- intro site -->
<div class="col-lg-6">
<div class="home-intro">
<BOUCLE_art_contact(ARTICLES){id_article IN #CONFIG{kamakura/home_outro}|picker_selected{article}}>
<h2 class="h2-home #EDIT{titre}">#TITRE</h2>
[<div class="home-intro #EDIT{texte}">(#TEXTE|image_reduire{800,0})</div>]
</BOUCLE_art_contact>
</div>
</div>
<!-- video-->
<div class="col-lg-6">
<BOUCLE_rub_outro(RUBRIQUES){id_rubrique IN #CONFIG{kamakura/home_rubrique_outro}|picker_selected{rubrique}}>
<div class="home-video">
<h2 class="h2-home #EDIT{titre}">#TITRE</h2>
<div class="center">
<BOUCLE_last_video(ARTICLES){id_rubrique}{!par date}{0,1}>
[<div class="home-video-article #EDIT{texte}">(#TEXTE|image_reduire{800,0})</div>]
</BOUCLE_last_video>
[(#REM) si la rubrique contient plus de 1 article
affiche un bouton pour la visiter
]
<BOUCLE_more_video(ARTICLES){id_rubrique}{1,1}> </BOUCLE_more_video>
<a href="#URL_RUBRIQUE" class="bouton"><:kamakura:videos_plus:></a>
</B_more_video>
</div>
</div>
</BOUCLE_rub_outro>
</div>
</div>
</div>
</div>
<!-- #home-row-2 -->

+ 6818
- 0
js/bootstrap.bundle.js
File diff suppressed because it is too large
View File


+ 67
- 0
js/gui.js View File

@ -0,0 +1,67 @@
/********************************
* GUI: interface utilisateur
*
********************************/
$(document).ready(function(){
// Lien en spip_out s'ouvre ds une nouvelle fenetre
$('a.spip_out,a[rel*=external]').attr('target','_blank').attr('rel','external noopener noreferrer');
// barre recherche
$('.header-search-trigger').click(function() {
$(".header-search").addClass('unfold');
return false;
});
$('.header-search-untrigger').click(function() {
$(".header-search").removeClass('unfold');
return false;
});
// Go to the top
// http://www.jqueryscript.net/other/Minimal-Back-To-Top-Functionality-with-jQuery-CSS3.html
$(window).scroll(function(event){
var scroll = $(window).scrollTop();
if (scroll >= 800) {
$(".go-top").addClass("show");
} else {
$(".go-top").removeClass("show");
}
});
$('.go-top a').click(function(){
$('html, body').animate({
scrollTop: $( $(this).attr('href') ).offset().top
}, 1000);
});
// scroll doux
$('.smooth-scroll').click (function() {
var target = $(this).attr('href');
var hash = "#" + target.substring(target.indexOf('#')+1);
$('html, body').animate({ scrollTop:$(hash).offset().top }, 600);
return false;
});
// super menu
// inspi: https://www.jqueryscript.net/demo/Simple-Flat-jQuery-Mega-Menu-Plugin-Digimeg/js/digimeg.js
$('.nav-item-desktop').on('mouseover', function (){
$(this) .children("ul").show();
});
$('.nav-item-desktop').on('mouseleave', function (){
$(this) .children("ul").hide();
});
});
// WOW: animation in scroll
// https://wowjs.uk/docs.html
new WOW().init();

+ 509
- 0
js/wow.js View File

@ -0,0 +1,509 @@
(function() {
var MutationObserver, Util, WeakMap, getComputedStyle, getComputedStyleRX,
bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
Util = (function() {
function Util() {}
Util.prototype.extend = function(custom, defaults) {
var key, value;
for (key in defaults) {
value = defaults[key];
if (custom[key] == null) {
custom[key] = value;
}
}
return custom;
};
Util.prototype.isMobile = function(agent) {
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(agent);
};
Util.prototype.createEvent = function(event, bubble, cancel, detail) {
var customEvent;
if (bubble == null) {
bubble = false;
}
if (cancel == null) {
cancel = false;
}
if (detail == null) {
detail = null;
}
if (document.createEvent != null) {
customEvent = document.createEvent('CustomEvent');
customEvent.initCustomEvent(event, bubble, cancel, detail);
} else if (document.createEventObject != null) {
customEvent = document.createEventObject();
customEvent.eventType = event;
} else {
customEvent.eventName = event;
}
return customEvent;
};
Util.prototype.emitEvent = function(elem, event) {
if (elem.dispatchEvent != null) {
return elem.dispatchEvent(event);
} else if (event in (elem != null)) {
return elem[event]();
} else if (("on" + event) in (elem != null)) {
return elem["on" + event]();
}
};
Util.prototype.addEvent = function(elem, event, fn) {
if (elem.addEventListener != null) {
return elem.addEventListener(event, fn, false);
} else if (elem.attachEvent != null) {
return elem.attachEvent("on" + event, fn);
} else {
return elem[event] = fn;
}
};
Util.prototype.removeEvent = function(elem, event, fn) {
if (elem.removeEventListener != null) {
return elem.removeEventListener(event, fn, false);
} else if (elem.detachEvent != null) {
return elem.detachEvent("on" + event, fn);
} else {
return delete elem[event];
}
};
Util.prototype.innerHeight = function() {
if ('innerHeight' in window) {
return window.innerHeight;
} else {
return document.documentElement.clientHeight;
}
};
return Util;
})();
WeakMap = this.WeakMap || this.MozWeakMap || (WeakMap = (function() {
function WeakMap() {
this.keys = [];
this.values = [];
}
WeakMap.prototype.get = function(key) {
var i, item, j, len, ref;
ref = this.keys;
for (i = j = 0, len = ref.length; j < len; i = ++j) {
item = ref[i];
if (item === key) {
return this.values[i];
}
}
};
WeakMap.prototype.set = function(key, value) {
var i, item, j, len, ref;
ref = this.keys;
for (i = j = 0, len = ref.length; j < len; i = ++j) {
item = ref[i];
if (item === key) {
this.values[i] = value;
return;
}
}
this.keys.push(key);
return this.values.push(value);
};
return WeakMap;
})());
MutationObserver = this.MutationObserver || this.WebkitMutationObserver || this.MozMutationObserver || (MutationObserver = (function() {
function MutationObserver() {
if (typeof console !== "undefined" && console !== null) {
console.warn('MutationObserver is not supported by your browser.');
}
if (typeof console !== "undefined" && console !== null) {
console.warn('WOW.js cannot detect dom mutations, please call .sync() after loading new content.');
}
}
MutationObserver.notSupported = true;
MutationObserver.prototype.observe = function() {};
return MutationObserver;
})());
getComputedStyle = this.getComputedStyle || function