dépôt git initialisé
This commit is contained in:
commit
70678c8416
4
401.html
Executable file
4
401.html
Executable file
@ -0,0 +1,4 @@
|
||||
#HTTP_HEADER{#VAL{"HTTP/1.0 "}|concat{#ENV{code,"401 Not Found"}}}
|
||||
#HTTP_HEADER{"Cache-Control: no-store, no-cache, must-revalidate"}
|
||||
#HTTP_HEADER{Pragma: no-cache}
|
||||
<INCLURE{fond=structure,env,type-page=#ENV{status,401}} />
|
3
article.html
Executable file
3
article.html
Executable file
@ -0,0 +1,3 @@
|
||||
<BOUCLE_principale_article(ARTICLES){id_article}>
|
||||
<INCLURE{fond=structure,env,id_rubrique=#ENV{id_rubrique,#ID_RUBRIQUE},id_secteur=#ID_SECTEUR,type-page=article,composition=#COMPOSITION} />
|
||||
</BOUCLE_principale_article>
|
2
aside/dist.html
Executable file
2
aside/dist.html
Executable file
@ -0,0 +1,2 @@
|
||||
[(#REM) Menu de navigation par rubriques ]
|
||||
<INCLURE{fond=inclure/rubriques,env,type-page,composition} />
|
10
aside/z_apl.html
Executable file
10
aside/z_apl.html
Executable file
@ -0,0 +1,10 @@
|
||||
[(#REM)
|
||||
|
||||
Squelette Big_Pipe
|
||||
http://www.facebook.com/notes/facebook-engineering/bigpipe-pipelining-web-pages-for-high-performance/389414033919
|
||||
|
||||
(c) 2010 Cedric Morin
|
||||
Distribue sous licence GPL
|
||||
|
||||
]#CACHE{0}
|
||||
#INCLURE{fond=inclure/ajax_parallel_load,bloc=#SQUELETTE}
|
3
auteur.html
Executable file
3
auteur.html
Executable file
@ -0,0 +1,3 @@
|
||||
<BOUCLE_principale_auteur(AUTEURS){id_auteur}>
|
||||
<INCLURE{fond=structure,env,type-page=auteur,composition=#COMPOSITION} />
|
||||
</BOUCLE_principale_auteur>
|
43
backend.html
Executable file
43
backend.html
Executable file
@ -0,0 +1,43 @@
|
||||
[(#REM)
|
||||
Ce fichier sert à créer les flux RSS
|
||||
qui permettent aux visiteurs de suivre l'actualité
|
||||
de votre site depuis un lecteur de news.
|
||||
|
||||
Cette page génère un code XML/RSS adapté
|
||||
|
||||
][(#HTTP_HEADER{Content-type: text/xml[; charset=(#CHARSET)]})]<?xml
|
||||
version="1.0"[ encoding="(#CHARSET)"]?>
|
||||
<rss version="2.0" [(#REM) rss 2.0.9)]
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:content="http://purl.org/rss/1.0/modules/content/"
|
||||
xmlns:atom="http://www.w3.org/2005/Atom"
|
||||
>
|
||||
|
||||
<channel[ xml:lang="(#LANG)"]>
|
||||
<title>[(#NOM_SITE_SPIP|textebrut|texte_backend)]</title>
|
||||
<link>#URL_SITE_SPIP/</link>
|
||||
[<description>(#DESCRIPTIF_SITE_SPIP|supprimer_tags|texte_backend)</description>]
|
||||
<language>#LANG</language>
|
||||
<generator>SPIP - www.spip.net</generator>
|
||||
<atom:link href="[(#SELF|url_absolue)]" rel="self" type="application/rss+xml" />
|
||||
|
||||
[ <image>
|
||||
<title>[(#NOM_SITE_SPIP|texte_backend)]</title>
|
||||
<url>(#LOGO_SITE_SPIP|image_reduire{144,400}|extraire_attribut{src}|url_absolue|texte_backend)</url>
|
||||
<link>#URL_SITE_SPIP/</link>
|
||||
[<height>(#LOGO_SITE_SPIP|image_reduire{144,400}|extraire_attribut{height})</height>]
|
||||
[<width>(#LOGO_SITE_SPIP|image_reduire{144,400}|extraire_attribut{width})</width>]
|
||||
</image>
|
||||
]
|
||||
|
||||
<BOUCLE_10recents(ARTICLES){id_rubrique>0}{lang ?}{branche ?}{id_mot ?}{id_auteur ?}{par date}{inverse}{0,10}{unique}>
|
||||
<INCLURE{fond=inclure/rss-item,id_article} />
|
||||
</BOUCLE_10recents>
|
||||
|
||||
<BOUCLE_tres_recents(ARTICLES){id_rubrique>0}{lang ?}{branche ?}{id_mot ?}{id_auteur ?}{par date}{inverse}{age<3}{unique}>
|
||||
<INCLURE{fond=inclure/rss-item,id_article} />
|
||||
</BOUCLE_tres_recents>
|
||||
|
||||
</channel>
|
||||
|
||||
</rss>
|
44
baz_april_administrations.php
Executable file
44
baz_april_administrations.php
Executable file
@ -0,0 +1,44 @@
|
||||
<?php
|
||||
if (!defined("_ECRIRE_INC_VERSION")) return;
|
||||
|
||||
include_spip('inc/meta');
|
||||
|
||||
// Installation et mise à jour sur modele sjcycle
|
||||
function baz_april_upgrade($nom_meta_version_base, $version_cible) {
|
||||
|
||||
// Création du tableau des mises à jour.
|
||||
$maj = array();
|
||||
|
||||
$config_fdr = array(
|
||||
'titre' => 'Manuel du site'
|
||||
);
|
||||
$config_crayons = array (
|
||||
'barretypo' => 'on',
|
||||
'msgAbandon' => 'on',
|
||||
'clickhide' => 'on'
|
||||
);
|
||||
$config_compositions = array(
|
||||
'masquer_formulaire' => 'oui'
|
||||
);
|
||||
$config_baz_april = array(
|
||||
'afficherauteurs' => 'non'
|
||||
);
|
||||
// Tableau de la configuration par défaut
|
||||
$maj['create'] = array(
|
||||
array('ecrire_config', 'feuillederoute', $config_fdr),
|
||||
array('ecrire_config', 'crayons', $config_crayons),
|
||||
array('ecrire_config', 'compositions', $config_compositions),
|
||||
array('ecrire_config', 'baz_april', $config_baz_april),
|
||||
array('ecrire_config', 'version_html_max', 'html5'),
|
||||
);
|
||||
|
||||
// Maj du plugin.
|
||||
include_spip('base/upgrade');
|
||||
maj_plugin($nom_meta_version_base, $version_cible, $maj);
|
||||
}
|
||||
|
||||
// Désinstallation
|
||||
function baz_april_vider_tables($nom_meta_version_base) {
|
||||
effacer_meta('baz');
|
||||
effacer_meta($nom_meta_version_base);
|
||||
}
|
40
baz_april_fonctions.php
Executable file
40
baz_april_fonctions.php
Executable file
@ -0,0 +1,40 @@
|
||||
<?php
|
||||
if (!defined("_ECRIRE_INC_VERSION")) return;
|
||||
|
||||
/* reprise d'une fonction du plugin Agenda
|
||||
* renommee pour eviter plantage
|
||||
https://zone.spip.org/trac/spip-zone/browser/_plugins_/agenda/trunk/agenda_fonctions.php#L32
|
||||
*/
|
||||
/**
|
||||
* decale les mois de la date.
|
||||
* cette fonction peut raboter le jour si le nouveau mois ne les contient pas
|
||||
* exemple 31/01/2007 + 1 mois => 28/02/2007
|
||||
*
|
||||
* @param string $date
|
||||
* @param int $decalage
|
||||
* @param string $format
|
||||
* @return string
|
||||
*/
|
||||
function baz_moisdecal($date, $decalage, $format = 'Y-m-d H:i:s') {
|
||||
include_spip('inc/filtres');
|
||||
$date_array = recup_date($date);
|
||||
if ($date_array) {
|
||||
list($annee, $mois, $jour) = $date_array;
|
||||
}
|
||||
if (!$jour) {
|
||||
$jour = 1;
|
||||
}
|
||||
if (!$mois) {
|
||||
$mois = 1;
|
||||
}
|
||||
$mois2 = $mois + $decalage;
|
||||
$date2 = mktime(1, 1, 1, $mois2, $jour, $annee);
|
||||
// mois normalement attendu
|
||||
$mois3 = date('m', mktime(1, 1, 1, $mois2, 1, $annee));
|
||||
// et si le mois de la nouvelle date a moins de jours...
|
||||
$mois2 = date('m', $date2);
|
||||
if ($mois2 - $mois3) {
|
||||
$date2 = mktime(1, 1, 1, $mois2, 0, $annee);
|
||||
}
|
||||
return date($format, $date2);
|
||||
}
|
44
baz_april_options.php
Executable file
44
baz_april_options.php
Executable file
@ -0,0 +1,44 @@
|
||||
<?php
|
||||
if (!defined("_ECRIRE_INC_VERSION")) return;
|
||||
|
||||
// les blocs de baz
|
||||
if (!isset($GLOBALS['z_blocs'])) {
|
||||
$GLOBALS['z_blocs'] = array('content','aside','extra','head','head_js','header','footer','breadcrumb');
|
||||
}
|
||||
|
||||
// les images de plus de 2000*1000 pixels de haut seront réduites en 2000x1000 maximum
|
||||
// define('_IMG_MAX_WIDTH', 2000);
|
||||
// define('_IMG_MAX_HEIGHT', 1000);
|
||||
|
||||
// surligner le terme de recherche
|
||||
define('_SURLIGNE_RECHERCHE_REFERERS',true);
|
||||
if (isset($_REQUEST['recherche'])) {
|
||||
$_GET['var_recherche'] = $_REQUEST['recherche'];
|
||||
}
|
||||
|
||||
// les images de plus de 2000*1000 pixels de haut seront réduites en 2000x1000 maximum
|
||||
// define('_IMG_MAX_WIDTH', 2000);
|
||||
// define('_IMG_MAX_HEIGHT', 1600);
|
||||
|
||||
|
||||
// $GLOBALS['quota_cache'] = 200;
|
||||
define('_DUREE_CACHE_DEFAUT', 24*3600*90);
|
||||
|
||||
// pour sauter une ligne en rédaction
|
||||
// $GLOBALS['ligne_horizontale'] = '<br class="clear" />';
|
||||
|
||||
// afficher les erreurs
|
||||
// define('_NO_CACHE', -1);
|
||||
// define('_INTERDIRE_COMPACTE_HEAD_ECRIRE', true);
|
||||
// error_reporting(E_ALL^E_NOTICE);
|
||||
// ini_set ("display_errors", "On");
|
||||
// define('SPIP_ERREUR_REPORT',E_ALL);
|
||||
// $GLOBALS['taille_des_logs'] = 500;
|
||||
// define('_MAX_LOG', 500000);
|
||||
// define('_LOG_FILELINE',true);
|
||||
// define('_LOG_FILTRE_GRAVITE',8);
|
||||
// define('_DEBUG_SLOW_QUERIES', true);
|
||||
// define('_BOUCLE_PROFILER', 5000);
|
||||
|
||||
$GLOBALS['debut_intertitre'] = "\n<h2 class=\"spip\">\n";
|
||||
$GLOBALS['fin_intertitre'] = "</h2>\n";
|
3
baz_april_pipelines.php
Executable file
3
baz_april_pipelines.php
Executable file
@ -0,0 +1,3 @@
|
||||
<?php
|
||||
if (!defined("_ECRIRE_INC_VERSION")) return;
|
||||
|
37
body.html
Executable file
37
body.html
Executable file
@ -0,0 +1,37 @@
|
||||
<body class="body[--(#ENV{type-page})][ body--(#COMPOSITION)]">
|
||||
<ul class="accesrapide accesrapide--main">
|
||||
<li class="accesrapide"><a class="accesrapide__lien visuallyhidden focusable" href="#contenu"><:baz_april:evitement_contenu:></a></li>
|
||||
<li class="accesrapide"><a class="accesrapide__lien visuallyhidden focusable" href="#navigation"><:baz_april:evitement_navigation:></a></li>
|
||||
</ul>
|
||||
<div id="boussole_spip">[(#REM) La boussole SPIP va s'insérer ici ]</div>
|
||||
<div class="page__wrapper">
|
||||
|
||||
<header class="page__header">
|
||||
<div class="page--container">
|
||||
<INCLURE{fond=header/#ENV{type-page},env} />
|
||||
<INCLURE{fond=inclure/nav-secteurs,env} />
|
||||
<INCLURE{fond=inclure/boussole} />
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="page__content page--container">
|
||||
<main class="contentMain">
|
||||
<INCLURE{fond=content/#ENV{type-page},env,composition} />
|
||||
<aside class="contentMain__extra">
|
||||
<INCLURE{fond=extra/#ENV{type-page},env} />
|
||||
</aside>
|
||||
</main><!--.main-->
|
||||
|
||||
<aside class="contentAside">
|
||||
<INCLURE{fond=aside/#ENV{type-page},env} />
|
||||
</aside><!--.aside-->
|
||||
</div>
|
||||
|
||||
<footer class="page__footer">
|
||||
<div class="page--container">
|
||||
<INCLURE{fond=footer/#ENV{type-page},env} />
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
</div><!--.container-->
|
||||
</body>
|
5
breadcrumb/401.html
Executable file
5
breadcrumb/401.html
Executable file
@ -0,0 +1,5 @@
|
||||
[(#REM) Fil d'Ariane ]
|
||||
<nav class="arbo" aria-label="Fil d'Ariane">
|
||||
<a href="#URL_SITE_SPIP/"><:accueil_site:></a> <span class="divider"> > </span>
|
||||
<span class="active"><:pass_erreur:>[ (#ENV{status})]</span>
|
||||
</nav>
|
5
breadcrumb/404.html
Executable file
5
breadcrumb/404.html
Executable file
@ -0,0 +1,5 @@
|
||||
[(#REM) Fil d'Ariane ]
|
||||
<nav class="arbo" aria-label="Fil d'Ariane">
|
||||
<a href="#URL_SITE_SPIP/"><:accueil_site:></a> <span class="divider"> > </span>
|
||||
<span class="active"><:pass_erreur:> 404</span>
|
||||
</nav>
|
8
breadcrumb/auteur.html
Executable file
8
breadcrumb/auteur.html
Executable file
@ -0,0 +1,8 @@
|
||||
<BOUCLE_content(AUTEURS){id_auteur}>
|
||||
[(#REM) Fil d'Ariane ]
|
||||
<nav class="arbo" aria-label="Fil d'Ariane">
|
||||
<a href="#URL_SITE_SPIP/"><:accueil_site:></a><span class="divider"> > </span>
|
||||
<:info_auteurs:><span class="divider"> > </span>
|
||||
[<span class="active">(#NOM|couper{80})</span>]
|
||||
</nav>
|
||||
</BOUCLE_content>
|
15
breadcrumb/dist.html
Executable file
15
breadcrumb/dist.html
Executable file
@ -0,0 +1,15 @@
|
||||
<nav class="arbo" aria-label="Fil d'Ariane">
|
||||
#SET{objet,''}#SET{id_objet,''}
|
||||
|
||||
[(#ENV{id_rubrique}|oui)#SET{objet,rubrique}#SET{id_objet,#ENV{id_rubrique}}]
|
||||
[(#ENV{id_syndic}|oui)#SET{objet,site}#SET{id_objet,#ENV{id_syndic}}]
|
||||
[(#ENV{id_breve}|oui)#SET{objet,breve}#SET{id_objet,#ENV{id_breve}}]
|
||||
[(#ENV{id_article}|oui)#SET{objet,article}#SET{id_objet,#ENV{id_article}}]
|
||||
[(#ENV{id_objet}|oui)#SET{objet,#ENV{objet}}#SET{id_objet,#ENV{id_objet}}]
|
||||
|
||||
[(#GET{objet}|oui)
|
||||
#INCLURE{fond=breadcrumb/inc-objet,id_objet=#GET{id_objet},objet=#GET{objet}}
|
||||
][(#GET{objet}|non)
|
||||
<a href="#URL_SITE_SPIP/"><:accueil_site:></a>
|
||||
]
|
||||
</nav>
|
7
breadcrumb/inc-objet.html
Executable file
7
breadcrumb/inc-objet.html
Executable file
@ -0,0 +1,7 @@
|
||||
<a href="#URL_SITE_SPIP/"><:accueil_site:></a><span class="divider"> > </span>
|
||||
<BOUCLE_contexte_rubrique(RUBRIQUES) {id_rubrique=(#OBJET|=={rubrique}|?{#INFO_ID_PARENT{#OBJET,#ID_OBJET},#INFO_ID_RUBRIQUE{#OBJET,#ID_OBJET}})}>
|
||||
<BOUCLE_ariane_hier(HIERARCHIE) {id_rubrique}{tout}>
|
||||
<a href="#URL_RUBRIQUE">[(#TITRE|couper{80})]</a><span class="divider"> > </span>
|
||||
</BOUCLE_ariane_hier>
|
||||
</BOUCLE_contexte_rubrique>
|
||||
<span[(#ENV{expose,' '}|oui)class="active"]>[(#ID_OBJET|generer_url_entite{#OBJET}|lien_ou_expose{#INFO_TITRE{#OBJET,#ID_OBJET}|sinon{?}|couper{80},#ENV{expose,' '}|?{span}})]</span>[<span class="divider">(#ENV{expose,' '}|non)> </span>]
|
10
breadcrumb/login.html
Executable file
10
breadcrumb/login.html
Executable file
@ -0,0 +1,10 @@
|
||||
[(#REM)
|
||||
Est-ce qu'on se connecte a l'espace prive ou pas ?
|
||||
]#SET{prive,''}
|
||||
[(#ENV{url}|=={''}|?{#SET{prive,' '}})]
|
||||
[(#ENV{url}|match{^#EVAL{_DIR_RESTREINT_ABS}}|?{#SET{prive,' '}})]
|
||||
|
||||
[(#REM) Fil d'Ariane ]
|
||||
<nav class="arbo" aria-label="Fil d'Ariane"><a href="#URL_SITE_SPIP/"><:accueil_site:></a>
|
||||
[<span class="divider"> > </span><strong class="on">(#GET{prive}|?{<:login_acces_prive:>,<:lien_connecter:>})</strong>]
|
||||
</nav>
|
8
breadcrumb/mot.html
Executable file
8
breadcrumb/mot.html
Executable file
@ -0,0 +1,8 @@
|
||||
<BOUCLE_content(MOTS) {id_mot} {doublons}>
|
||||
<nav class="arbo" aria-label="Fil d'Ariane">
|
||||
<a href="#URL_SITE_SPIP/"><:accueil_site:></a><span class="divider"> > </span>
|
||||
<span><:mots_clefs:></span><span class="divider"> > </span>
|
||||
<BOUCLE_ariane(GROUPES_MOTS){id_groupe}><span>[(#TITRE|couper{80})]</span><span class="divider"> > </span></BOUCLE_ariane>
|
||||
<span class="active">[(#TITRE|couper{80})]</span>
|
||||
</nav>
|
||||
</BOUCLE_content>
|
4
breadcrumb/plan.html
Executable file
4
breadcrumb/plan.html
Executable file
@ -0,0 +1,4 @@
|
||||
<nav class="arbo" aria-label="Fil d'Ariane">
|
||||
<a href="#URL_SITE_SPIP/"><:accueil_site:></a><span class="divider"> > </span>
|
||||
<span class="active"><:plan_site:></span>
|
||||
</nav>
|
4
breadcrumb/recherche.html
Executable file
4
breadcrumb/recherche.html
Executable file
@ -0,0 +1,4 @@
|
||||
<nav class="arbo" aria-label="Fil d'Ariane">
|
||||
<a href="#URL_SITE_SPIP/"><:accueil_site:></a><span class="divider"> > </span>
|
||||
<span class="active"><:info_rechercher:> [« <strong class="on">(#RECHERCHE)</strong> »]</span>
|
||||
</nav>
|
10
content/401.html
Executable file
10
content/401.html
Executable file
@ -0,0 +1,10 @@
|
||||
[(#REM) Fil d'Ariane ]
|
||||
<section class="content">
|
||||
<header class="cartouche">
|
||||
<h1><:pass_erreur:>[ (#ENV{status})]</h1>
|
||||
<INCLURE{fond=breadcrumb/#ENV{type-page},env} />
|
||||
</header>
|
||||
<div class="main">
|
||||
[<div class="chapo">(#ENV{erreur})</div>]
|
||||
</div>
|
||||
</section>
|
10
content/404.html
Executable file
10
content/404.html
Executable file
@ -0,0 +1,10 @@
|
||||
[(#REM) Fil d'Ariane ]
|
||||
<section class="content">
|
||||
<header class="cartouche">
|
||||
<h1><:pass_erreur:> 404</h1>
|
||||
<INCLURE{fond=breadcrumb/#ENV{type-page},env} />
|
||||
</header>
|
||||
<div class="main">
|
||||
[<div class="chapo">(#ENV{erreur})</div>]
|
||||
</div>
|
||||
</section>
|
48
content/article.html
Executable file
48
content/article.html
Executable file
@ -0,0 +1,48 @@
|
||||
<BOUCLE_content(ARTICLES){id_article}>
|
||||
<article class="content" id="content">
|
||||
<header class="cartouche">
|
||||
[<p class="#EDIT{surtitre} surtitre">(#SURTITRE)</p>]
|
||||
<h1><span class="#EDIT{titre}">#TITRE</span>[
|
||||
<small class="#EDIT{soustitre} soustitre">(#SOUSTITRE)</small>
|
||||
]</h1>
|
||||
[(#ENV{composition}|=={blog}|oui)<INCLURE{fond=breadcrumb/rubrique-blog,env} />]
|
||||
[(#ENV{composition}|=={blog}|non)<INCLURE{fond=breadcrumb/article,env} />]
|
||||
|
||||
[<p class="publication"><time datetime="[(#DATE|date_iso)]"><i class="icon-calendar"></i> (#DATE|affdate)</time></p>][(#CONFIG{baz_april/afficherauteurs}|=={on}|oui)[<p class="auteurs"><:par_auteur:> (#LESAUTEURS)</p>]]
|
||||
|
||||
[(#REM) Inclure le modele des liens de traductions ]
|
||||
<div class="postmeta">
|
||||
#MODELE{article_traductions}
|
||||
<B_tags>
|
||||
<span class="tags">
|
||||
<span class="sep">|</span>
|
||||
<ul class="inline">
|
||||
<BOUCLE_tags(MOTS){id_article}>
|
||||
<li><a class="label" href="#URL_MOT"><i class="icon-tag"></i> #TITRE</a></li>
|
||||
</BOUCLE_tags>
|
||||
</ul>
|
||||
</span>
|
||||
</B_tags>
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
<div class="main">
|
||||
[<div class="#EDIT{chapo} chapo surlignable">(#CHAPO|image_reduire{700,*})</div>]
|
||||
[<div class="#EDIT{texte} texte surlignable">(#TEXTE|image_reduire{700,*})</div>]
|
||||
|
||||
[<p class="#EDIT{hyperlien} hyperlien"><:voir_en_ligne:> : <a href="(#URL_SITE)" class="spip_out">[(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]</a></p>]
|
||||
</div>
|
||||
|
||||
<aside>
|
||||
[(#REM) Gestion du portfolio et des documents ]
|
||||
[(#INCLURE{fond=inclure/documents,id_article})]
|
||||
</aside>
|
||||
|
||||
<footer>
|
||||
[<div class="#EDIT{ps} ps surlignable"><h2><:info_ps:></h2>(#PS|image_reduire{700,*})</div>]
|
||||
[<div class="notes"><h2><:info_notes:></h2>(#NOTES)</div>]
|
||||
</footer>
|
||||
|
||||
</article>
|
||||
</BOUCLE_content>
|
22
content/auteur.html
Executable file
22
content/auteur.html
Executable file
@ -0,0 +1,22 @@
|
||||
<BOUCLE_content(AUTEURS){id_auteur}>
|
||||
<section class="content vcard" id="content" itemscope itemtype="http://schema.org/Person"> [(#REM) microformat vcard]
|
||||
<header class="cartouche">
|
||||
<h1 class="#EDIT{qui} fn" itemprop="name">[(#LOGO_AUTEUR|image_reduire|inserer_attribut{itemprop,image})]#NOM</h1>
|
||||
</header>
|
||||
|
||||
<div class="main">
|
||||
[<div class="#EDIT{bio} texte bio">(#BIO|image_reduire{700,*})</div>]
|
||||
[<p class="#EDIT{hyperlien} hyperlien"><:voir_en_ligne:> : <a href="(#URL_SITE)" class="url spip_out" itemprop="url">[(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]</a></p>]
|
||||
</div>
|
||||
|
||||
<aside>
|
||||
<INCLURE{fond=liste/articles-auteur,id_auteur,env,ajax} />
|
||||
|
||||
#FORMULAIRE_ECRIRE_AUTEUR
|
||||
</aside>
|
||||
|
||||
<footer>
|
||||
[<div class="notes"><h2><:info_notes:></h2>(#NOTES)</div>]
|
||||
</footer>
|
||||
</section>
|
||||
</BOUCLE_content>
|
17
content/login.html
Executable file
17
content/login.html
Executable file
@ -0,0 +1,17 @@
|
||||
[(#REM)
|
||||
Est-ce qu'on se connecte a l'espace prive ou pas ?
|
||||
]#SET{prive,''}
|
||||
[(#ENV{url}|=={''}|?{#SET{prive,' '}})]
|
||||
[(#ENV{url}|match{^#EVAL{_DIR_RESTREINT_ABS}}|?{#SET{prive,' '}})]
|
||||
<section class="content" id="content">
|
||||
<header class="cartouche">
|
||||
[<h1>(#GET{prive}|?{<:login_acces_prive:>,<:lien_connecter:>})
|
||||
<small>#NOM_SITE_SPIP</small>
|
||||
</h1>]
|
||||
<INCLURE{fond=breadcrumb/#ENV{type-page},env} />
|
||||
</header >
|
||||
|
||||
<div class="main">
|
||||
[(#FORMULAIRE_LOGIN{#ENV{url}|sinon{#URL_ECRIRE{accueil}}})]
|
||||
</div>
|
||||
</section>
|
49
content/mot.html
Executable file
49
content/mot.html
Executable file
@ -0,0 +1,49 @@
|
||||
<BOUCLE_content(MOTS) {id_mot} {doublons}>
|
||||
<section class="content" id="content">
|
||||
|
||||
<header class="cartouche">
|
||||
<h1 class="#EDIT{titre}">[(#LOGO_MOT|image_reduire)]#TITRE</h1>
|
||||
<INCLURE{fond=breadcrumb/#ENV{type-page},env} />
|
||||
</header>
|
||||
|
||||
<div class="main">
|
||||
[<div class="#EDIT{texte} chapo">(#TEXTE|image_reduire{700,*})</div>]
|
||||
</div>
|
||||
|
||||
<aside>
|
||||
[(#REM) Articles lies au mot-cle ]
|
||||
<div class="liste articles">
|
||||
<INCLURE{fond=liste/articles-resume,env,ajax,id_mot,titre=<:baz_april:articles_lies:>} />
|
||||
</div>
|
||||
|
||||
[(#REM) Rubriques liees au mot-cle ]
|
||||
<B_rubriques>
|
||||
<div class="liste rubriques">
|
||||
<h2 class="h2"><:rubriques:></h2>
|
||||
<ul class="liste-items">
|
||||
<BOUCLE_rubriques(RUBRIQUES) {id_mot} {par titre} {pagination 50}>
|
||||
<li class="item"><a href="#URL_RUBRIQUE">#TITRE</a></li>
|
||||
</BOUCLE_rubriques>
|
||||
</ul>
|
||||
[<div class="pagination">(#PAGINATION)</div>]
|
||||
</div>
|
||||
</B_rubriques>
|
||||
|
||||
[(#REM) Sites web lies au mot-cle ]
|
||||
<B_sites>
|
||||
<div class="liste sites">
|
||||
<h2 class="h2"><:sites_web:></h2>
|
||||
<ul class="liste-items">
|
||||
<BOUCLE_sites(SITES) {id_mot} {par nom_site} {pagination 50}>
|
||||
<li class="item"><a href="[(#ID_SYNDIC|generer_url_entite{site,'','',#CONNECT})]">#NOM_SITE</a></li>
|
||||
</BOUCLE_sites>
|
||||
</ul>
|
||||
[<div class="pagination">(#PAGINATION)</div>]
|
||||
</div>
|
||||
</B_sites>
|
||||
</aside>
|
||||
[<footer>
|
||||
<div class="notes"><hr />(#NOTES)</div>
|
||||
</footer>]
|
||||
</section>
|
||||
</BOUCLE_content>
|
60
content/plan.html
Executable file
60
content/plan.html
Executable file
@ -0,0 +1,60 @@
|
||||
<section class="content" id="content">
|
||||
<header class="cartouche">
|
||||
<h1><:plan_site:></h1>
|
||||
<INCLURE{fond=breadcrumb/#ENV{type-page},env} />
|
||||
</header>
|
||||
|
||||
<div class="main">
|
||||
|
||||
[(#REM) Articles et sous-rubriques ]
|
||||
<B_articles_pages>
|
||||
<ul class="plan">
|
||||
<BOUCLE_articles_pages(ARTICLES) {id_rubrique=-1} {page !IN accueil, mentions} {par titre}>
|
||||
<li><a href="#URL_ARTICLE">#TITRE</a></li>
|
||||
</BOUCLE_articles_pages>
|
||||
</ul>
|
||||
</B_articles_pages>
|
||||
|
||||
<BOUCLE_secteurs(RUBRIQUES) {racine} {par num titre, titre}>
|
||||
|
||||
<h2 class="h2"><a href="#URL_RUBRIQUE">#TITRE</a></h2>
|
||||
|
||||
[(#REM) Articles et sous-rubriques ]
|
||||
<BOUCLE_test_article_r1(ARTICLES){id_rubrique}{1,2}>
|
||||
</BOUCLE_test_article_r1>
|
||||
<B_articles_racine>
|
||||
<ul class="plan">
|
||||
<BOUCLE_articles_racine(ARTICLES) {id_rubrique} {par titre}>
|
||||
<li><a href="#URL_ARTICLE">#TITRE</a></li>
|
||||
</BOUCLE_articles_racine>
|
||||
</ul>
|
||||
</B_articles_racine>
|
||||
</B_test_article_r1>
|
||||
|
||||
<B_rubriques>
|
||||
<ul class="plan">
|
||||
<BOUCLE_rubriques(RUBRIQUES) {id_parent} {par titre}>
|
||||
<li>
|
||||
<strong><a href="#URL_RUBRIQUE">#TITRE</a></strong>
|
||||
|
||||
<BOUCLE_test_article_r2(ARTICLES){id_rubrique}{1,2}>
|
||||
</BOUCLE_test_article_r2>
|
||||
<B_articles>
|
||||
<ul>
|
||||
<BOUCLE_articles(ARTICLES) {id_rubrique} {par titre}>
|
||||
[(#TOTAL_BOUCLE|>{1}|oui)<li><a href="#URL_ARTICLE">#TITRE</a></li>]
|
||||
</BOUCLE_articles>
|
||||
</ul>
|
||||
</B_articles>
|
||||
</B_test_article_r2>
|
||||
|
||||
<BOUCLE_sous_rubriques(BOUCLE_rubriques)></BOUCLE_sous_rubriques>
|
||||
</li>
|
||||
</BOUCLE_rubriques>
|
||||
</ul>
|
||||
</B_rubriques>
|
||||
|
||||
</BOUCLE_secteurs>
|
||||
|
||||
</div>
|
||||
</section>
|
14
content/recherche.html
Executable file
14
content/recherche.html
Executable file
@ -0,0 +1,14 @@
|
||||
<section class="content" id="content">
|
||||
[<header class="cartouche">
|
||||
<h1><:resultats_recherche:>
|
||||
<small>« (#RECHERCHE) »</small>
|
||||
</h1>
|
||||
<INCLURE{fond=breadcrumb/#ENV{type-page},env} />
|
||||
</header>]
|
||||
|
||||
<div class="main">
|
||||
<INCLURE{fond=liste/articles-recherche,env,ajax} />
|
||||
<INCLURE{fond=liste/rubriques-recherche,env,ajax} />
|
||||
</div>
|
||||
|
||||
</section>
|
75
content/rubrique-blog.html
Executable file
75
content/rubrique-blog.html
Executable file
@ -0,0 +1,75 @@
|
||||
<BOUCLE_content(RUBRIQUES){id_rubrique}>
|
||||
<section class="content" id="content">
|
||||
|
||||
<header class="cartouche">
|
||||
<h1 class="#EDIT{titre}">#TITRE</h1>
|
||||
[<p class="publication"><time datetime="[(#DATE|date_iso)]"><:dernier_ajout:> : (#DATE|affdate_jourcourt).</time></p>]
|
||||
<INCLURE{fond=breadcrumb/rubrique,id_rubrique} />
|
||||
</header>
|
||||
|
||||
<div class="main">
|
||||
[<div class="#EDIT{texte} chapo">(#TEXTE|image_reduire{700,*})</div>]
|
||||
|
||||
#SET{'debut_mois', (#ENV{datetri}|baz_moisdecal{0,'Y-m-d'})}
|
||||
#SET{'fin_mois', (#ENV{datetri}|baz_moisdecal{1,'Y-m-d'})}
|
||||
<B_articlesdate>
|
||||
<div class="liste articles blog">
|
||||
[<h2 class="h2[ (#ENV{datetri}|oui)date]">(#ENV{datetri}|affdate{nom_mois})[(#ENV{datetri}|affdate{Y}|!={[(#VAL{Y}|date)]}|oui)[ (#ENV{datetri}|affdate{Y})]]</h2>]
|
||||
<ul class="liste-items">
|
||||
<BOUCLE_articlesdate(ARTICLES){si #ENV{datetri}|?{' '}}{date < #GET{fin_mois}}{date >= #GET{debut_mois}}{id_rubrique}{!par date}>
|
||||
<li class="item clearfix">#INCLURE{fond=inclure/resume/article,id_article,env,composition=blog}</li>
|
||||
</BOUCLE_articlesdate>
|
||||
</ul>
|
||||
</div>
|
||||
</B_articlesdate>
|
||||
<div class="liste articles blog">
|
||||
[<h2 class="h2[ (#ENV{datetri}|oui)date]"><:baz_april:aucun_article_dans_cette_periode:> : (#ENV{datetri}|affdate{nom_mois})[(#ENV{datetri}|affdate{Y}|!={[(#VAL{Y}|date)]}|oui)[ (#ENV{datetri}|affdate{Y})]]</h2>]
|
||||
<B_articles>#ANCRE_PAGINATION
|
||||
<ul class="liste-items">
|
||||
<BOUCLE_articles(ARTICLES){id_rubrique}{lang}{!par date}{pagination 10}>
|
||||
<li class="item clearfix">#INCLURE{fond=inclure/resume/article,id_article,env,composition=blog}</li>
|
||||
</BOUCLE_articles>
|
||||
</ul>
|
||||
[<div class="pagination">(#PAGINATION)</div>]
|
||||
</B_articles>
|
||||
</div>
|
||||
<//B_articlesdate>
|
||||
|
||||
[(#REM) pour les sous-rubriques, on utilise le modele <rubriqueXX|rubriques> dans le texte si on veut]
|
||||
|
||||
</div><!-- .main -->
|
||||
|
||||
<aside>
|
||||
[(#REM) Gestion du portfolio et des documents ]
|
||||
[(#INCLURE{fond=inclure/documents,id_rubrique})]
|
||||
|
||||
[(#REM) Sites de la rubrique ]
|
||||
<B_sites>
|
||||
<div class="liste sites">
|
||||
<h2 class="h2"><:sur_web:></h2>
|
||||
<ul class="liste-items">
|
||||
<BOUCLE_sites(SITES) {id_rubrique} {par nom_site}>
|
||||
<li class="item short">#INCLURE{fond=inclure/resume/site,id_syndic}
|
||||
<B_syndic>
|
||||
<ul class="spip">
|
||||
<BOUCLE_syndic(SYNDIC_ARTICLES) {id_syndic} {age<180} {par date}{inverse} {0,3}>
|
||||
<li class="short with-publication-inline">#INCLURE{fond=inclure/resume/syndic_article,id_syndic_article}</li>
|
||||
</BOUCLE_syndic>
|
||||
</ul>
|
||||
</B_syndic>
|
||||
</li>
|
||||
</BOUCLE_sites>
|
||||
</ul>
|
||||
</div>
|
||||
</B_sites>
|
||||
|
||||
[(#REM) Proposer un site ]
|
||||
#FORMULAIRE_SITE
|
||||
</aside>
|
||||
|
||||
<footer>
|
||||
[<div class="notes"><h2><:info_notes:></h2>(#NOTES)</div>]
|
||||
</footer>
|
||||
|
||||
</section>
|
||||
</BOUCLE_content>
|
6
content/rubrique-blog.xml
Executable file
6
content/rubrique-blog.xml
Executable file
@ -0,0 +1,6 @@
|
||||
<composition>
|
||||
<nom>Rubrique Blog</nom>
|
||||
<description>Pour faire un blog complet</description>
|
||||
<icon>images/rubrique-blog.png</icon>
|
||||
<branche type="article" composition="blog" />
|
||||
</composition>
|
3
content/rubrique-pagerubrique.html
Executable file
3
content/rubrique-pagerubrique.html
Executable file
@ -0,0 +1,3 @@
|
||||
<BOUCLE_content(RUBRIQUES){id_rubrique}>
|
||||
<INCLURE{fond=content/rubrique,id_rubrique,type-page=rubrique} />
|
||||
</BOUCLE_content>
|
5
content/rubrique-pagerubrique.xml
Executable file
5
content/rubrique-pagerubrique.xml
Executable file
@ -0,0 +1,5 @@
|
||||
<composition>
|
||||
<nom>Page Rubrique </nom>
|
||||
<description>Pour passer par la page rubrique avec la liste des articles - en utilisant Court-circuit, les rubriques avec composition sont ignorées du court-circuit, donc attribuer une composition mais vers le squelette normal...</description>
|
||||
<icon>images/rubrique-pagerubrique.png</icon>
|
||||
</composition>
|
54
content/rubrique.html
Executable file
54
content/rubrique.html
Executable file
@ -0,0 +1,54 @@
|
||||
<BOUCLE_content(RUBRIQUES){id_rubrique}>
|
||||
<section class="content" id="content">
|
||||
|
||||
<header class="cartouche">
|
||||
<h1 class="#EDIT{titre}">#TITRE</h1>
|
||||
[<p class="publication"><time datetime="[(#DATE|date_iso)]"><:dernier_ajout:> : (#DATE|affdate_jourcourt).</time></p>]
|
||||
<INCLURE{fond=breadcrumb/rubrique,env} />
|
||||
</header>
|
||||
|
||||
<div class="main">
|
||||
[<div class="#EDIT{texte} texte">(#TEXTE|image_reduire{700,*})</div>]
|
||||
|
||||
<div class="liste articles">
|
||||
<INCLURE{fond=liste/articles-resume,env,ajax,titre=<:articles_rubrique:>} />
|
||||
</div>
|
||||
[(#REM) Si aucun article, affiche un plan de la rubrique : en fait non, on a la liste en aside, on la garde là-bas et on se sert du texte si on veut en mettre en avant au cas par cas
|
||||
ou éventuellement avec un modèle <rubriqueX|articles>
|
||||
+ activer le plugin court-circuit pour aller directement dans larticle si un seul présent
|
||||
]
|
||||
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
[(#REM) Gestion du portfolio et des documents ]
|
||||
[(#INCLURE{fond=inclure/documents,id_rubrique})]
|
||||
|
||||
[<div class="notes"><h2><:info_notes:></h2>(#NOTES)</div>]
|
||||
</footer>
|
||||
|
||||
<aside>
|
||||
[(#REM) Sites de la rubrique ]
|
||||
<B_sites>
|
||||
<div class="liste sites">
|
||||
<h2 class="h2"><:sur_web:></h2>
|
||||
<ul class="liste-items">
|
||||
<BOUCLE_sites(SITES) {id_rubrique} {par nom_site}>
|
||||
<li class="item short">#INCLURE{fond=inclure/resume/site,id_syndic}
|
||||
<B_syndic>
|
||||
<ul class="spip">
|
||||
<BOUCLE_syndic(SYNDIC_ARTICLES) {id_syndic} {age<180} {par date}{inverse} {0,3}>
|
||||
<li class="short with-publication-inline">#INCLURE{fond=inclure/resume/syndic_article,id_syndic_article}</li>
|
||||
</BOUCLE_syndic>
|
||||
</ul>
|
||||
</B_syndic>
|
||||
</li>
|
||||
</BOUCLE_sites>
|
||||
</ul>
|
||||
</div>
|
||||
</B_sites>
|
||||
|
||||
</aside>
|
||||
|
||||
</section>
|
||||
</BOUCLE_content>
|
23
content/site.html
Executable file
23
content/site.html
Executable file
@ -0,0 +1,23 @@
|
||||
<BOUCLE_content(SITES){id_syndic}>
|
||||
<section class="content" id="content">
|
||||
|
||||
<header class="cartouche">
|
||||
<h1 class="#EDIT{nom_site}">[<a href="#URL_SITE">(#LOGO_SITE|image_reduire)</a>]#NOM_SITE</h1>
|
||||
<INCLURE{fond=breadcrumb/#ENV{type-page},env} />
|
||||
</header>
|
||||
|
||||
<div class="main">
|
||||
[<div class="#EDIT{descriptif} chapo">(#DESCRIPTIF)</div>]
|
||||
[<p class="#EDIT{url_site} hyperlien"><a href="#URL_SITE" class="spip_out">(#URL_SITE|couper{80})</a></p>]
|
||||
</div>
|
||||
|
||||
<aside>
|
||||
<INCLURE{fond=liste/syndicarticles,id_syndic,env,ajax} />
|
||||
</aside>
|
||||
|
||||
<footer>
|
||||
[<div class="notes"><hr />(#NOTES)</div>]
|
||||
</footer>
|
||||
|
||||
</section>
|
||||
</BOUCLE_content>
|
33
content/sommaire.html
Executable file
33
content/sommaire.html
Executable file
@ -0,0 +1,33 @@
|
||||
<section class="content" id="content">
|
||||
<header class="cartouche visuallyhidden">
|
||||
<h1>#NOM_SITE_SPIP</h1>
|
||||
</header>
|
||||
|
||||
<div class="main">
|
||||
<B_accueil>
|
||||
<article class="texte_accueil">
|
||||
<BOUCLE_accueil(ARTICLES){page=accueil}>
|
||||
[<h2 class="h2 visuallyhidden">(#TITRE|sinon{<:accueil:>})</h2>]
|
||||
<div class="main">
|
||||
[<div class="#EDIT{chapo} chapo surlignable">(#CHAPO|image_reduire{700,*})</div>]
|
||||
[<div class="#EDIT{texte} texte surlignable">(#TEXTE|image_reduire{700,*})</div>]
|
||||
|
||||
[<p class="#EDIT{hyperlien} hyperlien"><:voir_en_ligne:> : <a href="(#URL_SITE)" class="spip_out">[(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]</a></p>]
|
||||
</div>
|
||||
<footer>
|
||||
[<div class="#EDIT{ps} ps surlignable"><h2><:info_ps:></h2>(#PS|image_reduire{700,*})</div>]
|
||||
[<div class="notes"><h2><:info_notes:></h2>(#NOTES)</div>]
|
||||
</footer>
|
||||
</BOUCLE_accueil>
|
||||
</article>
|
||||
</B_accueil>
|
||||
[<div id="descriptif_site_spip" class="#EDIT{meta-descriptif_site} texte_accueil">(#DESCRIPTIF_SITE_SPIP)</div>]
|
||||
<//B_accueil>
|
||||
|
||||
<div class="liste long articles">
|
||||
<INCLURE{fond=liste/articles-resume,env,ajax} />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
16
content/spip_pass.html
Executable file
16
content/spip_pass.html
Executable file
@ -0,0 +1,16 @@
|
||||
<section class="content" id="content">
|
||||
<header class="cartouche">
|
||||
<h1>#NOM_SITE_SPIP</h1>
|
||||
</header>
|
||||
|
||||
<div class="main">
|
||||
<div class="pass">
|
||||
[(#ENV{p}|non)
|
||||
#FORMULAIRE_OUBLI
|
||||
]
|
||||
[(#ENV{p}|oui)
|
||||
#FORMULAIRE_MOT_DE_PASSE
|
||||
]
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
10
content/z_apl.html
Normal file
10
content/z_apl.html
Normal file
@ -0,0 +1,10 @@
|
||||
[(#REM)
|
||||
|
||||
Squelette Big_Pipe
|
||||
http://www.facebook.com/notes/facebook-engineering/bigpipe-pipelining-web-pages-for-high-performance/389414033919
|
||||
|
||||
(c) 2010 Cedric Morin
|
||||
Distribue sous licence GPL
|
||||
|
||||
]#CACHE{0}
|
||||
#INCLURE{fond=inclure/ajax_parallel_load,bloc=#SQUELETTE}
|
7
extra/article.html
Executable file
7
extra/article.html
Executable file
@ -0,0 +1,7 @@
|
||||
<BOUCLE_article(ARTICLES){id_article}>
|
||||
|
||||
[(#COMPOSITION|=={blog}|oui)
|
||||
<INCLURE{fond=inclure/mots-articles-rubrique,env} />
|
||||
<INCLURE{fond=inclure/periode-mois,env} />]
|
||||
|
||||
</BOUCLE_article>
|
15
extra/auteur.html
Executable file
15
extra/auteur.html
Executable file
@ -0,0 +1,15 @@
|
||||
<BOUCLE_extra2_auteur(AUTEURS){id_auteur}>
|
||||
[(#REM) Autres auteurs ]
|
||||
<B_auteurs>
|
||||
<div class="liste auteurs">
|
||||
#ANCRE_PAGINATION
|
||||
<h2 class="h2"><:info_auteurs:></h2>
|
||||
<ul class="liste-items">
|
||||
<BOUCLE_auteurs(AUTEURS) {par nom} {pagination 20}>
|
||||
<li class="item"><a href="#URL_AUTEUR"[ class="(#EXPOSE)"]>[(#NOM|couper{80})]</a></li>
|
||||
</BOUCLE_auteurs>
|
||||
</ul>
|
||||
[<div class="pagination">(#PAGINATION)</div>]
|
||||
</div>
|
||||
</B_auteurs>
|
||||
</BOUCLE_extra2_auteur>
|
2
extra/dist.html
Executable file
2
extra/dist.html
Executable file
@ -0,0 +1,2 @@
|
||||
[(#REM) Inscription au site ]
|
||||
#FORMULAIRE_INSCRIPTION
|
31
extra/mot.html
Executable file
31
extra/mot.html
Executable file
@ -0,0 +1,31 @@
|
||||
<BOUCLE_principale(MOTS) {id_mot} {doublons}>
|
||||
[(#REM) Menu de navigation mots-cles : les autres mots cles du meme groupe ]
|
||||
<B_mots_freres>
|
||||
<div class="liste mots">
|
||||
#ANCRE_PAGINATION
|
||||
<h2 class="h2">#INFO_TITRE{groupes_mots,#ID_GROUPE}</h2>
|
||||
<ul class="liste-items inline">
|
||||
<BOUCLE_mots_freres(MOTS) {type} {par titre} {pagination 20}>
|
||||
<li class="item"><a href="#URL_MOT"[ class="(#EXPOSE)"]>#TITRE</a></li>
|
||||
</BOUCLE_mots_freres>
|
||||
</ul>
|
||||
[<div class="pagination">(#PAGINATION)</div>]
|
||||
</div>
|
||||
</B_mots_freres>
|
||||
[(#REM) Menu de navigation mots-cles : les autres groupes ]
|
||||
<B_groupes_freres>
|
||||
<div class="liste groupes_mots">
|
||||
<BOUCLE_groupes_freres(GROUPES_MOTS) {!id_groupe} {par titre} {doublons}>
|
||||
<B_mot_cousin>#ANCRE_PAGINATION
|
||||
<h2 class="h2">#INFO_TITRE{groupes_mots,#ID_GROUPE}</h2>
|
||||
<ul class="liste-items inline">
|
||||
<BOUCLE_mot_cousin(MOTS) {id_groupe} {par titre} {pagination 20}>
|
||||
<li class="item"><a href="#URL_MOT">#TITRE</a></li>
|
||||
</BOUCLE_mot_cousin>
|
||||
</ul>
|
||||
[<div class="pagination">(#PAGINATION)</div>]
|
||||
</B_mot_cousin>
|
||||
</BOUCLE_groupes_freres>
|
||||
</div>
|
||||
</B_groupes_freres>
|
||||
</BOUCLE_principale>
|
17
extra/rubrique.html
Executable file
17
extra/rubrique.html
Executable file
@ -0,0 +1,17 @@
|
||||
<BOUCLE_extra2_rubrique(RUBRIQUES){id_rubrique}>
|
||||
[(#REM) Menu de navigation mots-cles ]
|
||||
<B_mots>
|
||||
<div class="liste mots">
|
||||
<h2 class="h2"><:mots_clefs:></h2>
|
||||
<ul class="liste-items">
|
||||
<BOUCLE_mots(MOTS) {id_rubrique} {par titre}>
|
||||
<li class="item"><a href="#URL_MOT" rel="tag">#TITRE</a></li>
|
||||
</BOUCLE_mots>
|
||||
</ul>
|
||||
</div>
|
||||
</B_mots>
|
||||
[(#COMPOSITION|=={blog}|oui)
|
||||
<INCLURE{fond=inclure/mots-articles-rubrique,env} />
|
||||
<INCLURE{fond=inclure/periode-mois,env} />]
|
||||
|
||||
</BOUCLE_extra2_rubrique>
|
27
extra/site.html
Executable file
27
extra/site.html
Executable file
@ -0,0 +1,27 @@
|
||||
[(#REM) Autres sites web ]
|
||||
<BOUCLE_testsites(SITES){id_rubrique}{1,2}>
|
||||
</BOUCLE_testsites>
|
||||
<B_sites>
|
||||
<div class="liste sites">
|
||||
#ANCRE_PAGINATION
|
||||
<h2 class="h2"><:sites_web:></h2>
|
||||
<ul class="liste-items">
|
||||
<BOUCLE_sites(SITES){id_rubrique}{par nom_site} {pagination 20}>
|
||||
<li class="item"><a href="[(#ID_SYNDIC|generer_url_entite{site,'','',#CONNECT})]"[ class="(#EXPOSE)"]>#NOM_SITE</a></li>
|
||||
</BOUCLE_sites>
|
||||
</ul>
|
||||
[<div class="pagination">(#PAGINATION)</div>]
|
||||
</div>
|
||||
</B_sites>
|
||||
</B_testsites>
|
||||
[(#REM) Menu de navigation mots-cles ]
|
||||
<B_mots>
|
||||
<div class="liste mots">
|
||||
<h2 class="h2"><:mots_clefs:></h2>
|
||||
<ul class="liste-items">
|
||||
<BOUCLE_mots(MOTS) {id_syndic} {par titre}>
|
||||
<li class="item"><a href="#URL_MOT" rel="tag">#TITRE</a></li>
|
||||
</BOUCLE_mots>
|
||||
</ul>
|
||||
</div>
|
||||
</B_mots>
|
2
extra/sommaire.html
Executable file
2
extra/sommaire.html
Executable file
@ -0,0 +1,2 @@
|
||||
[(#REM) Inscription au site ]
|
||||
#FORMULAIRE_INSCRIPTION
|
10
extra/z_apl.html
Executable file
10
extra/z_apl.html
Executable file
@ -0,0 +1,10 @@
|
||||
[(#REM)
|
||||
|
||||
Squelette Big_Pipe
|
||||
http://www.facebook.com/notes/facebook-engineering/bigpipe-pipelining-web-pages-for-high-performance/389414033919
|
||||
|
||||
(c) 2010 Cedric Morin
|
||||
Distribue sous licence GPL
|
||||
|
||||
]#CACHE{0}
|
||||
#INCLURE{fond=inclure/ajax_parallel_load,bloc=#SQUELETTE}
|
30
footer/dist.html
Executable file
30
footer/dist.html
Executable file
@ -0,0 +1,30 @@
|
||||
<p class="colophon">
|
||||
<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 />
|
||||
<a rel="contents" href="#URL_PAGE{plan}"><:plan_site:></a><span class="sep"> |
|
||||
</span><a href="#URL_PAGE{backend}" rel="alternate" title="<:syndiquer_site:>">RSS 2.0</a>
|
||||
<B_mentions>
|
||||
<span class="sep"> |
|
||||
</span><BOUCLE_mentions(ARTICLES){page=mentions}>
|
||||
<a href="#URL_ARTICLE">#TITRE</a>
|
||||
</BOUCLE_mentions>
|
||||
<B_contact>
|
||||
<span class="sep"> | </span>
|
||||
<BOUCLE_contact(ARTICLES){page=contact}>
|
||||
<a href="#URL_ARTICLE">#TITRE</a>
|
||||
</BOUCLE_contact>
|
||||
</p>
|
||||
<p class="colophon"><?php
|
||||
if (isset($GLOBALS['visiteur_session']['id_auteur']) AND $GLOBALS['visiteur_session']['id_auteur']) {
|
||||
?><a href="#URL_LOGOUT" rel="nofollow"><:icone_deconnecter:></a><?php
|
||||
if (include_spip('inc/autoriser') AND autoriser('ecrire')){
|
||||
?><span class="sep"> | </span><a href="#EVAL{_DIR_RESTREINT_ABS}"><:espace_prive:></a>
|
||||
<span class="sep"> | </span><?php
|
||||
}
|
||||
}
|
||||
else {
|
||||
?><a href="[(#URL_PAGE{login}|parametre_url{url,#SELF|parametre_url{url,''}})]" rel="nofollow" class='login_modal'><:lien_connecter:></a>
|
||||
<span class="sep"> | </span><?php
|
||||
}
|
||||
?>
|
||||
<span class="generator"><a href="http://www.spip.net/" title="<:site_realise_avec_spip:>" class="spip_out">SPIP</a></span>
|
||||
</p>
|
22
formulaires/configurer_baz_april.html
Executable file
22
formulaires/configurer_baz_april.html
Executable file
@ -0,0 +1,22 @@
|
||||
<div class="formulaire_spip formulaire_configurer formulaire_#FORM">
|
||||
|
||||
<h3 class="titrem"><:baz_april:configuration_baz_april:></h3>
|
||||
|
||||
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
|
||||
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
|
||||
|
||||
|
||||
<form method="post" action="#ENV{action}"><div>
|
||||
#ACTION_FORMULAIRE{#ENV{action}}
|
||||
<ul class="editer-groupe">
|
||||
[(#SAISIE{case,afficherauteurs,
|
||||
label=<:baz_april:afficherauteurs_label:>,
|
||||
explication=<:baz_april:afficherauteurs_explications:>,
|
||||
defaut=non})]
|
||||
</ul>
|
||||
<p class="boutons">
|
||||
<input type="submit" class="submit" value="<:bouton_valider:>" />
|
||||
</p>
|
||||
</div></form>
|
||||
|
||||
</div>
|
57
formulaires/login.html
Executable file
57
formulaires/login.html
Executable file
@ -0,0 +1,57 @@
|
||||
#HTTP_HEADER{"Cache-Control: no-store, no-cache, must-revalidate"}
|
||||
#HTTP_HEADER{"Pragma: no-cache"}
|
||||
|
||||
<div class='formulaire_spip formulaire_login'>
|
||||
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{_deja_loge})</p>]
|
||||
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
|
||||
[<p class='reponse_formulaire reponse_formulaire_erreur'>(#ENV*{message_erreur})</p>]
|
||||
|
||||
[(#ENV{echec_cookie})
|
||||
<fieldset class='reponse_formulaire reponse_formulaire_erreur'>
|
||||
<h2><:avis_erreur_cookie:></h2>
|
||||
<p class="erreur_message"><:login_cookie_oblige:><br /><:login_cookie_accepte:></p>
|
||||
</fieldset>]
|
||||
|
||||
[(#ENV{editable})
|
||||
<form id='formulaire_login' method='post' action='#ENV{action}'>
|
||||
[(#REM) declarer les hidden qui declencheront le service du formulaire parametre : url d'action ]
|
||||
#ACTION_FORMULAIRE
|
||||
<fieldset>
|
||||
<legend><:form_forum_identifiants:></legend>
|
||||
<div class="form-group editer-groupe">
|
||||
<div class="editer editer_login obligatoire[(#ENV**{erreurs}|table_valeur{var_login}|oui)erreur]">
|
||||
<label for="var_login"><:login_login2:></label>[
|
||||
<span class="erreur_message">(#ENV**{erreurs}|table_valeur{var_login})</span>
|
||||
]<input type='text' class='form-control text [(#ENV*{_logo}|oui)avec_spip_logo_auteur]' name='var_login' id='var_login' value="[(#ENV**{var_login})]" size='40'[(#HTML5) required='required' autofocus='autofocus'] autocapitalize="off" autocorrect="off" />[
|
||||
<span id="spip_logo_auteur">(#ENV*{_logo,''})</span>]
|
||||
</div>
|
||||
<div class="editer editer_password obligatoire[(#ENV**{erreurs}|table_valeur{password}|oui)erreur]">
|
||||
<label for="password"><:login_pass2:></label>[
|
||||
<span class="erreur_message">(#ENV**{erreurs}|table_valeur{password})</span>
|
||||
]<input type='password' class='form-control text password' name='password' id='password' value="" size='40' autocapitalize="off" autocorrect="off" />
|
||||
<p class='details'><a href="[(#URL_PAGE{spip_pass}|parametre_url{lang,#LANG})]" id='spip_pass'><:login_motpasseoublie:></a></p>
|
||||
</div>
|
||||
[(#ENV{rester_connecte})
|
||||
<div class="editer editer_session"><div class='choix'>
|
||||
<input type="checkbox" class="form-control checkbox" name="session_remember" id="session_remember" value="oui" [(#ENV**{cnx}|?{' '})checked="checked"] onchange="jQuery(this).addClass('modifie');" />
|
||||
<label class='nofx' for="session_remember"><:login_rester_identifie:></label>
|
||||
</div></div>]
|
||||
</div>
|
||||
</fieldset>
|
||||
<p class="boutons"><input type="submit" class="submit" value="<:bouton_valider|attribut_html:>" /></p>
|
||||
</form>
|
||||
]
|
||||
[(#REM) en cas d'absence de cookie, on represente le formulaire alternatif ]
|
||||
[<form action="(#ENV{auth_http})" method="get">[
|
||||
(#ENV{auth_http}|form_hidden)
|
||||
]
|
||||
<fieldset>
|
||||
<legend><:login_sans_cookie:></legend>
|
||||
<:login_preferez_refuser:>
|
||||
<input type="hidden" name="essai_auth_http" value="oui"/>
|
||||
[<input type="hidden" name="url" value="(#ENV{url})"/>]
|
||||
<p class="boutons"><input type="submit" class="submit" value="<:login_sans_cookie|attribut_html:>"/></p>
|
||||
</fieldset>
|
||||
</form>
|
||||
]
|
||||
</div>
|
333
formulaires/login.php
Executable file
333
formulaires/login.php
Executable file
@ -0,0 +1,333 @@
|
||||
<?php
|
||||
|
||||
/***************************************************************************\
|
||||
* SPIP, Systeme de publication pour l'internet *
|
||||
* *
|
||||
* Copyright (c) 2001-2019 *
|
||||
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
|
||||
* *
|
||||
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
|
||||
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
|
||||
\***************************************************************************/
|
||||
|
||||
/**
|
||||
* Gestion du formulaire d'identification / de connexion à SPIP
|
||||
*
|
||||
* @package SPIP\Core\Formulaires
|
||||
**/
|
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||
return;
|
||||
}
|
||||
|
||||
include_spip('base/abstract_sql');
|
||||
|
||||
/**
|
||||
* Teste si une URL est une URL de l'espace privé (administration de SPIP)
|
||||
* ou de l'espace public
|
||||
*
|
||||
* @param string $cible URL
|
||||
* @return bool
|
||||
* true si espace privé, false sinon.
|
||||
**/
|
||||
function is_url_prive($cible) {
|
||||
include_spip('inc/filtres_mini');
|
||||
$path = parse_url(tester_url_absolue($cible) ? $cible : url_absolue($cible));
|
||||
$path = (isset($path['path']) ? $path['path'] : '');
|
||||
|
||||
return strncmp(substr($path, -strlen(_DIR_RESTREINT_ABS)), _DIR_RESTREINT_ABS, strlen(_DIR_RESTREINT_ABS)) == 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Chargement du formulaire de login
|
||||
*
|
||||
* Si on est déjà connecté, on redirige directement sur l'URL cible !
|
||||
*
|
||||
* @uses auth_informer_login()
|
||||
* @uses is_url_prive()
|
||||
* @uses login_auth_http()
|
||||
*
|
||||
* @param string $cible
|
||||
* URL de destination après identification.
|
||||
* Cas spécifique : la valeur `@page_auteur` permet d'être redirigé
|
||||
* après connexion sur le squelette public de l'auteur qui se connecte.
|
||||
* @param string $login
|
||||
* Login de la personne à identifier (si connu)
|
||||
* @param null|bool $prive
|
||||
* Identifier pour l'espace privé (true), public (false)
|
||||
* ou automatiquement (null) en fonction de la destination de l'URL cible.
|
||||
* @return array
|
||||
* Environnement du formulaire
|
||||
**/
|
||||
function formulaires_login_charger_dist($cible = '', $login = '', $prive = null) {
|
||||
$erreur = _request('var_erreur');
|
||||
|
||||
if (!$login) {
|
||||
$login = strval(_request('var_login'));
|
||||
}
|
||||
// si on est deja identifie
|
||||
if (!$login and isset($GLOBALS['visiteur_session']['login'])) {
|
||||
$login = $GLOBALS['visiteur_session']['login'];
|
||||
}
|
||||
// ou si on a un cookie admin
|
||||
// if (!$login) {
|
||||
// if (isset($_COOKIE['spip_admin'])
|
||||
// and preg_match(',^@(.*)$,', $_COOKIE['spip_admin'], $regs)
|
||||
// ) {
|
||||
// $login = $regs[1];
|
||||
// }
|
||||
// }
|
||||
|
||||
include_spip('inc/auth');
|
||||
$row = auth_informer_login($login);
|
||||
|
||||
// Construire l'environnement du squelette
|
||||
// Ne pas proposer de "rester connecte quelques jours"
|
||||
// si la duree de l'alea est inferieure a 12 h (valeur par defaut)
|
||||
|
||||
$valeurs = array(
|
||||
'var_login' => $login,
|
||||
'editable' => !$row,
|
||||
'cnx' => isset($row['cnx']) ? $row['cnx'] : '0',
|
||||
'auth_http' => login_auth_http(),
|
||||
'rester_connecte' => ((_RENOUVELLE_ALEA < 12 * 3600) ? '' : ' '),
|
||||
'_logo' => isset($row['logo']) ? $row['logo'] : '',
|
||||
'_alea_actuel' => isset($row['alea_actuel']) ? $row['alea_actuel'] : '',
|
||||
'_alea_futur' => isset($row['alea_futur']) ? $row['alea_futur'] : '',
|
||||
'_pipeline' => 'affiche_formulaire_login', // faire passer le formulaire dans un pipe dedie pour les methodes auth
|
||||
);
|
||||
|
||||
if ($erreur or !isset($GLOBALS['visiteur_session']['id_auteur']) or !$GLOBALS['visiteur_session']['id_auteur']) {
|
||||
$valeurs['editable'] = true;
|
||||
}
|
||||
|
||||
if (is_null($prive) ? is_url_prive($cible) : $prive) {
|
||||
include_spip('inc/autoriser');
|
||||
$loge = autoriser('ecrire');
|
||||
} else {
|
||||
$loge = (isset($GLOBALS['visiteur_session']['auth']) and $GLOBALS['visiteur_session']['auth'] != '');
|
||||
}
|
||||
|
||||
// Si on est connecte, appeler traiter()
|
||||
// et lancer la redirection si besoin
|
||||
if (!$valeurs['editable'] and $loge and _request('formulaire_action')!=='login') {
|
||||
$traiter = charger_fonction('traiter', 'formulaires/login');
|
||||
$res = $traiter($cible, $login, $prive);
|
||||
$valeurs = array_merge($valeurs, $res);
|
||||
|
||||
if (isset($res['redirect']) and $res['redirect']) {
|
||||
include_spip('inc/headers');
|
||||
# preparer un lien pour quand redirige_formulaire ne fonctionne pas
|
||||
$m = redirige_formulaire($res['redirect'], '', 'ajaxform');
|
||||
$valeurs['_deja_loge'] = inserer_attribut(
|
||||
'<a>' . _T('login_par_ici') . "</a>$m",
|
||||
'href',
|
||||
$res['redirect']
|
||||
);
|
||||
}
|
||||
}
|
||||
// en cas d'echec de cookie, inc_auth a renvoye vers le script de
|
||||
// pose de cookie ; s'il n'est pas la, c'est echec cookie
|
||||
// s'il est la, c'est probablement un bookmark sur bonjour=oui,
|
||||
// et pas un echec cookie.
|
||||
if ($erreur == 'cookie') {
|
||||
$valeurs['echec_cookie'] = ' ';
|
||||
} elseif ($erreur) {
|
||||
// une erreur d'un SSO indique dans la redirection vers ici
|
||||
// mais il faut se proteger de toute tentative d'injection malveilante
|
||||
include_spip('inc/texte');
|
||||
$valeurs['message_erreur'] = safehtml($erreur);
|
||||
}
|
||||
|
||||
return $valeurs;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Identification via HTTP (si pas de cookie)
|
||||
*
|
||||
* Gére le cas où un utilisateur ne souhaite pas de cookie :
|
||||
* on propose alors un formulaire pour s'authentifier via http
|
||||
*
|
||||
* @return string
|
||||
* - Si connection possible en HTTP : URL pour réaliser cette identification,
|
||||
* - chaîne vide sinon.
|
||||
**/
|
||||
function login_auth_http() {
|
||||
if (!$GLOBALS['ignore_auth_http']
|
||||
and _request('var_erreur') == 'cookie'
|
||||
and (!isset($_COOKIE['spip_session']) or $_COOKIE['spip_session'] != 'test_echec_cookie')
|
||||
and (($GLOBALS['flag_sapi_name'] and preg_match(',apache,i', @php_sapi_name()))
|
||||
or preg_match(',^Apache.* PHP,', $_SERVER['SERVER_SOFTWARE']))
|
||||
// Attention dans le cas 'intranet' la proposition de se loger
|
||||
// par auth_http peut conduire a l'echec.
|
||||
and !(isset($_SERVER['PHP_AUTH_USER']) and isset($_SERVER['PHP_AUTH_PW']))
|
||||
) {
|
||||
return generer_url_action('cookie', '', false, true);
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Vérifications du formulaire de login
|
||||
*
|
||||
* Connecte la personne si l'identification réussie.
|
||||
*
|
||||
* @uses auth_identifier_login()
|
||||
* @uses auth_loger()
|
||||
* @uses login_autoriser()
|
||||
*
|
||||
* @param string $cible
|
||||
* URL de destination après identification.
|
||||
* Cas spécifique : la valeur `@page_auteur` permet d'être redirigé
|
||||
* après connexion sur le squelette public de l'auteur qui se connecte.
|
||||
* @param string $login
|
||||
* Login de la personne à identifier (si connu)
|
||||
* @param null|bool $prive
|
||||
* Identifier pour l'espace privé (true), public (false)
|
||||
* ou automatiquement (null) en fonction de la destination de l'URL cible.
|
||||
* @return array
|
||||
* Erreurs du formulaire
|
||||
**/
|
||||
function formulaires_login_verifier_dist($cible = '', $login = '', $prive = null) {
|
||||
|
||||
$session_login = _request('var_login');
|
||||
$session_password = _request('password');
|
||||
$session_remember = _request('session_remember');
|
||||
|
||||
if (!$session_login) {
|
||||
# pas de login saisi !
|
||||
return array('var_login' => _T('info_obligatoire'));
|
||||
}
|
||||
|
||||
// appeler auth_identifier_login qui va :
|
||||
// - renvoyer un string si echec (message d'erreur)
|
||||
// - un array decrivant l'auteur identifie si possible
|
||||
// - rediriger vers un SSO qui renverra in fine sur action/auth qui finira l'authentification
|
||||
include_spip('inc/auth');
|
||||
$auteur = auth_identifier_login($session_login, $session_password);
|
||||
// on arrive ici si on ne s'est pas identifie avec un SSO
|
||||
if (!is_array($auteur)) {
|
||||
$erreurs = array();
|
||||
if (is_string($auteur) and strlen($auteur)) {
|
||||
$erreurs['var_login'] = $auteur;
|
||||
}
|
||||
include_spip('inc/cookie');
|
||||
spip_setcookie('spip_admin', '', time() - 3600);
|
||||
if (strlen($session_password)) {
|
||||
$erreurs['password'] = _T('login_erreur_pass');
|
||||
} else {
|
||||
// sinon c'est un login en deux passe old style (ou js en panne)
|
||||
// pas de message d'erreur
|
||||
$erreurs['password'] = ' ';
|
||||
}
|
||||
|
||||
return
|
||||
$erreurs;
|
||||
}
|
||||
// on a ete authentifie, construire la session
|
||||
// en gerant la duree demandee pour son cookie
|
||||
if ($session_remember !== null) {
|
||||
$auteur['cookie'] = $session_remember;
|
||||
}
|
||||
// si la connexion est refusee on renvoi un message erreur de mot de passe
|
||||
// car en donnant plus de detail on renseignerait un assaillant sur l'existence d'un compte
|
||||
if (auth_loger($auteur) === false) {
|
||||
$erreurs['message_erreur'] = _T('login_erreur_pass');
|
||||
return $erreurs;
|
||||
}
|
||||
|
||||
return (is_null($prive) ? is_url_prive($cible) : $prive)
|
||||
? login_autoriser() : array();
|
||||
}
|
||||
|
||||
/**
|
||||
* Teste l'autorisation d'accéder à l'espace privé une fois une connexion
|
||||
* réussie, si la cible est une URL privée.
|
||||
*
|
||||
* Dans le cas contraire, un message d'erreur est retourné avec un lien
|
||||
* pour se déconnecter.
|
||||
*
|
||||
* @return array
|
||||
* - Erreur si un connecté n'a pas le droit d'acceder à l'espace privé
|
||||
* - tableau vide sinon.
|
||||
**/
|
||||
function login_autoriser() {
|
||||
include_spip('inc/autoriser');
|
||||
if (!autoriser('ecrire')) {
|
||||
$h = generer_url_action('logout', 'logout=prive&url=' . urlencode(self()));
|
||||
|
||||
return array(
|
||||
'message_erreur' => '<h1>'
|
||||
. _T('avis_erreur_visiteur')
|
||||
. '</h1><p>'
|
||||
. _T('texte_erreur_visiteur')
|
||||
. "</p><p class='retour'>[<a href='$h'>"
|
||||
. _T('icone_deconnecter') . '</a>]</p>'
|
||||
);
|
||||
}
|
||||
|
||||
return array();
|
||||
}
|
||||
|
||||
/**
|
||||
* Traitements du formulaire de login
|
||||
*
|
||||
* On arrive ici une fois connecté.
|
||||
* On redirige simplement sur l'URL cible désignée.
|
||||
*
|
||||
* @param string $cible
|
||||
* URL de destination après identification.
|
||||
* Cas spécifique : la valeur `@page_auteur` permet d'être redirigé
|
||||
* après connexion sur le squelette public de l'auteur qui se connecte.
|
||||
* @param string $login
|
||||
* Login de la personne à identifier (si connu)
|
||||
* @param null|bool $prive
|
||||
* Identifier pour l'espace privé (true), public (false)
|
||||
* ou automatiquement (null) en fonction de la destination de l'URL cible.
|
||||
* @return array
|
||||
* Retours du traitement
|
||||
**/
|
||||
function formulaires_login_traiter_dist($cible = '', $login = '', $prive = null) {
|
||||
$res = array();
|
||||
// Si on se connecte dans l'espace prive,
|
||||
// ajouter "bonjour" (repere a peu pres les cookies desactives)
|
||||
if (is_null($prive) ? is_url_prive($cible) : $prive) {
|
||||
$cible = parametre_url($cible, 'bonjour', 'oui', '&');
|
||||
}
|
||||
if ($cible == '@page_auteur') {
|
||||
$cible = generer_url_entite($GLOBALS['auteur_session']['id_auteur'], 'auteur');
|
||||
}
|
||||
|
||||
if ($cible) {
|
||||
$cible = parametre_url($cible, 'var_login', '', '&');
|
||||
|
||||
// transformer la cible absolue en cible relative
|
||||
// pour pas echouer quand la meta adresse_site est foireuse
|
||||
if (strncmp($cible, $u = url_de_base(), strlen($u)) == 0) {
|
||||
$cible = './' . substr($cible, strlen($u));
|
||||
} elseif (tester_url_absolue($cible) and !defined('_AUTORISER_LOGIN_ABS_REDIRECT')) {
|
||||
// si c'est une url absolue, refuser la redirection
|
||||
// sauf si cette securite est levee volontairement par le webmestre
|
||||
$cible = '';
|
||||
}
|
||||
}
|
||||
|
||||
// Si on est connecte, envoyer vers la destination
|
||||
if ($cible and ($cible != self('&')) and ($cible != self())) {
|
||||
$res['redirect'] = $cible;
|
||||
$res['message_ok'] = inserer_attribut(
|
||||
'<a>' . _T('login_par_ici') . '</a>',
|
||||
'href',
|
||||
$cible
|
||||
);
|
||||
}
|
||||
|
||||
// avant de rediriger il faut mettre a jour les sessions sur le disque si on a charge une session
|
||||
if (function_exists('terminer_actualiser_sessions')) {
|
||||
terminer_actualiser_sessions();
|
||||
}
|
||||
|
||||
return $res;
|
||||
}
|
12
formulaires/recherche.html
Executable file
12
formulaires/recherche.html
Executable file
@ -0,0 +1,12 @@
|
||||
<div class="recherche"><form action="[(#ENV{action})]" method="get">
|
||||
<div class="input-group flex">
|
||||
[(#ENV{action}|form_hidden)]
|
||||
[<input type="hidden" name="lang" value="(#ENV{lang})" />]
|
||||
<div class="input-group-prepend">
|
||||
<input class="form-control" type="search" placeholder="Rechercher" aria-label="Rechercher" name="recherche"[ value="(#ENV{recherche})"] />
|
||||
</div>
|
||||
<div class="input-group-append">
|
||||
<button type="submit" class="input-group-text">ok</button>
|
||||
</div>
|
||||
</div>
|
||||
</form></div>
|
2
head/404.html
Executable file
2
head/404.html
Executable file
@ -0,0 +1,2 @@
|
||||
<title><:pass_erreur:> 404 - [(#NOM_SITE_SPIP|textebrut)]</title>
|
||||
<meta name="robots" content="none" />
|
5
head/article.html
Executable file
5
head/article.html
Executable file
@ -0,0 +1,5 @@
|
||||
<BOUCLE_article_head(ARTICLES) {id_article}>
|
||||
<title>[(#TITRE|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title>
|
||||
[<meta name="description" content="(#INTRODUCTION{150}|attribut_html)" />]
|
||||
[<link rel="canonical" href="(#URL_ARTICLE|url_absolue)" />]
|
||||
</BOUCLE_article_head>
|
11
head/auteur.html
Executable file
11
head/auteur.html
Executable file
@ -0,0 +1,11 @@
|
||||
<BOUCLE_auteur_head(AUTEURS) {id_auteur}>
|
||||
<title>[(#NOM|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title>
|
||||
[<meta name="description" content="(#BIO|couper{150}|attribut_html)" />]
|
||||
[<link rel="canonical" href="(#URL_AUTEUR|url_absolue)" />]
|
||||
|
||||
[(#REM) Favicon personnalisee a partir du logo (si filtres d'image) ]
|
||||
[(#MODELE{favicon}{favicon=#LOGO_AUTEUR})]
|
||||
|
||||
[(#REM) Lien vers le flux RSS des articles de l'auteur ]
|
||||
<link rel="alternate" type="application/rss+xml" title="[(#NOM|textebrut)]" href="[(#URL_PAGE{backend}|parametre_url{id_auteur,#ID_AUTEUR})]" />
|
||||
</BOUCLE_auteur_head>
|
26
head/dist.html
Executable file
26
head/dist.html
Executable file
@ -0,0 +1,26 @@
|
||||
[(#REM)
|
||||
Cette inclusion est celle utilisee par defaut lorsqu'un head/xxx demande
|
||||
n'existe pas
|
||||
|
||||
Ces deux balises #NOM_SITE_SPIP et #DESCRIPTIF_SITE_SPIP
|
||||
permettent de récupérer des informations de configuration de SPIP
|
||||
que l'on renseigne dans l'espace privé.
|
||||
|
||||
Ces enregistrements sont stockés en base de donnée dans une
|
||||
table appelée "spip_meta". Les champs de la table peuvent aussi
|
||||
être récupérés en utilisant la balise #CONFIG{nom de la configuration}
|
||||
ce qui donnerait ici : #CONFIG{nom_site_spip}
|
||||
|
||||
Les |mot suivants les #BALISE indique qu'on applique certains traitements
|
||||
au texte retourné par la balise.
|
||||
|
||||
|textebrut supprime toute balise HTML, |couper{150} coupe le texte
|
||||
retourné à 150 caractères. Ces "filtres" peuvent se chaîner
|
||||
|filtreA|filtreB ...
|
||||
|
||||
Ces deux lignes permettent au bout du compte de renseigner le titre
|
||||
de la page affiché tout en haut du navigateur ainsi que la description du site
|
||||
(utile aux moteurs de recherche)
|
||||
]
|
||||
<title>[(#NOM_SITE_SPIP|textebrut)]</title>
|
||||
[<meta name="description" content="(#DESCRIPTIF_SITE_SPIP|couper{150}|textebrut)" />]
|
6
head/mot.html
Executable file
6
head/mot.html
Executable file
@ -0,0 +1,6 @@
|
||||
<BOUCLE_principale(MOTS) {id_mot} >
|
||||
<title>[(#TITRE|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title>
|
||||
[<meta name="description" content="(#DESCRIPTIF|couper{150}|attribut_html)" />]
|
||||
[(#REM) Lien vers le flux RSS des articles du mot cle ]
|
||||
<link rel="alternate" type="application/rss+xml"[ title="(#TITRE|attribut_html)"] href="[(#URL_PAGE{backend}|parametre_url{id_mot,#ID_MOT})]" />
|
||||
</BOUCLE_principale>
|
3
head/plan.html
Executable file
3
head/plan.html
Executable file
@ -0,0 +1,3 @@
|
||||
<title><:plan_site:> - [(#NOM_SITE_SPIP|textebrut)]</title>
|
||||
[<meta name="description" content="(#DESCRIPTIF_SITE_SPIP|couper{150}|attribut_html)" />]
|
||||
<meta name="robots" content="none" />
|
2
head/recherche.html
Executable file
2
head/recherche.html
Executable file
@ -0,0 +1,2 @@
|
||||
<title><:resultats_recherche:> - [(#NOM_SITE_SPIP|textebrut)]</title>
|
||||
<meta name="robots" content="none" />
|
7
head/rubrique.html
Executable file
7
head/rubrique.html
Executable file
@ -0,0 +1,7 @@
|
||||
<BOUCLE_rubrique_head(RUBRIQUES){id_rubrique}>
|
||||
[<title>(#TITREWEB|sinon{#TITRE}|textebrut)</title>]
|
||||
[<meta name="description" content="(#INTRODUCTION{150}|textebrut)" />]
|
||||
[<link rel="canonical" href="(#URL_RUBRIQUE|url_absolue)" />]
|
||||
[(#REM) Lien vers le flux RSS de la rubrique ]
|
||||
<link rel="alternate" type="application/rss+xml" title="<:syndiquer_rubrique:>" href="[(#URL_PAGE{backend}|parametre_url{id_rubrique,#ID_RUBRIQUE})]" />
|
||||
</BOUCLE_rubrique_head>
|
5
head/site.html
Executable file
5
head/site.html
Executable file
@ -0,0 +1,5 @@
|
||||
<BOUCLE_site(SITES){id_syndic}>
|
||||
<title>[(#NOM_SITE|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title>
|
||||
[<meta name="description" content="(#DESCRIPTIF|couper{150}|textebrut)" />]
|
||||
<meta name="robots" content="none" />
|
||||
</BOUCLE_site>
|
23
head/sommaire.html
Executable file
23
head/sommaire.html
Executable file
@ -0,0 +1,23 @@
|
||||
[(#REM)
|
||||
Ces deux balises #NOM_SITE_SPIP et #DESCRIPTIF_SITE_SPIP
|
||||
permettent de récupérer des informations de configuration de SPIP
|
||||
que l'on renseigne dans l'espace privé.
|
||||
|
||||
Ces enregistrements sont stockés en base de donnée dans une
|
||||
table appelée "spip_meta". Les champs de la table peuvent aussi
|
||||
être récupérés en utilisant la balise #CONFIG{nom de la configuration}
|
||||
ce qui donnerait ici : #CONFIG{nom_site_spip}
|
||||
|
||||
Les |mot suivants les #BALISE indique qu'on applique certains traitements
|
||||
au texte retourné par la balise.
|
||||
|
||||
|textebrut supprime toute balise HTML, |couper{150} coupe le texte
|
||||
retourné à 150 caractères. Ces "filtres" peuvent se chaîner
|
||||
|filtreA|filtreB ...
|
||||
|
||||
Ces deux lignes permettent au bout du compte de renseigner le titre
|
||||
de la page affiché tout en haut du navigateur ainsi que la description du site
|
||||
(utile aux moteurs de recherche)
|
||||
]
|
||||
<title>[(#NOM_SITE_SPIP|typo|textebrut)][ - (#SLOGAN_SITE_SPIP|typo|textebrut)]</title>
|
||||
[<meta name="description" content="(#DESCRIPTIF_SITE_SPIP|textebrut)" />]
|
0
head_js/dist.html
Executable file
0
head_js/dist.html
Executable file
6
header/dist.html
Executable file
6
header/dist.html
Executable file
@ -0,0 +1,6 @@
|
||||
<div class="accueil">
|
||||
<h1 id="logo_site_spip"[ class="(#EDIT{meta-nom_site})"]>[(#SI_PAGE{sommaire}|non)<a rel="start home" href="#URL_SITE_SPIP/" title="<:accueil_site:>">]
|
||||
[(#LOGO_SITE_SPIP|image_reduire{400,60}) ]<span class="nom_site_spip">#NOM_SITE_SPIP</span>
|
||||
[<small class="slogan_site_spip[ (#EDIT{meta-slogan_site})]">(#SLOGAN_SITE_SPIP)</small>]
|
||||
[(#SI_PAGE{sommaire}|non)</a>]</h1>
|
||||
</div>
|
9
inclure/archives-mois.html
Executable file
9
inclure/archives-mois.html
Executable file
@ -0,0 +1,9 @@
|
||||
<div class="liste articles archives">
|
||||
<h2 class="h2"><:baz_april:archives:></h2>
|
||||
<ul class="liste-items inline">
|
||||
<BOUCLE_hero(ARTICLES){id_rubrique}{fusion YEAR(date)}{fusion MONTH(date)}{!par date}>
|
||||
[<li class="item annees">(#DATE|affdate{Y}|unique)</li>]
|
||||
[<li class="item"><a[ href="(#URL_RUBRIQUE|parametre_url{date,#DATE|affdate{Y-m}})"]>(#DATE|affdate{nom_mois})</a></li>]
|
||||
</BOUCLE_hero>
|
||||
</ul>
|
||||
</div>
|
10
inclure/article-hero.html
Executable file
10
inclure/article-hero.html
Executable file
@ -0,0 +1,10 @@
|
||||
<BOUCLE_hero(ARTICLES){id_article}>
|
||||
<div class="hero-unit item hentry">
|
||||
<h1 class="entry-title"><a href="#URL_ARTICLE" rel="bookmark">#TITRE[(#LOGO_ARTICLE_RUBRIQUE|image_reduire{500,100}|responsive_logo)]</a></h1>
|
||||
<p class="publication">[<time pubdate="pubdate" datetime="[(#DATE|date_iso)]">(#DATE|affdate)</time>]</p>
|
||||
[<div class="#EDIT{intro} introduction entry-content">(#INTRODUCTION)</div>]
|
||||
<p class="postmeta">
|
||||
<a class="btn btn-primary btn-large lire-la-suite" href="#URL_ARTICLE" title="<:zcore:lire_la_suite|attribut_html:> <:zcore:lire_la_suite_de|attribut_html:> [(#TITRE|attribut_html)]"><:zcore:lire_la_suite:></a>
|
||||
</p>
|
||||
</div>
|
||||
</BOUCLE_hero>
|
10
inclure/articles-resume.html
Executable file
10
inclure/articles-resume.html
Executable file
@ -0,0 +1,10 @@
|
||||
<B_articles>
|
||||
#ANCRE_PAGINATION
|
||||
<h2 class="h2">[(#ENV{titre,<:derniers_articles:>})]</h2>
|
||||
<ul class="liste-items">
|
||||
<BOUCLE_articles(ARTICLES){id_rubrique!=-1}{id_rubrique?} {lang} {par num titre} {!par date} {pagination #ENV{nb,10}}>
|
||||
<li class="item clearfix">#INCLURE{fond=inclure/resume/article,id_article,env}</li>
|
||||
</BOUCLE_articles>
|
||||
</ul>
|
||||
[<div class="pagination">(#PAGINATION)</div>]
|
||||
</B_articles>
|
16
inclure/articles.html
Executable file
16
inclure/articles.html
Executable file
@ -0,0 +1,16 @@
|
||||
[(#REM) on affiche tous les articles, on garde le paramètre url des paginations article et rubrique ]
|
||||
<BOUCLE_env(ARTICLES){id_article}>
|
||||
<BOUCLE_trad(ARTICLES){origine_traduction}{traduction}>[(#SET{trad#ID_ARTICLE,on})]</BOUCLE_trad>
|
||||
</BOUCLE_env>
|
||||
<B_articles_rubrique>#ANCRE_PAGINATION
|
||||
<ul[(#COMPOSITION|=={blog}|oui) class="blog"]>
|
||||
<BOUCLE_articles_rubrique(ARTICLES) {id_rubrique} {lang} {par num titre} {!par date} {pagination #ENV{nb,10}}>
|
||||
<li>
|
||||
<a[ href="(#URL_ARTICLE|parametre_url{debut_articles_rubrique,@#ID_ARTICLE})"] class="article[(#LOGO_ARTICLE|oui)logo clearfix][ (#EXPOSE)][ (#GET{trad#ID_ARTICLE})]">[(#COMPOSITION|=={blog}|oui)[<p class="date">(#DATE|affdate)</p>]]
|
||||
[(#LOGO_ARTICLE|image_reduire{60,*})] #TITRE [(#COMPOSITION|=={blog}|oui)[<p class="soustitre">(#SOUSTITRE)</p>][<p class="introduction">(#INTRODUCTION|couper{120})</p>]]
|
||||
</a>
|
||||
</li>
|
||||
</BOUCLE_articles_rubrique>
|
||||
</ul>
|
||||
[<p class="pagination">(#PAGINATION{page})</p>]
|
||||
</B_articles_rubrique>
|
5
inclure/boussole.html
Normal file
5
inclure/boussole.html
Normal file
@ -0,0 +1,5 @@
|
||||
<div class="header__boussole">
|
||||
<div class="page--container">
|
||||
inclure un menu
|
||||
</div>
|
||||
</div>
|
31
inclure/documents.html
Executable file
31
inclure/documents.html
Executable file
@ -0,0 +1,31 @@
|
||||
[(#REM) Portfolio : album d'images ]
|
||||
<B_documents_portfolio>
|
||||
<div class="liste documents documents_portfolio" id="documents_portfolio">
|
||||
<BOUCLE_documents_portfolio(DOCUMENTS){id_article?}{id_rubrique?} {objet?}{id_objet?}{mode=document}{extension IN png,jpg,gif}{par rang_lien, num titre, date}{vu=non}{doublons}>[
|
||||
<a href="(#URL_DOCUMENT)"
|
||||
type="#MIME_TYPE"
|
||||
title="[(#TITRE|attribut_html|couper{80})][ ©(#CREDITS)]">[(#FICHIER
|
||||
|image_reduire{0,100}
|
||||
|inserer_attribut{class,spip_logos}
|
||||
|inserer_attribut{data-photo,#URL_DOCUMENT}
|
||||
|inserer_attribut{data-photo-h,#HAUTEUR}
|
||||
|inserer_attribut{data-photo-w,#LARGEUR}
|
||||
|inserer_attribut{alt,[(#TITRE|attribut_html|couper{80})]})]</a>
|
||||
]</BOUCLE_documents_portfolio>
|
||||
</div>
|
||||
</B_documents_portfolio>
|
||||
|
||||
|
||||
[(#REM)
|
||||
Liste des autres documents joints
|
||||
]
|
||||
<B_documents_joints>
|
||||
<div class="liste documents documents_joints">
|
||||
<h2 class="h2"><:medias:titre_documents_joints:></h2>
|
||||
<ul class="list-items">
|
||||
<BOUCLE_documents_joints(DOCUMENTS){id_article?}{id_rubrique?}{objet?}{id_objet?}{extension !IN gif,jpg,png}{vu=non}{par rang_lien, num titre, date}{doublons}>
|
||||
<li class="item">#INCLURE{fond=inclure/resume/document,id_document}</li>
|
||||
</BOUCLE_documents_joints>
|
||||
</ul>
|
||||
</div>
|
||||
</B_documents_joints>
|
40
inclure/head.html
Executable file
40
inclure/head.html
Executable file
@ -0,0 +1,40 @@
|
||||
[(#REM)
|
||||
Head standard de toutes les pages ;
|
||||
les elements specifiques (title, description) figurent dans chaque squelette
|
||||
|
||||
]
|
||||
<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) baz css ]
|
||||
[<link rel="stylesheet" href="(#CSS{scss/baz.css})" type="text/css" />]
|
||||
|
||||
#INSERT_HEAD_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
|
||||
|
||||
[<script src="(#CHEMIN{js/baz_script.js})" type="text/javascript"></script>]
|
||||
[(#REM) 6. Vos scripts ]
|
||||
[<script src="(#CHEMIN{js/script.js})" type="text/javascript"></script>]
|
||||
|
||||
[(#REM) Fierement fabrique avec SPIP ]
|
||||
<meta name="generator" content="SPIP[ (#SPIP_VERSION)]" />
|
||||
|
||||
[(#REM) Favicon + activer le plugin Favicon ]
|
||||
[<link rel="shortcut icon" href="(#ENV*{favicon}
|
||||
|sinon{#CHEMIN{favicon.ico}}
|
||||
|sinon{#CHEMIN{favicon.png}}
|
||||
|sinon{#LOGO_SITE_SPIP}
|
||||
|image_passe_partout{16,16}
|
||||
|image_recadre{16,16,center}
|
||||
|image_format{ico}|extraire_attribut{src})" type="image/x-icon" />]
|
||||
|
||||
[(#REM) meta robots ]
|
||||
[<meta name="robots" content="(#ENV{robots})" />]
|
10
inclure/liste-articles.html
Executable file
10
inclure/liste-articles.html
Executable file
@ -0,0 +1,10 @@
|
||||
<B_articles>
|
||||
#ANCRE_PAGINATION
|
||||
<h2 class="h2">[(#ENV{titre,<:derniers_articles:>})]</h2>
|
||||
<ul class="liste-items">
|
||||
<BOUCLE_articles(ARTICLES){id_rubrique!=-1}{id_rubrique?} {lang} {par num titre} {!par date} {pagination #ENV{nb,10}}>
|
||||
<li class="item clearfix">#INCLURE{fond=inclure/resume/article,id_article,env}</li>
|
||||
</BOUCLE_articles>
|
||||
</ul>
|
||||
[<div class="pagination">(#PAGINATION)</div>]
|
||||
</B_articles>
|
25
inclure/liste-rubriques.html
Executable file
25
inclure/liste-rubriques.html
Executable file
@ -0,0 +1,25 @@
|
||||
#SET{sens_tri_map, #ARRAY{direct,0, inverse,-1}}
|
||||
#SET{sens_tri, #GET{sens_tri_map/#ENV{sens}}}
|
||||
#SET{par_map, #ARRAY{
|
||||
num_titre, 'num titre'
|
||||
}}
|
||||
#SET{defaut_tri, #ARRAY{
|
||||
titre, #GET{sens_tri,0},
|
||||
num titre, #GET{sens_tri,0},
|
||||
date, #GET{sens_tri,-1},
|
||||
date_modif, #GET{sens_tri,-1}
|
||||
}}
|
||||
#SET{par, #ENV{par}|in_array{#GET{par_map}|array_keys}|?{#GET{par_map/#ENV{par}},#ENV{par}}}
|
||||
#SET{tri, #GET{par,titre}}
|
||||
<BOUCLE_rubrique(RUBRIQUES){id_rubrique}>
|
||||
<B_rubriques_rubrique>
|
||||
#ANCRE_PAGINATION
|
||||
[<h2 class="h2">(#ENV{titre,<:rubriques:>})</h2>]
|
||||
<ul class="liste-items">
|
||||
<BOUCLE_rubriques_rubrique(RUBRIQUES) {id_parent} {tri #GET{tri}, #GET{defaut_tri}} {pagination #ENV{parpage,10}}>
|
||||
<li class="item clearfix">#INCLURE{fond=inclure/resume/rubrique,id_rubrique,env,largeur_logo=#ENV{largeur_logo},coupe=#ENV{coupe}}</li>
|
||||
</BOUCLE_rubriques_rubrique>
|
||||
</ul>
|
||||
[<div class="pagination">(#PAGINATION)</div>]
|
||||
</B_rubriques_rubrique>
|
||||
</BOUCLE_rubrique>
|
17
inclure/mots-articles-rubrique.html
Executable file
17
inclure/mots-articles-rubrique.html
Executable file
@ -0,0 +1,17 @@
|
||||
#SET{mots,#ARRAY}
|
||||
<BOUCLE_principale(ARTICLES) {id_rubrique}>
|
||||
<BOUCLE_mots(MOTS) {id_article} {par titre}>
|
||||
#SET{mots,#GET{mots}|push{#ID_MOT}}
|
||||
</BOUCLE_mots>
|
||||
</BOUCLE_principale>
|
||||
|
||||
<B_mots_liste>
|
||||
<div class="liste mots">
|
||||
<h2 class="h2"><:baz_april:tags:></h2>
|
||||
<ul class="liste-items inline">
|
||||
<BOUCLE_mots_liste(MOTS) {id_mot IN #GET{mots}} {par titre}>
|
||||
<li class="item"><a href="#URL_MOT"[ class="(#EXPOSE)"]><i class="fa fa-tag"></i> #TITRE</a></li>
|
||||
</BOUCLE_mots_liste>
|
||||
</ul>
|
||||
</div>
|
||||
</B_mots_liste>
|
10
inclure/nav-secteurs.html
Executable file
10
inclure/nav-secteurs.html
Executable file
@ -0,0 +1,10 @@
|
||||
<B_nav>
|
||||
<nav class="nav" aria-label="Menu principal">
|
||||
<ul class="nav-list">
|
||||
<li class="nav-item[ (#SI_PAGE{sommaire})on]"><a href="#URL_SITE_SPIP/"><:zcore:accueil:></a></li>
|
||||
<BOUCLE_nav(RUBRIQUES) {racine} {par num titre, titre}>
|
||||
<li class="nav-item[ (#EXPOSE)][ (#COMPTEUR_BOUCLE|=={1}|oui)first][ (#COMPTEUR_BOUCLE|=={#TOTAL_BOUCLE}|oui)last]"><a href="#URL_RUBRIQUE"[ class="(#EXPOSE)"]>#TITRE</a></li>
|
||||
</BOUCLE_nav>
|
||||
</ul>
|
||||
</nav>
|
||||
</B_nav>
|
9
inclure/periode-mois.html
Executable file
9
inclure/periode-mois.html
Executable file
@ -0,0 +1,9 @@
|
||||
<div class="liste periode">
|
||||
<h2 class="h2"><:baz_april:tri_periodique:></h2>
|
||||
<div class="clear">
|
||||
<BOUCLE_hero(ARTICLES){id_rubrique}{fusion YEAR(date)}{fusion MONTH(date)}{!par date}>
|
||||
[<span class="annees archive[ ouvert(#DATE|affdate{Y}|=={[(#ENV{date}|affdate{Y})]}|oui)]">(#DATE|affdate{Y}|unique)</span>]
|
||||
[<a[ href="(#URL_RUBRIQUE|parametre_url{datetri,#DATE|affdate{Y-m}})"]>(#DATE|affdate{nom_mois})</a>]
|
||||
</BOUCLE_hero>
|
||||
</div>
|
||||
</div>
|
45
inclure/petition.html
Executable file
45
inclure/petition.html
Executable file
@ -0,0 +1,45 @@
|
||||
[(#REM) Signer la petition ]
|
||||
#FORMULAIRE_SIGNATURE
|
||||
|
||||
[(#REM) Signatures de la petition ]
|
||||
<B_signatures>
|
||||
<div id="signatures">
|
||||
[<div class="pagination">(#PAGINATION)</div>]
|
||||
<table class="spip">
|
||||
<caption><h2 class="h2">#GRAND_TOTAL <:signatures_petition:></h2></caption>
|
||||
<thead>
|
||||
<tr class="row_first">
|
||||
<th class="signature-date"><a href='[(#SELF|parametre_url{tri,date_time}|parametre_url{tri_inverse,''})]#signatures' title="<:lien_trier_date:>"><:date:></a></th>
|
||||
<th class="signature-nom"><a href='[(#SELF|parametre_url{tri,nom_email}|parametre_url{tri_inverse,''})]#signatures' title="<:lien_trier_nom:>"><:nom:></a></th>
|
||||
[(#REM) Afficher la colonne des messages si autorises ]
|
||||
<BOUCLE_signature-message-th(PETITIONS){id_article}{message=oui}>
|
||||
<th class="signature-message"><:message:></th>
|
||||
</BOUCLE_signature-message-th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<BOUCLE_signatures(SIGNATURES) {id_article} {pagination #ENV{pagination, 15} } {recherche ?#ENV{recherche_signatures}} {!par #ENV{tri}}{par #ENV{tri_inverse}} {!par #ENV{tri,#ENV{tri_inverse}}|?{'',date_time}}>
|
||||
<tr [class="(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})" ]id='id_signature#ID_SIGNATURE'>
|
||||
<td class="signature-date">[(#DATE|affdate_jourcourt)]</td>
|
||||
<td class="signature-nom"><strong class="#EDIT{qui}">#NOM</strong>[ <div class="small #EDIT{hyperlien}"><a href="(#URL_SITE)"[ title="(#NOM_SITE|attribut_html|couper{80})"] class="spip_out"><:site_web:></a></div>]</td>
|
||||
[(#REM) Afficher la colonne des messages si autorises ]
|
||||
<BOUCLE_signature-message-td(PETITIONS){id_article}{message=oui}> </BOUCLE_signature-message-td>
|
||||
<td class="signature-message #EDIT{message}">[(#MESSAGE|PtoBR)]</td>
|
||||
</B_signature-message-td>
|
||||
</tr>
|
||||
</BOUCLE_signatures>
|
||||
</tbody>
|
||||
</table>
|
||||
[<div class="pagination">(#PAGINATION)</div>]
|
||||
|
||||
[(#REM) Afficher un moteur de recherche si plus de 30 signatures
|
||||
ou s'il etait deja present au coup d'avant]
|
||||
[(#ENV{recherche_signatures}|?{31,#_signatures:GRAND_TOTAL}|>{3}|oui)
|
||||
<div class="formulaire_spip formulaire_recherche formulaire_recherche_signatures" id="formulaire_recherche_signatures">
|
||||
<form method='get' action='#SELF'><div>[(#SELF|form_hidden)]
|
||||
<label for="recherche_signatures"><:info_rechercher:></label> <input type="text" class="text" size="10" name="recherche_signatures" id="recherche_signatures" style='font-style: italic;' value=" <:entree_signature:>"/> <input type="submit" class="submit" value="<:info_rechercher:>" />
|
||||
</div></form>
|
||||
</div>
|
||||
]
|
||||
</div><!--#signatures-->
|
||||
</B_signatures>
|
13
inclure/resume/article.html
Executable file
13
inclure/resume/article.html
Executable file
@ -0,0 +1,13 @@
|
||||
[(#REM)
|
||||
|
||||
Squelette Presentation resumee d'un article dans une liste
|
||||
Distribue sous licence GPL
|
||||
|
||||
]
|
||||
<BOUCLE_articles(ARTICLES) {id_article} {statut?}>
|
||||
<article class="entry article hentry[(#COMPOSITION|=={blog}|oui) blog]">
|
||||
<p class="publication">[<time datetime="[(#DATE|date_iso)]">(#DATE|affdate)</time>]</p>
|
||||
<h3 class="h3 entry-title"><a href="[(#URL_ARTICLE|parametre_url{debut_articles_rubrique,@#ID_ARTICLE}|parametre_url{recherche,#ENV{recherche}})]" rel="bookmark">[(#ENV{logo_rubrique,' '}|?{#LOGO_ARTICLE_RUBRIQUE,#LOGO_ARTICLE}|image_reduire{#ENV{largeur_logo,-1},#ENV{hauteur_logo,-1}}|responsive_logo)]<span>#TITRE</span></a></h3>
|
||||
[<div class="#EDIT{intro} introduction entry-content">(#INTRODUCTION{#ENV{coupe,300}})</div>]
|
||||
</article>
|
||||
</BOUCLE_articles>
|
13
inclure/resume/rubrique.html
Executable file
13
inclure/resume/rubrique.html
Executable file
@ -0,0 +1,13 @@
|
||||
[(#REM)
|
||||
|
||||
Squelette Presentation resumee d'un article dans une liste
|
||||
Distribue sous licence GPL
|
||||
|
||||
]
|
||||
<BOUCLE_articles(RUBRIQUES) {id_rubrique} {statut?}>
|
||||
<article class="entry rubrique hentry">
|
||||
<p class="publication[(#COMPOSITION|=={blog}|oui) blog]">[<time datetime="[(#DATE|date_iso)]">(#DATE|affdate)</time>]</p>
|
||||
<h3 class="h3 entry-title"><a href="[(#URL_RUBRIQUE|parametre_url{recherche,#ENV{recherche}})]" rel="bookmark">[(#LOGO_RUBRIQUE|image_reduire{#ENV{largeur_logo,-1},#ENV{hauteur_logo,-1}}|responsive_logo)]<span>#TITRE</span></a></h3>
|
||||
[<div class="#EDIT{introduction} introduction entry-content">(#INTRODUCTION{#ENV{coupe,300}})</div>]
|
||||
</article>
|
||||
</BOUCLE_articles>
|
12
inclure/resume/site.html
Executable file
12
inclure/resume/site.html
Executable file
@ -0,0 +1,12 @@
|
||||
[(#REM)
|
||||
|
||||
Squelette Presentation resumee d'un syndic dans une liste
|
||||
Distribue sous licence GPL
|
||||
|
||||
]
|
||||
<BOUCLE_resume_syndic(SYNDIC) {id_syndic} {statut?}>
|
||||
<article class="entry site">
|
||||
<h3 class="h3 entry-title"><a href="#ENV{url,#URL_SITE}" rel="bookmark" class="spip_out">[(#LOGO_SYNDIC_RUBRIQUE|image_reduire{#ENV{largeur_logo,-1},#ENV{hauteur_logo,-1}}|responsive_logo)]#NOM_SITE</a></h3>
|
||||
[<div class="#EDIT{intro} introduction entry-content">(#DESCRIPTIF|couper{#ENV{coupe,300}})</div>]
|
||||
</article>
|
||||
</BOUCLE_resume_syndic>
|
9
inclure/resume/syndic_article.html
Executable file
9
inclure/resume/syndic_article.html
Executable file
@ -0,0 +1,9 @@
|
||||
<BOUCLE_resume_article_syndique(SYNDIC_ARTICLES){id_syndic_article}>
|
||||
<article class="entry article syndic_article">
|
||||
<h4 class="h4 entry-title">[<a href="#URL_SITE" rel="bookmark" class="spip_out">(#LOGO_SITE|image_reduire{#ENV{largeur_logo,25},#ENV{hauteur_logo,50}}|inserer_attribut{alt,#NOM_SITE}|responsive_logo)</a>]
|
||||
[<a href="#URL_ARTICLE" rel="bookmark" class="spip_out">(#TITRE*)<span
|
||||
class="read-more hide"><i class="icon-chevron-right" title="<:zcore:lire_la_suite|attribut_html:><:zcore:lire_la_suite_de|attribut_html:>«[(#TITRE*|attribut_html)]»"></i></span></a>]</h4>
|
||||
<p class="publication">[<time datetime="[(#DATE|date_iso)]"><i class="icon-calendar"></i> (#DATE|affdate)</time>]</p>
|
||||
[<div class="#EDIT{intro} introduction entry-content">(#DESCRIPTIF|couper{#ENV{coupe,300}})</div>]
|
||||
</article>
|
||||
</BOUCLE_resume_article_syndique>
|
55
inclure/rss-item.html
Executable file
55
inclure/rss-item.html
Executable file
@ -0,0 +1,55 @@
|
||||
<BOUCLE_un_article(ARTICLES){id_article}>
|
||||
<item[ xml:lang="(#LANG)"]>
|
||||
<title>[(#TITRE|supprimer_tags|texte_backend)]</title>
|
||||
<link>[(#URL_ARTICLE|url_absolue)]</link>
|
||||
[<guid isPermaLink="true">(#URL_ARTICLE|url_absolue|texte_backend)</guid>]
|
||||
[<dc:date>(#DATE|date_iso)</dc:date>]
|
||||
<dc:format>text/html</dc:format>
|
||||
[<dc:language>(#LANG)</dc:language>][(#CONFIG{baz_april/afficherauteurs}|=={on}|oui)
|
||||
[<dc:creator>(#LESAUTEURS|supprimer_tags|texte_backend)</dc:creator>]]
|
||||
|
||||
[(#REM)
|
||||
Le bloc qui suit diffuse les mots-cles a la mode RSS
|
||||
|
||||
]<BOUCLE_mots_rss(MOTS){id_article}>
|
||||
[<dc:subject>(#TITRE|texte_backend)</dc:subject>]</BOUCLE_mots_rss>
|
||||
|
||||
<description>[(#INTRODUCTION|texte_backend)]
|
||||
|
||||
[(#REM)
|
||||
Le bloc qui suit diffuse la rubrique et les mots-cles
|
||||
sous forme de "microformats"
|
||||
|
||||
]<BOUCLE_rubrique_mf(RUBRIQUES){id_rubrique}>-
|
||||
[<a href="[(#URL_RUBRIQUE|url_absolue)]" rel="directory">(#TITRE|supprimer_tags|texte_backend)</a>]
|
||||
</BOUCLE_rubrique_mf><B_mots_mf>
|
||||
/ <BOUCLE_mots_mf(MOTS){id_article}{", "}>
|
||||
[<a href="[(#URL_MOT|url_absolue)]" rel="tag">(#TITRE|texte_backend)</a>]</BOUCLE_mots_mf>
|
||||
|
||||
</description>
|
||||
|
||||
[(#REM)
|
||||
Le bloc qui suit diffuse aussi le texte integral de l'article,
|
||||
ce qui permet une syndication plus riche (mais plus "lourde").
|
||||
Fonction desactivable depuis les reglages du site.
|
||||
][
|
||||
(#CONFIG{syndication_integrale}|=={oui}|?{' ',''})<content:encoded>[(#LOGO_ARTICLE{right}|image_reduire{150,150}|texte_backend)
|
||||
][<div class='rss_chapo'>(#CHAPO|texte_backend)</div>
|
||||
][<div class='rss_texte'>(#TEXTE|
|
||||
image_reduire{500,0}|texte_backend)</div>
|
||||
][<div class="hyperlien"><:voir_en_ligne|html2unicode:> : <a href="(#URL_SITE)" class="spip_out">[(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]}|texte_backend)]</a></div>
|
||||
][<hr />
|
||||
<div class='rss_notes'>(#NOTES|texte_backend)</div>
|
||||
][<div class='rss_ps'>(#PS|texte_backend)</div>]
|
||||
</content:encoded>
|
||||
]
|
||||
|
||||
[(#REM)
|
||||
Le bloc qui suit diffuse l'adresse des documents associes aux articles ;
|
||||
ajouter par ex. {extension=mp3} pour limiter a un certain type de document.
|
||||
] <BOUCLE_documents(DOCUMENTS){id_article}{mode=document}{doublons}>[
|
||||
<enclosure url="(#URL_DOCUMENT|url_absolue|unique)"[ length="(#TAILLE)"][ type="(#MIME_TYPE)"] />]
|
||||
</BOUCLE_documents>
|
||||
|
||||
</item>
|
||||
</BOUCLE_un_article>
|
56
inclure/rubriques.html
Executable file
56
inclure/rubriques.html
Executable file
@ -0,0 +1,56 @@
|
||||
[(#REM)
|
||||
Barre de navigation, ouverte sur la hierarchie courante
|
||||
|
||||
On fait un plan, et, quand on avance vers une rubrique,
|
||||
on l'affiche si son parent est expose ou est la racine du site. ]
|
||||
<B_rubriques>
|
||||
<nav class="nav">
|
||||
<BOUCLE_rubriques(RUBRIQUES) {racine} {id_secteur}>
|
||||
|
||||
[(#REM) si plus d'un article, la liste des articles ]
|
||||
<BOUCLE_test_article_r1(ARTICLES){id_rubrique}>
|
||||
</BOUCLE_test_article_r1>
|
||||
[(#SI_PAGE{rubrique}|non)[(#TOTAL_BOUCLE|>={10}|oui)
|
||||
#SET{nb,10}[(#COMPOSITION|=={blog}|oui)#SET{nb,5}]
|
||||
<INCLURE{fond=inclure/articles,env,ajax,id_rubrique=#ID_SECTEUR,id_article,debut_articles_rubrique,composition,nb=#GET{nb}} />
|
||||
]]
|
||||
[(#SI_PAGE{rubrique}|non)
|
||||
[(#TOTAL_BOUCLE|>={10}|non)
|
||||
[(#TOTAL_BOUCLE|>={2}|oui)
|
||||
[(#COMPOSITION|=={blog}|oui)#SET{nb,5}<INCLURE{fond=inclure/articles,env,ajax,id_rubrique,id_article,composition,nb=#GET{nb}} />]
|
||||
[(#COMPOSITION|=={blog}|non)
|
||||
[(#COMPOSITION|=={accueil}|non)<INCLURE{fond=inclure/articles,id_rubrique,id_article,composition,nb=#GET{nb}} />]
|
||||
]
|
||||
]
|
||||
]]
|
||||
</B_test_article_r1>
|
||||
|
||||
[(#REM) quoi qu'il en soit, la liste des rubriques ]
|
||||
<B_rubriques_rubrique>
|
||||
<ul class="nav-list">
|
||||
<BOUCLE_rubriques_rubrique(RUBRIQUES) {id_parent} {par num titre, titre}>
|
||||
<li class="nav-item">
|
||||
<a href="#URL_RUBRIQUE"[ class="(#EXPOSE)"]>[(#TITRE)]</a>
|
||||
|
||||
<BOUCLE_test_expose_r2(RUBRIQUES) {id_rubrique}>#EXPOSE{' '}</BOUCLE_test_expose_r2>
|
||||
<BOUCLE_test_article_r2(ARTICLES){id_rubrique}>
|
||||
</BOUCLE_test_article_r2>
|
||||
[(#TOTAL_BOUCLE|>={10}|oui)
|
||||
<INCLURE{fond=inclure/articles,env,ajax,id_rubrique,id_article,debut_articles_rubrique} />
|
||||
]
|
||||
[(#TOTAL_BOUCLE|>={10}|non)
|
||||
[(#TOTAL_BOUCLE|>={2}|oui)
|
||||
<INCLURE{fond=inclure/articles,id_rubrique,id_article,composition} />
|
||||
]
|
||||
]
|
||||
</B_test_article_r2>
|
||||
<BOUCLE_re_rubriques_rubrique(BOUCLE_rubriques_rubrique)></BOUCLE_re_rubriques_rubrique>
|
||||
</B_test_expose_r2>
|
||||
</li>
|
||||
</BOUCLE_rubriques_rubrique>
|
||||
</ul>
|
||||
</B_rubriques_rubrique>
|
||||
|
||||
</BOUCLE_rubriques>
|
||||
</nav>
|
||||
</B_rubriques>
|
26
js/baz_script.js
Executable file
26
js/baz_script.js
Executable file
@ -0,0 +1,26 @@
|
||||
jQuery(function($){
|
||||
// nouvelle fenetre pour les liens sortants
|
||||
$('a.spip_out').each(function(){
|
||||
var url_ext = $(this).attr('href');
|
||||
$(this).attr("title","ouvre une nouvelle fenêtre : "+url_ext+"").click(function(){
|
||||
window.open(url_ext);
|
||||
return false
|
||||
});
|
||||
});
|
||||
|
||||
// masquer les mois des annees precedentes, les afficher au clic sur l'annee
|
||||
$.each( ['.annees.archive'], function(i,hi){
|
||||
$( ".periode div" ).find(hi).each(function(index) {
|
||||
// Creer un div apres le h3 et y placer tout ce qui se trouve apres et jusqu'au hi suivant
|
||||
$(this).after("<span class=\"mois_archives\"></span>").next().append($(this).next().nextUntil(hi));
|
||||
// plier/deplier le contenu
|
||||
// $(this).next().hide();
|
||||
$(this).click(function(){
|
||||
$(this).next().toggleClass('ouvert');
|
||||
$(this).toggleClass('ouvert');
|
||||
return false;
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
});
|
780
js/css3-mediaqueries.js
Executable file
780
js/css3-mediaqueries.js
Executable file
@ -0,0 +1,780 @@
|
||||
if(typeof Object.create!=="function"){
|
||||
Object.create=function(o){
|
||||
function F(){
|
||||
};
|
||||
F.prototype=o;
|
||||
return new F();
|
||||
};
|
||||
}
|
||||
var ua={toString:function(){
|
||||
return navigator.userAgent;
|
||||
},test:function(s){
|
||||
return this.toString().toLowerCase().indexOf(s.toLowerCase())>-1;
|
||||
}};
|
||||
ua.version=(ua.toString().toLowerCase().match(/[\s\S]+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1];
|
||||
ua.webkit=ua.test("webkit");
|
||||
ua.gecko=ua.test("gecko")&&!ua.webkit;
|
||||
ua.opera=ua.test("opera");
|
||||
ua.ie=ua.test("msie")&&!ua.opera;
|
||||
ua.ie6=ua.ie&&document.compatMode&&typeof document.documentElement.style.maxHeight==="undefined";
|
||||
ua.ie7=ua.ie&&document.documentElement&&typeof document.documentElement.style.maxHeight!=="undefined"&&typeof XDomainRequest==="undefined";
|
||||
ua.ie8=ua.ie&&typeof XDomainRequest!=="undefined";
|
||||
var domReady=function(){
|
||||
var _1=[];
|
||||
var _2=function(){
|
||||
if(!arguments.callee.done){
|
||||
arguments.callee.done=true;
|
||||
for(var i=0;i<_1.length;i++){
|
||||
_1[i]();
|
||||
}
|
||||
}
|
||||
};
|
||||
if(document.addEventListener){
|
||||
document.addEventListener("DOMContentLoaded",_2,false);
|
||||
}
|
||||
if(ua.ie){
|
||||
(function(){
|
||||
try{
|
||||
document.documentElement.doScroll("left");
|
||||
}
|
||||
catch(e){
|
||||
setTimeout(arguments.callee,50);
|
||||
return;
|
||||
}
|
||||
_2();
|
||||
})();
|
||||
document.onreadystatechange=function(){
|
||||
if(document.readyState==="complete"){
|
||||
document.onreadystatechange=null;
|
||||
_2();
|
||||
}
|
||||
};
|
||||
}
|
||||
if(ua.webkit&&document.readyState){
|
||||
(function(){
|
||||
if(document.readyState!=="loading"){
|
||||
_2();
|
||||
}else{
|
||||
setTimeout(arguments.callee,10);
|
||||
}
|
||||
})();
|
||||
}
|
||||
window.onload=_2;
|
||||
return function(fn){
|
||||
if(typeof fn==="function"){
|
||||
_1[_1.length]=fn;
|
||||
}
|
||||
return fn;
|
||||
};
|
||||
}();
|
||||
var cssHelper=function(){
|
||||
var _3={BLOCKS:/[^\s{][^{]*\{(?:[^{}]*\{[^{}]*\}[^{}]*|[^{}]*)*\}/g,BLOCKS_INSIDE:/[^\s{][^{]*\{[^{}]*\}/g,DECLARATIONS:/[a-zA-Z\-]+[^;]*:[^;]+;/g,RELATIVE_URLS:/url\(['"]?([^\/\)'"][^:\)'"]+)['"]?\)/g,REDUNDANT_COMPONENTS:/(?:\/\*([^*\\\\]|\*(?!\/))+\*\/|@import[^;]+;)/g,REDUNDANT_WHITESPACE:/\s*(,|:|;|\{|\})\s*/g,MORE_WHITESPACE:/\s{2,}/g,FINAL_SEMICOLONS:/;\}/g,NOT_WHITESPACE:/\S+/g};
|
||||
var _4,_5=false;
|
||||
var _6=[];
|
||||
var _7=function(fn){
|
||||
if(typeof fn==="function"){
|
||||
_6[_6.length]=fn;
|
||||
}
|
||||
};
|
||||
var _8=function(){
|
||||
for(var i=0;i<_6.length;i++){
|
||||
_6[i](_4);
|
||||
}
|
||||
};
|
||||
var _9={};
|
||||
var _a=function(n,v){
|
||||
if(_9[n]){
|
||||
var _b=_9[n].listeners;
|
||||
if(_b){
|
||||
for(var i=0;i<_b.length;i++){
|
||||
_b[i](v);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
var _c=function(_d,_e,_f){
|
||||
if(ua.ie&&!window.XMLHttpRequest){
|
||||
window.XMLHttpRequest=function(){
|
||||
return new ActiveXObject("Microsoft.XMLHTTP");
|
||||
};
|
||||
}
|
||||
if(!XMLHttpRequest){
|
||||
return "";
|
||||
}
|
||||
var r=new XMLHttpRequest();
|
||||
try{
|
||||
r.open("get",_d,true);
|
||||
r.setRequestHeader("X_REQUESTED_WITH","XMLHttpRequest");
|
||||
}
|
||||
catch(e){
|
||||
_f();
|
||||
return;
|
||||
}
|
||||
var _10=false;
|
||||
setTimeout(function(){
|
||||
_10=true;
|
||||
},5000);
|
||||
document.documentElement.style.cursor="progress";
|
||||
r.onreadystatechange=function(){
|
||||
if(r.readyState===4&&!_10){
|
||||
if(!r.status&&location.protocol==="file:"||(r.status>=200&&r.status<300)||r.status===304||navigator.userAgent.indexOf("Safari")>-1&&typeof r.status==="undefined"){
|
||||
_e(r.responseText);
|
||||
}else{
|
||||
_f();
|
||||
}
|
||||
document.documentElement.style.cursor="";
|
||||
r=null;
|
||||
}
|
||||
};
|
||||
r.send("");
|
||||
};
|
||||
var _11=function(_12){
|
||||
_12=_12.replace(_3.REDUNDANT_COMPONENTS,"");
|
||||
_12=_12.replace(_3.REDUNDANT_WHITESPACE,"$1");
|
||||
_12=_12.replace(_3.MORE_WHITESPACE," ");
|
||||
_12=_12.replace(_3.FINAL_SEMICOLONS,"}");
|
||||
return _12;
|
||||
};
|
||||
var _13={mediaQueryList:function(s){
|
||||
var o={};
|
||||
var idx=s.indexOf("{");
|
||||
var lt=s.substring(0,idx);
|
||||
s=s.substring(idx+1,s.length-1);
|
||||
var mqs=[],rs=[];
|
||||
var qts=lt.toLowerCase().substring(7).split(",");
|
||||
for(var i=0;i<qts.length;i++){
|
||||
mqs[mqs.length]=_13.mediaQuery(qts[i],o);
|
||||
}
|
||||
var rts=s.match(_3.BLOCKS_INSIDE);
|
||||
if(rts!==null){
|
||||
for(i=0;i<rts.length;i++){
|
||||
rs[rs.length]=_13.rule(rts[i],o);
|
||||
}
|
||||
}
|
||||
o.getMediaQueries=function(){
|
||||
return mqs;
|
||||
};
|
||||
o.getRules=function(){
|
||||
return rs;
|
||||
};
|
||||
o.getListText=function(){
|
||||
return lt;
|
||||
};
|
||||
o.getCssText=function(){
|
||||
return s;
|
||||
};
|
||||
return o;
|
||||
},mediaQuery:function(s,mql){
|
||||
s=s||"";
|
||||
var not=false,_14;
|
||||
var exp=[];
|
||||
var _15=true;
|
||||
var _16=s.match(_3.NOT_WHITESPACE);
|
||||
for(var i=0;i<_16.length;i++){
|
||||
var _17=_16[i];
|
||||
if(!_14&&(_17==="not"||_17==="only")){
|
||||
if(_17==="not"){
|
||||
not=true;
|
||||
}
|
||||
}else{
|
||||
if(!_14){
|
||||
_14=_17;
|
||||
}else{
|
||||
if(_17.charAt(0)==="("){
|
||||
var _18=_17.substring(1,_17.length-1).split(":");
|
||||
exp[exp.length]={mediaFeature:_18[0],value:_18[1]||null};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return {getList:function(){
|
||||
return mql||null;
|
||||
},getValid:function(){
|
||||
return _15;
|
||||
},getNot:function(){
|
||||
return not;
|
||||
},getMediaType:function(){
|
||||
return _14;
|
||||
},getExpressions:function(){
|
||||
return exp;
|
||||
}};
|
||||
},rule:function(s,mql){
|
||||
var o={};
|
||||
var idx=s.indexOf("{");
|
||||
var st=s.substring(0,idx);
|
||||
var ss=st.split(",");
|
||||
var ds=[];
|
||||
var dts=s.substring(idx+1,s.length-1).split(";");
|
||||
for(var i=0;i<dts.length;i++){
|
||||
ds[ds.length]=_13.declaration(dts[i],o);
|
||||
}
|
||||
o.getMediaQueryList=function(){
|
||||
return mql||null;
|
||||
};
|
||||
o.getSelectors=function(){
|
||||
return ss;
|
||||
};
|
||||
o.getSelectorText=function(){
|
||||
return st;
|
||||
};
|
||||
o.getDeclarations=function(){
|
||||
return ds;
|
||||
};
|
||||
o.getPropertyValue=function(n){
|
||||
for(var i=0;i<ds.length;i++){
|
||||
if(ds[i].getProperty()===n){
|
||||
return ds[i].getValue();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
};
|
||||
return o;
|
||||
},declaration:function(s,r){
|
||||
var idx=s.indexOf(":");
|
||||
var p=s.substring(0,idx);
|
||||
var v=s.substring(idx+1);
|
||||
return {getRule:function(){
|
||||
return r||null;
|
||||
},getProperty:function(){
|
||||
return p;
|
||||
},getValue:function(){
|
||||
return v;
|
||||
}};
|
||||
}};
|
||||
var _19=function(el){
|
||||
if(typeof el.cssHelperText!=="string"){
|
||||
return;
|
||||
}
|
||||
var o={mediaQueryLists:[],rules:[],selectors:{},declarations:[],properties:{}};
|
||||
var _1a=o.mediaQueryLists;
|
||||
var ors=o.rules;
|
||||
var _1b=el.cssHelperText.match(_3.BLOCKS);
|
||||
if(_1b!==null){
|
||||
for(var i=0;i<_1b.length;i++){
|
||||
if(_1b[i].substring(0,7)==="@media "){
|
||||
_1a[_1a.length]=_13.mediaQueryList(_1b[i]);
|
||||
ors=o.rules=ors.concat(_1a[_1a.length-1].getRules());
|
||||
}else{
|
||||
ors[ors.length]=_13.rule(_1b[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
var oss=o.selectors;
|
||||
var _1c=function(r){
|
||||
var ss=r.getSelectors();
|
||||
for(var i=0;i<ss.length;i++){
|
||||
var n=ss[i];
|
||||
if(!oss[n]){
|
||||
oss[n]=[];
|
||||
}
|
||||
oss[n][oss[n].length]=r;
|
||||
}
|
||||
};
|
||||
for(i=0;i<ors.length;i++){
|
||||
_1c(ors[i]);
|
||||
}
|
||||
var ods=o.declarations;
|
||||
for(i=0;i<ors.length;i++){
|
||||
ods=o.declarations=ods.concat(ors[i].getDeclarations());
|
||||
}
|
||||
var ops=o.properties;
|
||||
for(i=0;i<ods.length;i++){
|
||||
var n=ods[i].getProperty();
|
||||
if(!ops[n]){
|
||||
ops[n]=[];
|
||||
}
|
||||
ops[n][ops[n].length]=ods[i];
|
||||
}
|
||||
el.cssHelperParsed=o;
|
||||
_4[_4.length]=el;
|
||||
return o;
|
||||
};
|
||||
var _1d=function(el,s){
|
||||
el.cssHelperText=_11(s||el.innerHTML);
|
||||
return _19(el);
|
||||
};
|
||||
var _1e=function(){
|
||||
_5=true;
|
||||
_4=[];
|
||||
var _1f=[];
|
||||
var _20=function(){
|
||||
for(var i=0;i<_1f.length;i++){
|
||||
_19(_1f[i]);
|
||||
}
|
||||
var _21=document.getElementsByTagName("style");
|
||||
for(i=0;i<_21.length;i++){
|
||||
_1d(_21[i]);
|
||||
}
|
||||
_5=false;
|
||||
_8();
|
||||
};
|
||||
var _22=document.getElementsByTagName("link");
|
||||
for(var i=0;i<_22.length;i++){
|
||||
var _23=_22[i];
|
||||
if(_23.getAttribute("rel").indexOf("style")>-1&&_23.href&&_23.href.length!==0&&!_23.disabled){
|
||||
_1f[_1f.length]=_23;
|
||||
}
|
||||
}
|
||||
if(_1f.length>0){
|
||||
var c=0;
|
||||
var _24=function(){
|
||||
c++;
|
||||
if(c===_1f.length){
|
||||
_20();
|
||||
}
|
||||
};
|
||||
var _25=function(_26){
|
||||
var _27=_26.href;
|
||||
_c(_27,function(_28){
|
||||
_28=_11(_28).replace(_3.RELATIVE_URLS,"url("+_27.substring(0,_27.lastIndexOf("/"))+"/$1)");
|
||||
_26.cssHelperText=_28;
|
||||
_24();
|
||||
},_24);
|
||||
};
|
||||
for(i=0;i<_1f.length;i++){
|
||||
_25(_1f[i]);
|
||||
}
|
||||
}else{
|
||||
_20();
|
||||
}
|
||||
};
|
||||
var _29={mediaQueryLists:"array",rules:"array",selectors:"object",declarations:"array",properties:"object"};
|
||||
var _2a={mediaQueryLists:null,rules:null,selectors:null,declarations:null,properties:null};
|
||||
var _2b=function(_2c,v){
|
||||
if(_2a[_2c]!==null){
|
||||
if(_29[_2c]==="array"){
|
||||
return (_2a[_2c]=_2a[_2c].concat(v));
|
||||
}else{
|
||||
var c=_2a[_2c];
|
||||
for(var n in v){
|
||||
if(v.hasOwnProperty(n)){
|
||||
if(!c[n]){
|
||||
c[n]=v[n];
|
||||
}else{
|
||||
c[n]=c[n].concat(v[n]);
|
||||
}
|
||||
}
|
||||
}
|
||||
return c;
|
||||
}
|
||||
}
|
||||
};
|
||||
var _2d=function(_2e){
|
||||
_2a[_2e]=(_29[_2e]==="array")?[]:{};
|
||||
for(var i=0;i<_4.length;i++){
|
||||
_2b(_2e,_4[i].cssHelperParsed[_2e]);
|
||||
}
|
||||
return _2a[_2e];
|
||||
};
|
||||
domReady(function(){
|
||||
var els=document.body.getElementsByTagName("*");
|
||||
for(var i=0;i<els.length;i++){
|
||||
els[i].checkedByCssHelper=true;
|
||||
}
|
||||
if(document.implementation.hasFeature("MutationEvents","2.0")||window.MutationEvent){
|
||||
document.body.addEventListener("DOMNodeInserted",function(e){
|
||||
var el=e.target;
|
||||
if(el.nodeType===1){
|
||||
_a("DOMElementInserted",el);
|
||||
el.checkedByCssHelper=true;
|
||||
}
|
||||
},false);
|
||||
}else{
|
||||
setInterval(function(){
|
||||
var els=document.body.getElementsByTagName("*");
|
||||
for(var i=0;i<els.length;i++){
|
||||
if(!els[i].checkedByCssHelper){
|
||||
_a("DOMElementInserted",els[i]);
|
||||
els[i].checkedByCssHelper=true;
|
||||
}
|
||||
}
|
||||
},1000);
|
||||
}
|
||||
});
|
||||
var _2f=function(d){
|
||||
if(typeof window.innerWidth!="undefined"){
|
||||
return window["inner"+d];
|
||||
}else{
|
||||
if(typeof document.documentElement!="undefined"&&typeof document.documentElement.clientWidth!="undefined"&&document.documentElement.clientWidth!=0){
|
||||
return document.documentElement["client"+d];
|
||||
}
|
||||
}
|
||||
};
|
||||
return {addStyle:function(s,_30){
|
||||
var el=document.createElement("style");
|
||||
el.setAttribute("type","text/css");
|
||||
document.getElementsByTagName("head")[0].appendChild(el);
|
||||
if(el.styleSheet){
|
||||
el.styleSheet.cssText=s;
|
||||
}else{
|
||||
el.appendChild(document.createTextNode(s));
|
||||
}
|
||||
el.addedWithCssHelper=true;
|
||||
if(typeof _30==="undefined"||_30===true){
|
||||
cssHelper.parsed(function(_31){
|
||||
var o=_1d(el,s);
|
||||
for(var n in o){
|
||||
if(o.hasOwnProperty(n)){
|
||||
_2b(n,o[n]);
|
||||
}
|
||||
}
|
||||
_a("newStyleParsed",el);
|
||||
});
|
||||
}else{
|
||||
el.parsingDisallowed=true;
|
||||
}
|
||||
return el;
|
||||
},removeStyle:function(el){
|
||||
return el.parentNode.removeChild(el);
|
||||
},parsed:function(fn){
|
||||
if(_5){
|
||||
_7(fn);
|
||||
}else{
|
||||
if(typeof _4!=="undefined"){
|
||||
if(typeof fn==="function"){
|
||||
fn(_4);
|
||||
}
|
||||
}else{
|
||||
_7(fn);
|
||||
_1e();
|
||||
}
|
||||
}
|
||||
},mediaQueryLists:function(fn){
|
||||
cssHelper.parsed(function(_32){
|
||||
fn(_2a.mediaQueryLists||_2d("mediaQueryLists"));
|
||||
});
|
||||
},rules:function(fn){
|
||||
cssHelper.parsed(function(_33){
|
||||
fn(_2a.rules||_2d("rules"));
|
||||
});
|
||||
},selectors:function(fn){
|
||||
cssHelper.parsed(function(_34){
|
||||
fn(_2a.selectors||_2d("selectors"));
|
||||
});
|
||||
},declarations:function(fn){
|
||||
cssHelper.parsed(function(_35){
|
||||
fn(_2a.declarations||_2d("declarations"));
|
||||
});
|
||||
},properties:function(fn){
|
||||
cssHelper.parsed(function(_36){
|
||||
fn(_2a.properties||_2d("properties"));
|
||||
});
|
||||
},broadcast:_a,addListener:function(n,fn){
|
||||
if(typeof fn==="function"){
|
||||
if(!_9[n]){
|
||||
_9[n]={listeners:[]};
|
||||
}
|
||||
_9[n].listeners[_9[n].listeners.length]=fn;
|
||||
}
|
||||
},removeListener:function(n,fn){
|
||||
if(typeof fn==="function"&&_9[n]){
|
||||
var ls=_9[n].listeners;
|
||||
for(var i=0;i<ls.length;i++){
|
||||
if(ls[i]===fn){
|
||||
ls.splice(i,1);
|
||||
i-=1;
|
||||
}
|
||||
}
|
||||
}
|
||||
},getViewportWidth:function(){
|
||||
return _2f("Width");
|
||||
},getViewportHeight:function(){
|
||||
return _2f("Height");
|
||||
}};
|
||||
}();
|
||||
domReady(function enableCssMediaQueries(){
|
||||
var _37;
|
||||
var _38={LENGTH_UNIT:/[0-9]+(em|ex|px|in|cm|mm|pt|pc)$/,RESOLUTION_UNIT:/[0-9]+(dpi|dpcm)$/,ASPECT_RATIO:/^[0-9]+\/[0-9]+$/,ABSOLUTE_VALUE:/^[0-9]*(\.[0-9]+)*$/};
|
||||
var _39=[];
|
||||
var _3a=function(){
|
||||
var id="css3-mediaqueries-test";
|
||||
var el=document.createElement("div");
|
||||
el.id=id;
|
||||
var _3b=cssHelper.addStyle("@media all and (width) { #"+id+" { width: 1px !important; } }",false);
|
||||
document.body.appendChild(el);
|
||||
var ret=el.offsetWidth===1;
|
||||
_3b.parentNode.removeChild(_3b);
|
||||
el.parentNode.removeChild(el);
|
||||
_3a=function(){
|
||||
return ret;
|
||||
};
|
||||
return ret;
|
||||
};
|
||||
var _3c=function(){
|
||||
_37=document.createElement("div");
|
||||
_37.style.cssText="position:absolute;top:-9999em;left:-9999em;"+"margin:0;border:none;padding:0;width:1em;font-size:1em;";
|
||||
document.body.appendChild(_37);
|
||||
if(_37.offsetWidth!==16){
|
||||
_37.style.fontSize=16/_37.offsetWidth+"em";
|
||||
}
|
||||
_37.style.width="";
|
||||
};
|
||||
var _3d=function(_3e){
|
||||
_37.style.width=_3e;
|
||||
var _3f=_37.offsetWidth;
|
||||
_37.style.width="";
|
||||
return _3f;
|
||||
};
|
||||
var _40=function(_41,_42){
|
||||
var l=_41.length;
|
||||
var min=(_41.substring(0,4)==="min-");
|
||||
var max=(!min&&_41.substring(0,4)==="max-");
|
||||
if(_42!==null){
|
||||
var _43;
|
||||
var _44;
|
||||
if(_38.LENGTH_UNIT.exec(_42)){
|
||||
_43="length";
|
||||
_44=_3d(_42);
|
||||
}else{
|
||||
if(_38.RESOLUTION_UNIT.exec(_42)){
|
||||
_43="resolution";
|
||||
_44=parseInt(_42,10);
|
||||
var _45=_42.substring((_44+"").length);
|
||||
}else{
|
||||
if(_38.ASPECT_RATIO.exec(_42)){
|
||||
_43="aspect-ratio";
|
||||
_44=_42.split("/");
|
||||
}else{
|
||||
if(_38.ABSOLUTE_VALUE){
|
||||
_43="absolute";
|
||||
_44=_42;
|
||||
}else{
|
||||
_43="unknown";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
var _46,_47;
|
||||
if("device-width"===_41.substring(l-12,l)){
|
||||
_46=screen.width;
|
||||
if(_42!==null){
|
||||
if(_43==="length"){
|
||||
return ((min&&_46>=_44)||(max&&_46<_44)||(!min&&!max&&_46===_44));
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
return _46>0;
|
||||
}
|
||||
}else{
|
||||
if("device-height"===_41.substring(l-13,l)){
|
||||
_47=screen.height;
|
||||
if(_42!==null){
|
||||
if(_43==="length"){
|
||||
return ((min&&_47>=_44)||(max&&_47<_44)||(!min&&!max&&_47===_44));
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
return _47>0;
|
||||
}
|
||||
}else{
|
||||
if("width"===_41.substring(l-5,l)){
|
||||
_46=document.documentElement.clientWidth||document.body.clientWidth;
|
||||
if(_42!==null){
|
||||
if(_43==="length"){
|
||||
return ((min&&_46>=_44)||(max&&_46<_44)||(!min&&!max&&_46===_44));
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
return _46>0;
|
||||
}
|
||||
}else{
|
||||
if("height"===_41.substring(l-6,l)){
|
||||
_47=document.documentElement.clientHeight||document.body.clientHeight;
|
||||
if(_42!==null){
|
||||
if(_43==="length"){
|
||||
return ((min&&_47>=_44)||(max&&_47<_44)||(!min&&!max&&_47===_44));
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
return _47>0;
|
||||
}
|
||||
}else{
|
||||
if("device-aspect-ratio"===_41.substring(l-19,l)){
|
||||
return _43==="aspect-ratio"&&screen.width*_44[1]===screen.height*_44[0];
|
||||
}else{
|
||||
if("color-index"===_41.substring(l-11,l)){
|
||||
var _48=Math.pow(2,screen.colorDepth);
|
||||
if(_42!==null){
|
||||
if(_43==="absolute"){
|
||||
return ((min&&_48>=_44)||(max&&_48<_44)||(!min&&!max&&_48===_44));
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
return _48>0;
|
||||
}
|
||||
}else{
|
||||
if("color"===_41.substring(l-5,l)){
|
||||
var _49=screen.colorDepth;
|
||||
if(_42!==null){
|
||||
if(_43==="absolute"){
|
||||
return ((min&&_49>=_44)||(max&&_49<_44)||(!min&&!max&&_49===_44));
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
return _49>0;
|
||||
}
|
||||
}else{
|
||||
if("resolution"===_41.substring(l-10,l)){
|
||||
var res;
|
||||
if(_45==="dpcm"){
|
||||
res=_3d("1cm");
|
||||
}else{
|
||||
res=_3d("1in");
|
||||
}
|
||||
if(_42!==null){
|
||||
if(_43==="resolution"){
|
||||
return ((min&&res>=_44)||(max&&res<_44)||(!min&&!max&&res===_44));
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
return res>0;
|
||||
}
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
var _4a=function(mq){
|
||||
var _4b=mq.getValid();
|
||||
var _4c=mq.getExpressions();
|
||||
var l=_4c.length;
|
||||
if(l>0){
|
||||
for(var i=0;i<l&&_4b;i++){
|
||||
_4b=_40(_4c[i].mediaFeature,_4c[i].value);
|
||||
}
|
||||
var not=mq.getNot();
|
||||
return (_4b&&!not||not&&!_4b);
|
||||
}
|
||||
};
|
||||
var _4d=function(mql){
|
||||
var mqs=mql.getMediaQueries();
|
||||
var t={};
|
||||
for(var i=0;i<mqs.length;i++){
|
||||
if(_4a(mqs[i])){
|
||||
t[mqs[i].getMediaType()]=true;
|
||||
}
|
||||
}
|
||||
var s=[],c=0;
|
||||
for(var n in t){
|
||||
if(t.hasOwnProperty(n)){
|
||||
if(c>0){
|
||||
s[c++]=",";
|
||||
}
|
||||
s[c++]=n;
|
||||
}
|
||||
}
|
||||
if(s.length>0){
|
||||
_39[_39.length]=cssHelper.addStyle("@media "+s.join("")+"{"+mql.getCssText()+"}",false);
|
||||
}
|
||||
};
|
||||
var _4e=function(_4f){
|
||||
for(var i=0;i<_4f.length;i++){
|
||||
_4d(_4f[i]);
|
||||
}
|
||||
if(ua.ie){
|
||||
document.documentElement.style.display="block";
|
||||
setTimeout(function(){
|
||||
document.documentElement.style.display="";
|
||||
},0);
|
||||
setTimeout(function(){
|
||||
cssHelper.broadcast("cssMediaQueriesTested");
|
||||
},100);
|
||||
}else{
|
||||
cssHelper.broadcast("cssMediaQueriesTested");
|
||||
}
|
||||
};
|
||||
var _50=function(){
|
||||
for(var i=0;i<_39.length;i++){
|
||||
cssHelper.removeStyle(_39[i]);
|
||||
}
|
||||
_39=[];
|
||||
cssHelper.mediaQueryLists(_4e);
|
||||
};
|
||||
var _51=0;
|
||||
var _52=function(){
|
||||
var _53=cssHelper.getViewportWidth();
|
||||
var _54=cssHelper.getViewportHeight();
|
||||
if(ua.ie){
|
||||
var el=document.createElement("div");
|
||||
el.style.position="absolute";
|
||||
el.style.top="-9999em";
|
||||
el.style.overflow="scroll";
|
||||
document.body.appendChild(el);
|
||||
_51=el.offsetWidth-el.clientWidth;
|
||||
document.body.removeChild(el);
|
||||
}
|
||||
var _55;
|
||||
var _56=function(){
|
||||
var vpw=cssHelper.getViewportWidth();
|
||||
var vph=cssHelper.getViewportHeight();
|
||||
if(Math.abs(vpw-_53)>_51||Math.abs(vph-_54)>_51){
|
||||
_53=vpw;
|
||||
_54=vph;
|
||||
clearTimeout(_55);
|
||||
_55=setTimeout(function(){
|
||||
if(!_3a()){
|
||||
_50();
|
||||
}else{
|
||||
cssHelper.broadcast("cssMediaQueriesTested");
|
||||
}
|
||||
},500);
|
||||
}
|
||||
};
|
||||
window.onresize=function(){
|
||||
var x=window.onresize||function(){
|
||||
};
|
||||
return function(){
|
||||
x();
|
||||
_56();
|
||||
};
|
||||
}();
|
||||
};
|
||||
var _57=document.documentElement;
|
||||
_57.style.marginLeft="-32767px";
|
||||
setTimeout(function(){
|
||||
_57.style.marginTop="";
|
||||
},20000);
|
||||
return function(){
|
||||
if(!_3a()){
|
||||
cssHelper.addListener("newStyleParsed",function(el){
|
||||
_4e(el.cssHelperParsed.mediaQueryLists);
|
||||
});
|
||||
cssHelper.addListener("cssMediaQueriesTested",function(){
|
||||
if(ua.ie){
|
||||
_57.style.width="1px";
|
||||
}
|
||||
setTimeout(function(){
|
||||
_57.style.width="";
|
||||
_57.style.marginLeft="";
|
||||
},0);
|
||||
cssHelper.removeListener("cssMediaQueriesTested",arguments.callee);
|
||||
});
|
||||
_3c();
|
||||
_50();
|
||||
}else{
|
||||
_57.style.marginLeft="";
|
||||
}
|
||||
_52();
|
||||
};
|
||||
}());
|
||||
try{
|
||||
document.execCommand("BackgroundImageCache",false,true);
|
||||
}
|
||||
catch(e){
|
||||
}
|
||||
|
||||
|
8
js/html5shiv.js
vendored
Executable file
8
js/html5shiv.js
vendored
Executable file
@ -0,0 +1,8 @@
|
||||
/*
|
||||
HTML5 Shiv v3.6.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
|
||||
*/
|
||||
(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
|
||||
a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x<style>article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}</style>";
|
||||
c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="<xyz></xyz>";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode||
|
||||
"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video",version:"3.6.2",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment();
|
||||
for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d<h;d++)c.createElement(e[d]);return c}};l.html5=e;q(f)})(this,document);
|
15
lang/baz_april_fr.php
Executable file
15
lang/baz_april_fr.php
Executable file
@ -0,0 +1,15 @@
|
||||
<?php
|
||||
// Ceci est un fichier langue de SPIP -- This is a SPIP language file
|
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) return;
|
||||
|
||||
$GLOBALS[$GLOBALS['idx_lang']] = array(
|
||||
|
||||
'actualites' => 'Actualités',
|
||||
'archives' => 'Archives',
|
||||
'articles_recents_du_site' => 'Articles publiés récemment sur ce site',
|
||||
'articles_lies' => 'Articles liés',
|
||||
'aucun_article_dans_cette_periode' => 'Aucun article durant cette période',
|
||||
'tags' => 'Tags',
|
||||
'tri_periodique' => 'Tri périodique'
|
||||
);
|
12
lang/paquet-baz_april_fr.php
Executable file
12
lang/paquet-baz_april_fr.php
Executable file
@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
// Ceci est un fichier langue de SPIP -- This is a SPIP language file
|
||||
//
|
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) return;
|
||||
|
||||
$GLOBALS[$GLOBALS['idx_lang']] = array(
|
||||
|
||||
'baz_april_description' => 'squelettes HTML5 avec scss et Tiny Typo',
|
||||
// 'baz_april_slogan' => 'squelettes APRIL',
|
||||
);
|
13
liste/articles-auteur.html
Executable file
13
liste/articles-auteur.html
Executable file
@ -0,0 +1,13 @@
|
||||
[(#REM) Articles de l'auteur ]
|
||||
<B_articles>
|
||||
<div class="liste articles">
|
||||
#ANCRE_PAGINATION
|
||||
<h2 class="h2"><:articles_auteur:> (#GRAND_TOTAL)</h2>
|
||||
<ul class="liste-items">
|
||||
<BOUCLE_articles(ARTICLES) {id_auteur} {!par popularite} {pagination 10}>
|
||||
<li class="item clearfix"><a href="#URL_ARTICLE">#TITRE</a></li>
|
||||
</BOUCLE_articles>
|
||||
</ul>
|
||||
[<div class="pagination">(#PAGINATION)</div>]
|
||||
</div>
|
||||
</B_articles>
|
13
liste/articles-recherche.html
Executable file
13
liste/articles-recherche.html
Executable file
@ -0,0 +1,13 @@
|
||||
[(#REM) Articles trouves ]
|
||||
<B_articles>
|
||||
<div class="liste resultats articles">
|
||||
#ANCRE_PAGINATION
|
||||
<h2 class="h2"><:articles:> (#GRAND_TOTAL)</h2>
|
||||
<ul class="liste-items">
|
||||
<BOUCLE_articles(ARTICLES) {recherche} {par points}{inverse} {pagination 20}>
|
||||
<li class="item clearfix"><INCLURE{fond=inclure/resume/article,id_article,recherche=#ENV{recherche},composition,env} /></li>
|
||||
</BOUCLE_articles>
|
||||
</ul>
|
||||
[<div class="pagination">(#PAGINATION)</div>]
|
||||
</div>
|
||||
</B_articles>
|
10
liste/articles-resume.html
Executable file
10
liste/articles-resume.html
Executable file
@ -0,0 +1,10 @@
|
||||
<B_articles>
|
||||
#ANCRE_PAGINATION
|
||||
<h2 class="h2">[(#ENV{titre,<:derniers_articles:>})]</h2>
|
||||
<ul class="liste-items">
|
||||
<BOUCLE_articles(ARTICLES){id_rubrique!=-1}{id_rubrique?}{id_secteur?}{id_mot?}{lang}{!par date}{pagination #ENV{nb,10}}>
|
||||
<li class="item clearfix">#INCLURE{fond=inclure/resume/article,id_article,env}</li>
|
||||
</BOUCLE_articles>
|
||||
</ul>
|
||||
[<div class="pagination">(#PAGINATION)</div>]
|
||||
</B_articles>
|
13
liste/rubriques-recherche.html
Executable file
13
liste/rubriques-recherche.html
Executable file
@ -0,0 +1,13 @@
|
||||
[(#REM) Rubriques trouvees ]
|
||||
<B_rubriques>
|
||||
<div class="liste resultats rubriques">
|
||||
#ANCRE_PAGINATION
|
||||
<h2 class="h2"><:rubriques:> (#GRAND_TOTAL)</h2>
|
||||
<ul class="liste-items">
|
||||
<BOUCLE_rubriques(RUBRIQUES) {recherche} {par points}{inverse} {pagination 5}>
|
||||
<li class="item clearfix"><INCLURE{fond=inclure/resume/rubrique,id_rubrique,recherche=#ENV{recherche},composition,env} /></li>
|
||||
</BOUCLE_rubriques>
|
||||
</ul>
|
||||
[<div class="pagination">(#PAGINATION)</div>]
|
||||
</div>
|
||||
</B_rubriques>
|
18
liste/syndicarticles.html
Executable file
18
liste/syndicarticles.html
Executable file
@ -0,0 +1,18 @@
|
||||
[(#REM) Articles issus de la syndication ]
|
||||
<B_articles>
|
||||
<div class="liste resume articles syndic">
|
||||
#ANCRE_PAGINATION
|
||||
<h2 class="h2"><:baz_april:articles_recents_du_site:></h2>
|
||||
<ul class="liste-items">
|
||||
<BOUCLE_articles(SYNDIC_ARTICLES) {id_syndic} {age<180} {par date}{inverse} {pagination 10}>
|
||||
<li class="item clearfix">
|
||||
<h3 class="h3"><a href="#URL_ARTICLE" class="spip_out">#TITRE</a></h3>
|
||||
[<div class="enclosures">(#TAGS|afficher_enclosures)</div>]
|
||||
<div class="small">[<abbr class="published" title="[(#DATE|date_iso)]">(#DATE|affdate_jourcourt)</abbr>][, <:par_auteur:> (#LESAUTEURS)][<span class="sep"> — </span><em>(#TAGS|afficher_tags)</em>]</div>
|
||||
[<div class="introduction">(#DESCRIPTIF|image_reduire{300})</div>]
|
||||
</li>
|
||||
</BOUCLE_articles>
|
||||
</ul>
|
||||
[<div class="pagination">(#PAGINATION)</div>]
|
||||
</div>
|
||||
</B_articles>
|
8
modeles/icone.html
Executable file
8
modeles/icone.html
Executable file
@ -0,0 +1,8 @@
|
||||
[(#REM)
|
||||
modele <icone>
|
||||
parametres :
|
||||
|icone=fa-rocket (ou tout autre icone de FontAwesome v5 http://fontawesome.io/icons/)
|
||||
|taille=3em (ou 60px ou 150%)
|
||||
|couleur=#b5b5b5 (ou red)
|
||||
|
||||
]<span class="icon iconemodele solid #ENV{icone}[ (#ENV{class})]" style="[font-size:(#ENV{taille});][color:(#ENV{couleur});]"></span>
|
16
modeles/iconebloc.html
Executable file
16
modeles/iconebloc.html
Executable file
@ -0,0 +1,16 @@
|
||||
[(#REM)
|
||||
modele <iconebloc>
|
||||
parametres :
|
||||
|icone=fa-rocket (ou tout autre icone de FontAwesome http://fontawesome.io/icons/)
|
||||
|iconetaille=60px (taille de l'icone)
|
||||
|bloctitre=le titre
|
||||
|bloctexte=le texte
|
||||
|bloclargeur=150px (largeur du bloc)
|
||||
|
||||
]<div class="iconemodele bloc[(#ENV{bloctitre}|?{' '}|ou{#ENV{bloctexte}|?{' '}}|oui) largeur][ (#ENV{align})][ (#ENV{class})]"[ style="width:(#ENV{bloclargeur});"]>
|
||||
[<span class="icon (#ENV{icone})"[ style="font-size:(#ENV{iconetaille});"]></span>]
|
||||
[(#ENV{bloctitre}|?{' '}|ou{#ENV{bloctexte}|?{' '}}|oui)<div class="content">]
|
||||
[<h3>(#ENV*{bloctitre}|propre|PtoBR)</h3>]
|
||||
[<p>(#ENV*{bloctexte}|propre|ptobr)</p>]
|
||||
[(#ENV{bloctitre}|?{' '}|ou{#ENV{bloctexte}|?{' '}}|oui)</div>]
|
||||
</div>
|
51
modeles/imagesenligne.html
Executable file
51
modeles/imagesenligne.html
Executable file
@ -0,0 +1,51 @@
|
||||
[(#REM)
|
||||
modele <imagesenligne|>
|
||||
max 3 images en ligne
|
||||
|img1=1
|
||||
|img1titre=le titre
|
||||
|img1desc=description
|
||||
|img1lien=un lien html
|
||||
|agrandir=oui vaut pour toutes les images et les met en diapo (utilise photoswipe si actif)
|
||||
|
||||
][(#SET{id_diapo,[(#ENV{id_diapo,#VAL{id_}|uniqid})]})]
|
||||
<div class="imagesenligne flex[ (#ENV{class})]">
|
||||
<BOUCLE_img1(DOCUMENTS){extension==jpg|png|gif}{id_document=#ENV{img1}}>
|
||||
<span[ style="max-width:(#ENV{img1largeur})px"]>[<a href="(#ENV{img1lien})"[(#ENV{img1lien}|substr{0,#URL_SITE_SPIP|strlen}|=={#URL_SITE_SPIP|substr{0,#URL_SITE_SPIP|strlen}}|non) class="spip_out"]>][(#ENV{agrandir}|=={oui}|oui)[<a href="(#URL_DOCUMENT)" class="mediabox"
|
||||
type="#MIME_TYPE" rel="diapo#GET{id_diapo}"
|
||||
title="[(#TITRE|attribut_html|couper{80})][ ©(#CREDITS)]">]][(#FICHIER
|
||||
|image_reduire{0,#ENV{hauteur,300}}
|
||||
|inserer_attribut{class,spip_logos}
|
||||
|inserer_attribut{data-photo,#URL_DOCUMENT}
|
||||
|inserer_attribut{data-photo-h,#HAUTEUR}
|
||||
|inserer_attribut{data-photo-w,#LARGEUR}
|
||||
|inserer_attribut{alt,[(#TITRE|attribut_html|couper{80})]})][(#ENV{agrandir}|=={oui}|oui)</a>]
|
||||
[<i class="spip_doc_caption"><br /><i class="spip_doc_titre">(#ENV{img1titre})</i>[<br /><i class="spip_doc_description">(#ENV{img1desc})</i>]</i>][(#ENV{img1lien}|oui)</a>]
|
||||
</span>
|
||||
</BOUCLE_img1>
|
||||
<BOUCLE_img2(DOCUMENTS){extension==jpg|png|gif}{id_document=#ENV{img2}}>
|
||||
<span[ style="max-width:(#ENV{img2largeur})px"]>[<a href="(#ENV{img2lien})"[(#ENV{img2lien}|substr{0,#URL_SITE_SPIP|strlen}|=={#URL_SITE_SPIP|substr{0,#URL_SITE_SPIP|strlen}}|non) class="spip_out"]>][(#ENV{agrandir}|=={oui}|oui)[<a href="(#URL_DOCUMENT)" class="mediabox"
|
||||
type="#MIME_TYPE" rel="diapo#GET{id_diapo}"
|
||||
title="[(#TITRE|attribut_html|couper{80})][ ©(#CREDITS)]">]][(#FICHIER
|
||||
|image_reduire{0,#ENV{hauteur,300}}
|
||||
|inserer_attribut{class,spip_logos}
|
||||
|inserer_attribut{data-photo,#URL_DOCUMENT}
|
||||
|inserer_attribut{data-photo-h,#HAUTEUR}
|
||||
|inserer_attribut{data-photo-w,#LARGEUR}
|
||||
|inserer_attribut{alt,[(#TITRE|attribut_html|couper{80})]})][(#ENV{agrandir}|=={oui}|oui)</a>]
|
||||
[<i class="spip_doc_caption"><br /><i class="spip_doc_titre">(#ENV{img2titre})</i>[<br /><i class="spip_doc_description">(#ENV{img2desc})</i>]</i>][(#ENV{img2lien}|oui)</a>]
|
||||
</span>
|
||||
</BOUCLE_img2>
|
||||
<BOUCLE_img3(DOCUMENTS){extension==jpg|png|gif}{id_document=#ENV{img3}}>
|
||||
<span[ style="max-width:(#ENV{img3largeur})px"]>[<a href="(#ENV{img3lien})"[(#ENV{img3lien}|substr{0,#URL_SITE_SPIP|strlen}|=={#URL_SITE_SPIP|substr{0,#URL_SITE_SPIP|strlen}}|non) class="spip_out"]>][(#ENV{agrandir}|=={oui}|oui)[<a href="(#URL_DOCUMENT)" class="mediabox"
|
||||
type="#MIME_TYPE" rel="diapo#GET{id_diapo}"
|
||||
title="[(#TITRE|attribut_html|couper{80})][ ©(#CREDITS)]">]][(#FICHIER
|
||||
|image_reduire{0,#ENV{hauteur,300}}
|
||||
|inserer_attribut{class,spip_logos}
|
||||
|inserer_attribut{data-photo,#URL_DOCUMENT}
|
||||
|inserer_attribut{data-photo-h,#HAUTEUR}
|
||||
|inserer_attribut{data-photo-w,#LARGEUR}
|
||||
|inserer_attribut{alt,[(#TITRE|attribut_html|couper{80})]})][(#ENV{agrandir}|=={oui}|oui)</a>]
|
||||
[<i class="spip_doc_caption"><br /><i class="spip_doc_titre">(#ENV{img3titre})</i>[<br /><i class="spip_doc_description">(#ENV{img3desc})</i>]</i>][(#ENV{img3lien}|oui)</a>]
|
||||
</span>
|
||||
</BOUCLE_img3>
|
||||
</div>
|
9
modeles/rubrique_articles.html
Executable file
9
modeles/rubrique_articles.html
Executable file
@ -0,0 +1,9 @@
|
||||
<BOUCLE_rub(RUBRIQUES){id_rubrique}>
|
||||
|
||||
<BOUCLE_articles(ARTICLES){id_rubrique}{0,1}>
|
||||
<div class="liste articles">
|
||||
<INCLURE{fond=liste/articles-resume,env,ajax,titre=<:articles_rubrique:>} />
|
||||
</div>
|
||||
</BOUCLE_articles>
|
||||
|
||||
</BOUCLE_rub>
|
3
modeles/rubrique_rubriques.html
Executable file
3
modeles/rubrique_rubriques.html
Executable file
@ -0,0 +1,3 @@
|
||||
<BOUCLE_rub(RUBRIQUES){id_rubrique}>
|
||||
<INCLURE{fond=inclure/liste-rubriques,id_rubrique,titre=#ENV{titre,''},parpage=100,par=#ENV{par},sens=#ENV{sens},largeur_logo=#ENV{largeur_logo},coupe=#ENV{coupe}} />
|
||||
</BOUCLE_rub>
|
3
mot.html
Executable file
3
mot.html
Executable file
@ -0,0 +1,3 @@
|
||||
<BOUCLE_principale(MOTS) {id_mot} >
|
||||
<INCLURE{fond=structure,env,type-page=mot,composition=#COMPOSITION} />
|
||||
</BOUCLE_principale>
|
40
paquet.xml
Normal file
40
paquet.xml
Normal file
@ -0,0 +1,40 @@
|
||||
<paquet
|
||||
prefix="baz_april"
|
||||
categorie="squelette"
|
||||
version="0.1.0"
|
||||
schema="0.0.1"
|
||||
etat="dev"
|
||||
compatibilite="[3.2.7;3.3.*]"
|
||||
logo="img/baz-32.png"
|
||||
>
|
||||
<nom>base APRIL</nom>
|
||||
<!-- Base de développement sur Z-core + SCSSPHP (SASS) + Tiny Typo + FontAwesome v5 -->
|
||||
|
||||
<auteur>collectif APRIL</auteur>
|
||||
<credit>nicod_ (quelques astuces scss dans galactic)</credit>
|
||||
<credit lien="https://sasscss.org/#license-faqs">Sass CSS</credit>
|
||||
<credit lien="https://fontawesome.io/license/">Font Awesome</credit>
|
||||
|
||||
<licence lien="https://www.gnu.org/licenses/gpl-3.0.html">GPL 3 pour le squelette SPIP</licence>
|
||||
<licence lien="http://scripts.sil.org">SIL pour les typographies</licence>
|
||||
|
||||
<necessite nom="Zcore" compatibilite="[2.6.7;[" />
|
||||
<necessite nom="scssphp" compatibilite="[1.4.7;[" />
|
||||
<necessite nom="noizetier" compatibilite="[3.0.109;[" />
|
||||
<necessite nom="pages" compatibilite="[1.3.7;[" />
|
||||
<necessite nom="crayons" compatibilite="[1.26.3;[" />
|
||||
<necessite nom="porte_plume_intertitres" compatibilite="[1.1.3;[" />
|
||||
<necessite nom="compositions" compatibilite="[3.3.0;[" />
|
||||
<necessite nom="mailcrypt" compatibilite="[2.2.0;[" />
|
||||
<necessite nom="bellespuces" compatibilite="[0.1.1;[" />
|
||||
<necessite nom="facteur" compatibilite="[3.4.7;[" />
|
||||
<necessite nom="ppp" compatibilite="[1.0.7;[" />
|
||||
<necessite nom="roles_documents" compatibilite="[0.2.2;[" />
|
||||
<necessite nom="feuillederoute" compatibilite="[1.2.0;[" />
|
||||
<necessite nom="tri_par_rubrique" compatibilite="[1.4.2;[" />
|
||||
<necessite nom="basicone" compatibilite="[0.1.3;[" />
|
||||
|
||||
<utilise nom="compositions" compatibilite="[3.5.9;[" />
|
||||
<utilise nom="photoswipe" compatibilite="[0.3.4;[" />
|
||||
|
||||
</paquet>
|
6
prive/squelettes/contenu/configurer_baz_april.html
Executable file
6
prive/squelettes/contenu/configurer_baz_april.html
Executable file
@ -0,0 +1,6 @@
|
||||
[(#AUTORISER{configurer, baz_april}|sinon_interdire_acces)]
|
||||
<h1 class="grostitre"><:baz_april:cfg_baz_april:></h1>
|
||||
|
||||
[<div class="ajax">
|
||||
(#FORMULAIRE_CONFIGURER_BAZ_APRIL)
|
||||
</div>]
|
27
readme.md
Normal file
27
readme.md
Normal file
@ -0,0 +1,27 @@
|
||||
|
||||
|
||||
|
||||
git clone https://git.spip.net/spip-contrib-extensions/z-core.git
|
||||
git clone https://git.spip.net/spip-contrib-extensions/facteur.git
|
||||
git clone https://git.spip.net/spip-contrib-extensions/saisies.git
|
||||
git clone https://git.spip.net/spip-contrib-extensions/nospam.git
|
||||
git clone https://git.spip.net/spip-contrib-extensions/scssphp.git
|
||||
git clone https://git.spip.net/spip-contrib-extensions/noizetier.git
|
||||
git clone https://git.spip.net/spip-contrib-extensions/n-core.git
|
||||
git clone https://git.spip.net/spip-contrib-extensions/cache.git
|
||||
git clone https://git.spip.net/spip-contrib-extensions/crayons.git
|
||||
git clone https://git.spip.net/spip-contrib-extensions/porte_plume_partout.git
|
||||
git clone https://git.spip.net/spip-contrib-extensions/basicone.git
|
||||
git clone https://git.spip.net/spip-contrib-extensions/mailcrypt.git
|
||||
git clone https://git.spip.net/spip-contrib-extensions/feuillederoute.git
|
||||
git clone https://git.spip.net/spip-contrib-extensions/compositions.git
|
||||
git clone https://git.spip.net/spip-contrib-extensions/pages.git
|
||||
git clone https://git.spip.net/spip-contrib-extensions/bellespuces.git
|
||||
|
||||
git clone https://github.com/mistergraphx/porte_plume_intertitres.git
|
||||
git clone https://github.com/nd-/tri_par_rubrique.git
|
||||
|
||||
|
||||
|
||||
|
||||
git clone https://git.spip.net/spip-contrib-extensions/role_documents.git
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user