Compare commits

...

5 Commits

Author SHA1 Message Date
1c6e48e04e Work in progress 2024-09-06 13:17:10 +02:00
e2fff1a1e6 ajout skel nav & sommaire 2024-09-03 15:37:36 +02:00
cfa3c2eed5 Update header 2024-09-03 12:13:50 +02:00
eb11f59be3 AJout skel rubrique article et header 2024-09-03 12:05:07 +02:00
cba4a04b04 hello world 2024-09-01 17:12:55 +02:00
18 changed files with 431 additions and 0 deletions

39
article.html Normal file
View File

@ -0,0 +1,39 @@
<BOUCLE_principale(ARTICLES) {id_article}>
<html>
<INCLURE{fond=inc/head} />
<body>
<div class="page">
<INCLURE{fond=inc/header} />
<main class="main" role="main">
[(#REM) Contenu principal : contenu de l'article]
<div class="contenus">
<h1>
[<a href="(#URL_SITE)">[(#LOGO_ARTICLE|image_reduire{100,*})][(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]</a>]
</h1>
<!--/!\--> <BOUCLE_mots(MOTS?) {id_article} {id_groupe=7} {par titre}>
<p><:lutine:article_langue_ressource:><a href="#URL_MOT" rel="tag">#TITRE</a>
</p>
</BOUCLE_mots>
[<p>(#TEXTE|image_reduire{672,*})</p>]
</div>
<div class="classement">
<h3><:lutine:article_classement_sources:></h3>
<ul><BOUCLE_classement(RUBRIQUES) {parents}>
<li><a href="#URL_RUBRIQUE">#TITRE</a></li>
</BOUCLE_classement>
</ul>
</div>
</main><!--.main-->
<INCLURE{fond=inclure/footer,self=#SELF} />
</div><!--.page-->
</body>
</html>
</BOUCLE_principale>

0
css/font.css Normal file
View File

0
css/links.css Normal file
View File

22
css/theme.css Normal file
View File

@ -0,0 +1,22 @@
body {
background-color: #F1F1F1;
}
.page {
max-width: 1406px;
margin: 0 auto;
}
/*header (logo, slogan, informations sites) + barre de navigation + futur recherche*/
.sidebar {
display: block;
max-width: 30%;
margin-right: -100%;
}
/* Contenu principal de chaque page*/
.contenu {
display: block;
max-width: 70%;
margin-left: 30%;
}

0
css/typo.css Normal file
View File

17
css/variables.css.html Normal file
View File

@ -0,0 +1,17 @@
[(#REM)
Variables CSS de Lutine. Les couleurs et les fonts utilisés.
Configurable via le menu configuration du squelette ou non configurable.
]
:root{
/*Jeu de couleurs*/
--clr-fond-bl: ##FFF7F1;
--clr-maitre-bl: #CONFIG{archil/cfg_theme_clr_principal,#FF0000};
--clr-font-bl: #CONFIG{archil/cfg_theme_clr_police,#232333};
--clr-contraste-bl: #CONFIG{archil/cfg_theme_clr_police_survol,#FFFFFF};
--clr-neutre-bl:#CONFIG{archil/cfg_theme_clr_lignes,#797676};
/*Polices - Font*/
--font-titre: Luciole-Regular;
--font-core: Luciole-Regular;
--font-contexte: JGS-Font;
}

View File

View File

@ -0,0 +1,33 @@
<?php
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* Un simple formulaire de config,
* on a juste à déclarer les saisies.
* @return array
**/
function formulaires_configurer_lutine_saisies(): array {
// $saisies est un tableau décrivant les saisies à afficher dans le formulaire de configuration
$saisies = [
[ // PAGE D'ACCUEIL
'saisie' => 'fieldset',
'options' => [
'nom' => 'cfg_',
'label' => '<:lutine:configuration:>'
],
'saisies' => [
[ // Sélection de l'article de la page d'accueil
'saisie' => 'selecteur_article',
'options' => [
'nom' => 'sommaire_article',
'multiple' => 'non',
'label' => '<:lutine:accueil_article:>',
'explication' => '<:lutine:accueil_article_def:>',
]
]
]
]
];
return $saisies;
}

11
inc/footer.html Normal file
View File

@ -0,0 +1,11 @@
<footer class="footer" role="contentinfo">
<p>
<BOUCLE_annee(ARTICLES){par date}{0,1}>[(#DATE|annee|!={#VAL{Y}|date}|oui)[(#DATE|annee)]]</BOUCLE_annee> - </B_annee>[(#DATE|annee) ]#NOM_SITE_SPIP
<br />[(#SESSION{id_auteur}|non) | <a href="[(#URL_PAGE{login}|parametre_url{url,#SELF})]" rel="nofollow" class='login_modal'><:lien_connecter:></a>][
(#AUTORISER{ecrire})| <a href="#CONST{_DIR_RESTREINT_ABS}"><:espace_prive:></a>][
(#SESSION{id_auteur}|oui) | <a href="#URL_LOGOUT" rel="nofollow"><:icone_deconnecter:></a>] |
<a rel="nofollow" href="#URL_PAGE{contact}"><:contact:></a> |
<a href="#URL_PAGE{backend}" rel="alternate" title="<:syndiquer_site:>" class="last">RSS&nbsp;2.0</a>
</p>
[<small><a href="https://www.spip.net/" rel="generator" title="<:site_realise_avec_spip:>" class="generator spip_out">(#CHEMIN{spip.svg}|balise_svg{'',SPIP})</a></small>]
</footer>

46
inc/head.html Normal file
View File

@ -0,0 +1,46 @@
<head>
[(#REM)
Head standard de toutes les pages ;
les elements specifiques (title, description) figurent dans chaque squelette
]
<meta http-equiv="Content-Type" content="text/html; charset=#CHARSET" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
[(#REM) Lien vers le flux RSS du site ]
[<link rel="alternate" type="application/rss+xml" title="<:syndiquer_site:>" href="(#URL_PAGE{backend})" />]
[(#REM)
On appelle les feuilles de style
dans l'ordre de la methode daisy http://daisy.tetue.net/img/daisy-nomenclature.png
1. Base CSS http://tinytypo.tetue.net/ ]
[<link rel="stylesheet" href="(#CHEMIN{css/reset.css}|direction_css|timestamp)" type="text/css" />]
[<link rel="stylesheet" href="(#CHEMIN{css/clear.css}|direction_css|timestamp)" type="text/css" />]
[<link rel="stylesheet" href="(#PRODUIRE{fond=css/variables.css})" type="text/css" />]
[<link rel="stylesheet" href="(#CHEMIN{css/font.css}|direction_css|timestamp)" type="text/css" />]
[<link rel="stylesheet" href="(#CHEMIN{css/links.css}|direction_css|timestamp)" type="text/css" />]
[<link rel="stylesheet" href="(#CHEMIN{css/typo.css}|direction_css|timestamp)" type="text/css" />]
[<link rel="stylesheet" href="(#CHEMIN{css/theme.css}|direction_css|timestamp)" type="text/css" />]
[<link rel="stylesheet" href="(#CHEMIN{css/perso.css}|direction_css|timestamp)" type="text/css" />]
[(#REM)
Balise permettant aux plugins d'inserer des appels javascript ;
4. C'est ici que SPIP va inserer l'appel de la librairie jQuery
5. Et appeler a la fin compacte_head pour agreger et compacter tout le head dans des fichiers statiques si l'option est cochee dans Configuration
]
#INSERT_HEAD
[(#REM) 6. Vos scripts ]
[<script src="(#CHEMIN{js/script.js}|timestamp)" type="text/javascript"></script>]
[(#REM) Fierement fabrique avec SPIP ]
[<meta name="generator" content="SPIP (#SPIP_VERSION|header_silencieux)" />]
[(#REM) Favicon ]
[<link rel="icon" type="image/x-icon" href="(#CHEMIN{favicon.ico})" />
[<link rel="shortcut icon" type="image/x-icon" href="(#CHEMIN{favicon.ico})" />]]
[(#REM) meta robots ]
[<meta name="robots" content="(#ENV{robots})" />]
</head>

30
inc/header.html Normal file
View File

@ -0,0 +1,30 @@
<div class="sidebar">
<header class="header" role="banner">
[(#ENV{home,'non'}|=={oui}|?{
<h1 class="titre-majeur">[(#LOGO_SITE_SPIP|image_reduire{224,96})]#NOM_SITE_SPIP</h1>
,
<strong class="titre-majeur"><a rel="start home" href="#URL_SITE_SPIP/" title="<:accueil_site:>">[(#LOGO_SITE_SPIP
|image_reduire{224,96})]#NOM_SITE_SPIP</a></strong>
})][<p class="slogan-spip">(#SLOGAN_SITE_SPIP)</p>]
<p class="ressources_infos">Aujourd'hui :<BOUCLE_taxo(MOTS) {tout} {type=taxonomie}>
[(#COMPTEUR_BOUCLE|=={1}|?{'',' '})[(#COMPTEUR_BOUCLE|=={#TOTAL_BOUCLE}|?{'et',','})]]
<BOUCLE_nbr_taxo(ARTICLES) {titre_mot=#TITRE} ></BOUCLE_nbr_taxo>
#_nbr_taxo:TOTAL_BOUCLE #TITRE
</BOUCLE_taxo>
</p>
</header>
<nav class="navigation" role="navigation">
<ul>
<BOUCLE_nav(RUBRIQUES) {racine} {par titre}>
<li><a href="#URL_RUBRIQUE">#TITRE</a></li>
<ul>
<BOUCLE_su_nav(RUBRIQUES) {id_parent} {enfants} {par titre}>
<li><a href="#URL_RUBRIQUE">#TITRE</a></li>
</BOUCLE_su_nav>
</ul>
</BOUCLE_nav>
</ul>
</nav>
</div>

29
lang/lutine_fr.php Normal file
View File

@ -0,0 +1,29 @@
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
$GLOBALS[$GLOBALS['idx_lang']] = array(
//
// spip-core
//
'accueil_site' => 'Accueil',
// 0-9
'404_sorry' => '404, Et ba\'h... 404.',
// A
'accueil_article' => 'Article page accueil',
'accueil_article_def' => 'Accueil article definition',
'article_langue_ressource' => 'Langue de la ressource : ',
'article_classement_sources' => 'Page(s) utilisant cette ressource',
// B
'bordel_dev' => 'Bordel Dev',
'bordel_ali' => 'Bordel Ali',
// C
'config_lutine_titre' => 'Configurer Lutine',
'configuration' => 'CAconfigure pour tous le monde',
// S
'sous_rubriques' => 'Sous-catégories',
);

21
paquet.xml Normal file
View File

@ -0,0 +1,21 @@
<paquet
prefix="lutine"
categorie="squelette"
version="0.0.13"
etat="test"
compatibilite="[4.3.0;4.*]"
logo="prive/themes/spip/images/lutine-xx.svg"
documentation="https://contrib.spip.net/#"
>
<nom>Lutine</nom>
<!-- Squelette Lutine -->
<auteur lien="https://open-plug.eu">Plumf</auteur>
<necessite nom="favicon" compatibilite="[1.0.0;]" />
<necessite nom="polyhier" compatibilite="[4.1.0;]" />
<necessite nom="fontawesome" compatibilite="[1.0.5;]" />
<utilise nom="linkcheck" compatibilite="[2.1.0;]" />
<menu nom="configurer_lutine" titre="lutine:config_lutine_titre" parent="menu_squelette" icone="images/lutine-16.png" />
</paquet>

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@ -0,0 +1,6 @@
[(#AUTORISER{configurer,lutine}|sinon_interdire_acces)]
<h1 class="grostitre"><:lutine:onfig_lutine_titre:></h1>
<div class="ajax">
#FORMULAIRE_CONFIGURER_ARCHIL
</div>

27
robots.txt.html Normal file
View File

@ -0,0 +1,27 @@
#HTTP_HEADER{Content-Type: text/plain; charset=#CHARSET}
# robots.txt
# @url: #URL_SITE_SPIP
# @generator: SPIP #SPIP_VERSION
# @template: #SQUELETTE
User-agent: *
Allow: /local/cache-css/
Allow: /local/cache-js/
Allow: /local/cache-gd2/
Allow: /local/cache-vignettes/
Disallow: /local/
Disallow: /ecrire/
Disallow: /lib/
Disallow: /plugins/
Disallow: /plugins-dist/
Disallow: /prive/
Disallow: /skel/
Disallow: /squelettes-dist/
Disallow: /squelettes/
Disallow: /oembed.api/
Disallow: /spip.php?action=*
Disallow: /spip.php?page=login*
Crawl-delay: 1
Sitemap: #URL_SITE_SPIP/sitemap.xml

79
rubrique.html Normal file
View File

@ -0,0 +1,79 @@
<BOUCLE_principale(RUBRIQUES) {id_rubrique}>
<!DOCTYPE html>
<html>
<INCLURE{fond=inc/head} />
<body>
<div class="page">
<INCLURE{fond=inc/header} />
<div class="contenu">
[(#REM) Contenu principal : contenu de la rubrique]
<p class="arbo"><a href="#URL_SITE_SPIP/"><:accueil_site:></a><BOUCLE_ariane(HIERARCHIE){id_rubrique}> &gt; <a href="#URL_RUBRIQUE">[(#TITRE|couper{80})]</a></BOUCLE_ariane>[ &gt; <strong class="on">(#TITRE|couper{80})</strong>]</p><!--.arbo-->
<main class="main" role="main"></main>
<h1>#TITRE</h1>
<div>
[<div>(#TEXTE|image_reduire{672,*})</div>]
[(#REM) Articles de la rubrique ]
<h2>
<:lutine:rubrique_titre_article:>
</h2>
<B_articles>
<div class="menu menu_articles">
<ul>
<BOUCLE_articles_liste(ARTICLES) {enfants} {!par date}>
<li dir="#LANG_DIR">
<h3>
[<a href="(#URL_SITE)">[(#LOGO_ARTICLE|image_reduire{100,*})][(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]</a>]
</h3>
<BOUCLE_mots(MOTS) {id_article} {type=langue} {par titre}>
<p><:lutine:article_langue_ressource:><a href="#URL_MOT" rel="tag">#TITRE</a>
</p>
</BOUCLE_mots>
[<p>(#TEXTE|image_reduire{672,*})</p>]
<a href="#URL_ARTICLE"><:lutine:article_permalien:></a><hr/>
</li>
</BOUCLE_articles_liste>
</ul>
</div>
</B_articles>
[(#REM) Si aucun article, affiche un plan de la rubrique ]
<B_sous_rubriques>
<div>
<h2><:sous_rubriques:></h2>
<ul>
<BOUCLE_sous_rubriques(RUBRIQUES) {id_parent} {par num titre}{!par date}>
<li>
<a href="#URL_RUBRIQUE">#TITRE</a>
[(#REM) Une boucle recursive pour le mini plan]
<B_miniplan>
<ul>
<BOUCLE_miniplan(RUBRIQUES) {id_parent} {par num titre}{!par date}>
<li>
<a href="#URL_RUBRIQUE">#TITRE</a>
<BOUCLE_m2(BOUCLE_miniplan)></BOUCLE_m2>
</li>
</BOUCLE_miniplan>
</ul>
</B_miniplan>
</li>
</BOUCLE_sous_rubriques>
</ul>
</div>
</div><!--.content-->
</main><!--.main-->
<INCLURE{fond=inclure/footer,self=#SELF} />
</div><!--.contenu-->
</div><!--.page-->
</body>
</html>
</BOUCLE_principale>

25
sommaire.html Normal file
View File

@ -0,0 +1,25 @@
[(#REM)
page sommaire
param:
- (aucun)
]<!DOCTYPE html>
<html lang="#LANG">
<INCLURE{fond=inc/head} />
<body>
<div class="page">
<INCLURE{fond=inc/header} />
<div class="contenu">
<main class="main" role="main">
<BOUCLE_article_main(ARTICLES) {id_article=62} ><!--dev : un article choisit dans la page de conf-->
<p class="info-publi"><abbr class="published" title="[(#DATE|date_iso)]">[(#DATE|nom_jour) ][(#DATE|affdate)]</abbr>[<span class="sep">, </span><span class="auteurs"><:par_auteur:> (#LESAUTEURS)</span>]</p>
#TEXTE
</BOUCLE_article_main>
</main>
<INCLURE{fond=inc/footer} />
</div><!--contenu-->
</body>