Compare commits

...

19 Commits

Author SHA1 Message Date
chankalan e34bddb933 v2.5.14 2024-03-28 18:01:03 +01:00
chankalan d3ed887275 corrections pour la page mot et liste articles 2024-03-28 17:57:43 +01:00
chankalan 7bb921474a sans adaptive images qui peine sur les installations de type
mutualisation
2023-05-15 16:14:39 +02:00
chankalan 7b17c554b5 pas de pagination dans l'url mais dans l'inclure 2023-04-03 10:17:43 +02:00
chankalan 24979e29e8 ajax sur liste articles blog 2023-04-03 10:06:03 +02:00
chankalan 094b4e62b9 coquille : .liste_articles = .liste.articles 2023-04-03 09:17:10 +02:00
chankalan 444ba6a0ad on tente une dissuasion de plus face aux spams d'inscription à la liste 2023-03-30 13:34:39 +02:00
chankalan 1018d151ea compatible SPIP 4.2 2023-03-30 11:00:44 +02:00
chankalan 108dcf5fe1 liste article resumé avec pagination page sans precedent/suivant 2022-12-05 12:05:12 +01:00
chankalan 93d7e64559 pagination visible en petit écran + v2.5.13 2022-12-05 11:54:52 +01:00
chankalan 86f556bff9 par défaut pas de paramètre url de pagination de liste d'articles 2022-11-22 17:20:05 +01:00
chankalan 070df59457 readme nettoyé 2022-10-04 15:54:40 +02:00
chankalan 3ba5271a93 oups, les bonnes options en serveur_mod dev/preprod 2022-10-04 15:14:00 +02:00
chankalan 680505166a v2.5.11 2022-10-03 08:00:10 +02:00
chankalan e3f6a378b1 ajout du bloc head_js 2022-10-03 07:59:23 +02:00
chankalan 07e7167dbf chaine lang recherche 2022-05-26 11:52:20 +02:00
chankalan bda51673e0 correction formulaire abomailmans mini une liste 2022-02-16 23:49:20 +01:00
chankalan e314369ab9 fix pagination spip4 + formatage css 2022-01-19 15:37:40 +01:00
chankalan a4e023ef8a page 404 personnalisée si l'article page=quatrecentquatre existe 2022-01-19 15:36:42 +01:00
22 changed files with 288 additions and 350 deletions

View File

@ -18,6 +18,7 @@ $GLOBALS['z_blocs'] = array(
'aside',
'connex',
'footer',
'head_js',
);
define('_CONTENT_WIDTH', 990);

View File

@ -1,8 +1,8 @@
#CACHE{0}
<div class="formulaire_spip formulaire_#FORM" id="formulaire_#FORM[_(#ENV{id_abomailman})]">
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
[<div class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</div>]
[<div class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</div>]
[(#ENV*{editable}|oui)
<form method='post' action='#ENV{action}'>

View File

@ -1,94 +1,106 @@
<?php
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('base/abstract_sql');
// chargement des valeurs par defaut des champs du formulaire
function formulaires_abomailman_mini_une_liste_charger_dist($id_abomailman = ""){
//initialise les variables d'environnement pas defaut
$valeurs = array('email');
// On verifie que la liste est bien accessible
if (! sql_getfetsel('id_abomailman','spip_abomailmans','id_abomailman ='.intval($id_abomailman).' AND desactive = 0')) {
spip_log("Le numero de liste n'est pas valable : $id_abomailman","abomailmans");
$valeurs['message_erreur'] = _T("abomailmans:liste_non_existante");
}
return $valeurs;
}
function formulaires_abomailman_mini_une_liste_verifier_dist($id_abomailman = ""){
//initialise le tableau des erreurs
$erreurs = array();
// Faire une fonction de verif sur le mail pour validite
$email = _request('email');
if($email == ''){
$erreurs['erreur_email'] = _T("abomailmans:email_oublie");
spip_log("Aucun email n'est insere","abomailmans");
}
else{
include_spip('inc/filtres'); # pour email_valide()
if (!email_valide($email)){
$erreurs['erreur_email'] = _T("abomailmans:email_valide");
spip_log("Email non valide $email","abomailmans");
}
else{
spip_log("Email = $email;","abomailmans");
}
}
//message d'erreur
if (count($erreurs)) {
$erreurs['message_erreur'] .= _T('abomailmans:verifier_formulaire');
}
return $erreurs; // si c'est vide, traiter sera appele, sinon le formulaire sera resoumis
}
function formulaires_abomailman_mini_une_liste_traiter_dist($id_abomailman = ""){
include_spip('inc/abomailmans');
$nom = _request('nom');
$email = _request('email');
// Antispam basique :
// si l'input invisible a ete renseigne, ca ne peut etre qu'un bot
if (strlen(_request('nobot'))){
return array('message_erreur'=>_T('abomailmans:erreur_nobot'));
}
$message = null;
// on initialise l'envoi
// on traite chaque liste via une fonction reutilisable ailleurs
// on passe abonnement a true d'office
$traiter=abomailman_traiter_abonnement($id_abomailman,true);
$titre = $traiter[0];
$proprio_email=$traiter[1];
$liste_email=$traiter[2];
$sujet=$traiter[3];
$body="$nom - $email ".$traiter[4];
$headers=$traiter[5];
if (abomailman_mail($nom, $email, $proprio_email,$liste_email, $sujet, $body,$headers)){
$message_listes .= "<p><strong>$titre</strong><p>";
}else{
$message_listes .= "<p><strong>". _T('pass_erreur_probleme_technique')."</strong></p>";
$probleme=true;
}
$message .= $body."". _T("abomailmans:message_confirmation_unique_a");
$message .= $message_listes;
$message .= "<p>" . _T("abomailmans:message_confirm_suite") . "</p>";
if ($probleme==false)
return $message;
else
return $message_listes;
}
?>
<?php
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('base/abstract_sql');
// chargement des valeurs par defaut des champs du formulaire
function formulaires_abomailman_mini_une_liste_charger_dist($id_abomailman = ""){
//initialise les variables d'environnement pas defaut
$valeurs = array('email');
// On verifie que la liste est bien accessible
if (! sql_getfetsel('id_abomailman','spip_abomailmans','id_abomailman ='.intval($id_abomailman).' AND desactive = 0')) {
spip_log("Le numero de liste n'est pas valable : $id_abomailman","abomailmans");
$valeurs['message_erreur'] = _T("abomailmans:liste_non_existante");
}
return $valeurs;
}
function formulaires_abomailman_mini_une_liste_verifier_dist($id_abomailman = ""){
//initialise le tableau des erreurs
$erreurs = array();
// Faire une fonction de verif sur le mail pour validite
$email = _request('email');
if($email == ''){
$erreurs['erreur_email'] = _T("abomailmans:email_oublie");
spip_log("Aucun email n'est insere","abomailmans");
}
else{
include_spip('inc/filtres'); # pour email_valide()
if (!email_valide($email)){
$erreurs['erreur_email'] = _T("abomailmans:email_valide");
spip_log("Email non valide $email","abomailmans");
}
else{
spip_log("Email = $email;","abomailmans");
}
}
//message d'erreur
if (count($erreurs)) {
$erreurs['message_erreur'] .= _T('abomailmans:verifier_formulaire');
}
return $erreurs; // si c'est vide, traiter sera appele, sinon le formulaire sera resoumis
}
function formulaires_abomailman_mini_une_liste_traiter_dist($id_abomailman = ""){
include_spip('inc/abomailmans');
function baz_april_abo() {
$nom = _request('nom');
$email = _request('email');
// Antispam basique :
// si l'input invisible a ete renseigne, ca ne peut etre qu'un bot
if (strlen(_request('nobot'))){
return array('message_erreur'=>_T('abomailmans:erreur_nobot'));
}
$message = null;
// on initialise l'envoi
// on traite chaque liste via une fonction reutilisable ailleurs
// on passe abonnement a true d'office
$traiter = abomailman_traiter_abonnement($id_abomailman,true);
$titre = $traiter[0];
$proprio_email = $traiter[1];
$liste_email = $traiter[2];
$sujet = $traiter[3];
$body = "$nom - $email ".$traiter[4];
$headers = $traiter[5];
if (abomailman_mail($nom, $email, $proprio_email, $liste_email, $sujet, $body, $headers)){
$message_listes .= "<p><strong>$titre</strong><p>";
} else {
$message_listes .= "<p><strong>". _T('pass_erreur_probleme_technique')."</strong></p>";
$probleme=true;
}
$message .= "<p>" . _T("abomailmans:message_confirm_suite") . "</p>";
if ($probleme==false) {
return array('message_ok' => $message);
} else {
return array('message_erreur' => $message_listes);
}
}
// conditionner l'action au rechargement de la page
// https://contrib.spip.net/NoSPAM#S-assurer-que-l-internaute-recharge-la-page-avant-de-lancer-l-action
include_spip('inc/nospam');
if (function_exists('nospam_confirm_action_html')) {
$html_confirm = nospam_confirm_action_html("baz_april_abo", "action abomailmans", $args);
$res['message_ok'] .= $html_confirm;
}
else {
// ICI lancer normalement mafonction()
baz_april_abo();
}
}

View File

@ -11,20 +11,20 @@ $GLOBALS[ $GLOBALS['idx_lang'] ] = array(
'source' => 'Source',
'media_d_origine' => 'Média dorigine',
'lire' => 'Lire',
// C
'baz_april_titre' => 'baz april',
// T
'titre_page_configurer_baz_april' => 'Configuration',
'cfg_baz_april' => 'Configuration du jeu de squelettes<br />
'cfg_baz_april' => 'Configuration du jeu de squelettes<br />
APRIL - base',
'site_april' => 'Sites April ...',
'des_initiatives_april' => 'Des initiatives de lApril',
'actualites' => 'Actualités',
'archives' => 'Archives',
'articles_recents_du_site' => 'Articles publiés récemment sur ce site',
@ -32,22 +32,22 @@ $GLOBALS[ $GLOBALS['idx_lang'] ] = array(
'aucun_article_dans_cette_periode' => 'Aucun article durant cette période',
'tags' => 'Tags',
'tri_periodique' => 'Tri périodique',
'references' => 'Références',
'signaler_une_erreur' => 'Signaler une erreur, poser une question',
'memes_themes' => 'Transcriptions sur les mêmes thèmes :',
'memes_personnes' => 'Transcriptions avec les mêmes personnes :',
'ne_manquez_pas_les_infos' => 'Ne manquez pas les actus !',
'rechercher' => 'Rechercher dans le site',
's_inscrire_a_la_lettre_d_information' => 'Votre adresse courriel',
'commenter' => 'Commenter',
'configurer_explication' => '
<br />
<h3>Notes dutilisation et paramétrage de baz_april</h3>
@ -78,7 +78,7 @@ Pour les logos et cest valable pour tous les documents partout dans le site :
Le logo de "Libre à vous" est le document n°659 : dans lencart du logo en haut de la colonne gauche, faire ajouter un document "depuis la médiathèque" et taper "659" et valider.
{{Recadrage}} : il est possible de choisir le centre dintérêt dune image qui doit être recadrée : il y a une petite croix sur les vignettes dans lespace privé, il faut juste déplacé cette petite croix et le recadrage se fera autour de cet emplacement.
Donc limage peut bien être verticale ou horizontale, le recadrage carré sera centré sur lemplacement de la petite croix.
Donc limage peut bien être verticale ou horizontale, le recadrage carré sera centré sur lemplacement de la petite croix.
<hr />
@ -98,5 +98,7 @@ Par défaut, les résumés darticles sont composés des 180 premiers caractè
<h4>Page 404</h4>
Elle est gérée par une page unique.
',
'votre_recherche' => 'Votre recherche',
);

View File

@ -47,7 +47,7 @@ switch (_SERVEUR_MODE) {
ini_set('display_errors', 1);
define('_DEBUG_AUTORISER', true);
define('_LOG_FILTRE_GRAVITE', 8);
define('_TEST_EMAIL_DEST', 'nd@dataetic.fr');
define('_TEST_EMAIL_DEST', 'courriel@domain.tld');
define('_SCSS_SOURCE_MAP', true);
break;
case 'PROD':

View File

@ -1,10 +1,10 @@
<paquet
prefix="baz_april"
categorie="squelette"
version="2.5.9"
version="2.5.14"
schema="1.0.1"
etat="stable"
compatibilite="[3.2.0;4.0.*]"
compatibilite="[3.2.0;4.2.*]"
logo="prive/themes/spip/images/baz_april-64.png"
documentation=""
>
@ -13,19 +13,19 @@
<!-- base mutualisée des sites SPIP -->
<auteur>chankalan</auteur>
<auteur>Nicolas Dorigny (zboot)</auteur>
<licence>GNU/GPL</licence>
<credit lien="https://sasscss.org/#license-faqs">Sass CSS</credit>
<credit lien="https://fontawesome.io/license/">Font Awesome</credit>
<necessite nom="bigup"/>
<necessite nom="crayons"/>
<!-- <necessite nom="rang"/> -->
<necessite nom="tri_par_rubrique"/>
<necessite nom="scssphp"/>
<necessite nom="zcore"/>
<necessite nom="adaptive_images" />
<!-- <necessite nom="adaptive_images" /> -->
<necessite nom="centre_image"/>
<necessite nom="pages" />
<necessite nom="porte_plume_intertitres" />
@ -53,7 +53,7 @@
<chemin path="squelettes"/>
<chemin path="squelettes/scss"/>
<chemin path=""/>
<menu nom="configurer_baz_april" titre="baz_april:options" parent="menu_squelette" icone="images/baz_april-16.png" />
</paquet>

View File

@ -1,60 +1,2 @@
Base de squelettes pour les sites de l'APRIL
Nécessite :
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/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://github.com/mistergraphx/porte_plume_intertitres.git
git clone https://git.spip.net/spip-contrib-extensions/tri_par_rubrique.git
git clone https://git.spip.net/spip-contrib-extensions/roles_documents.git
git clone https://git.spip.net/spip-contrib-extensions/menus.git
git clone https://git.spip.net/spip-contrib-extensions/sociaux.git
git clone https://git.spip.net/spip-contrib-extensions/centre_image.git
git clone https://git.spip.net/spip-contrib-extensions/yaml.git
git clone https://git.spip.net/spip-contrib-extensions/court-circuit.git
git clone https://git.spip.net/spip/bigup.git
git clone https://git.spip.net/spip-contrib-extensions/rang.git
git clone https://git.spip.net/spip-contrib-extensions/champs_extras_core.git
git clone https://git.spip.net/spip-contrib-extensions/sommaire.git
git clone https://git.spip.net/spip-contrib-extensions/abomailmans.git
git clone https://git.spip.net/spip-contrib-extensions/formidable.git
git clone https://git.spip.net/spip-contrib-extensions/fulltext.git
à partir de zboot : https://git.spip.net/spip-contrib-squelettes/zboot

3
squelettes/404.html Normal file
View File

@ -0,0 +1,3 @@
<BOUCLE_principale_article(ARTICLES){page=quatrecentquatre}>
<INCLURE{fond=structure,env,id_article,id_rubrique,id_secteur,type-page=article,composition=#COMPOSITION} />
</BOUCLE_principale_article>

View File

@ -4,9 +4,9 @@
[<div class="ps">
<div class="#EDIT{ps} article__ps">(#PS|image_reduire{#CONST{_CONTENT_WIDTH},0})</div>
</div>]
[(#REM) Articles dans la meme rubrique ]
<INCLURE{fond=inclure/liste/articles-resume,env,ajax,parpage=5} />
<INCLURE{fond=inclure/liste/articles-resume, env, ajax, parpage=5, debut_articlesdate=@#ID_ARTICLE, debut_articles=@#ID_ARTICLE} />
[(#PS|ou{#GET{plusdun}|=={oui}}|oui)</aside>]
</BOUCLE_article>

View File

@ -11,7 +11,18 @@
<aside>
[(#REM) Articles lies au mot-cle ]
<INCLURE{fond=inclure/liste/articles-resume,env,ajax,id_mot,titre=<:baz_april:articles_lies:>} />
<B_articles>
<div class="liste articles">#ANCRE_PAGINATION
<h2 class="h2"><:baz_april:articles_lies:></h2>
<ul class="liste-items">
<BOUCLE_articles(ARTICLES){id_mot}{lang}{!par date}{pagination 10}>
<li class="item"><INCLURE{fond=inclure/resume/article, id_article, env, h=h3, expose=#EXPOSE} /></li>
</BOUCLE_articles>
</ul>
[<nav class="pagination" role="pagination">(#PAGINATION{page})</nav>]
</div>
</B_articles>
[(#REM) Rubriques liees au mot-cle ]
<B_rubriques>

View File

@ -9,33 +9,11 @@
<div class="main">
[<div class="#EDIT{texte} chapo">(#TEXTE|adaptive_images{#CONST{_CONTENT_WIDTH}})</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}{tri_rubrique}>
<li class="item clearfix">#INCLURE{fond=inclure/resume/article,id_article,env,composition=blog,h=h3,pagination=oui}</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}{tri_rubrique}{pagination 10}>
<li class="item clearfix">#INCLURE{fond=inclure/resume/article,id_article,env,composition=blog,h=h3,pagination=oui}</li>
</BOUCLE_articles>
</ul>
[<div class="pagination">(#PAGINATION)</div>]
</B_articles>
</div>
<//B_articlesdate>
[(#REM) inclure en ajax la liste des articles]
<INCLURE{fond=inclure/liste/articles-blog, env, ajax} />
[(#REM) pour les sous-rubriques, on utilise le modele <rubriqueXX|rubriques> dans le texte si on veut]
</div><!-- .main -->
<aside>

View File

@ -0,0 +1,4 @@
[(#REM)
Ce bloc permet l'insertion de JS specifiques a une page
]

View File

@ -0,0 +1,26 @@
<BOUCLE_rubrique(RUBRIQUES){id_rubrique}>
#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}{tri_rubrique}>
<li class="item clearfix">#INCLURE{fond=inclure/resume/article,id_article,env,composition=blog,h=h3,pagination=oui}</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}{tri_rubrique}{pagination 10}>
<li class="item clearfix">#INCLURE{fond=inclure/resume/article,id_article,env,composition=blog,h=h3,pagination=oui}</li>
</BOUCLE_articles>
</ul>
[<nav class="pagination">(#PAGINATION)</nav>]
</B_articles>
</div>
<//B_articlesdate>
</BOUCLE_rubrique>

View File

@ -1,12 +1,12 @@
<B_articles>
<div class="liste_articles">#ANCRE_PAGINATION
<div class="liste articles">#ANCRE_PAGINATION
[(#ENV{titre}|!={non}|oui)[<h2 class="h2">(#ENV{titre})</h2>]]
<ul class="liste-items[ (#ENV{liste_class})]">
<BOUCLE_articles(ARTICLES){id_rubrique!=-1}{id_rubrique?}{id_secteur?}{id_mot?}{lang}{tri_rubrique}{! par date}{0,#ENV{nb,1001}}{pagination #ENV{parpage,10}}>
<li class="item"><INCLURE{fond=inclure/resume/article, id_article, env, couper=#ENV{couper}, compteur=#COMPTEUR_BOUCLE, h=h3,pagination=oui,expose=#EXPOSE} /></li>
</BOUCLE_articles>
</ul>
[<nav class="pagination" role="pagination">(#PAGINATION{page_precedent_suivant})</nav>]
[<nav class="pagination" role="pagination">(#PAGINATION{page})</nav>]
[(#ENV{voirtous}|oui)#MODELE{bouton,lienobjet=#ENV{lienobjet}|sinon{rubrique},lienidobjet=#ENV{lienidobjet}|sinon{#ENV{id_rubrique}}|sinon{#ENV{id_secteur}},align=#ENV{align,right},class=voirtous #ENV{class},icone=#ENV{icone},texte=#ENV{voirtous}}]
</div>
</B_articles>

View File

@ -8,6 +8,6 @@
<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>]
[<nav class="pagination">(#PAGINATION)</nav>]
</div>
</B_rubriques>

View File

@ -12,7 +12,7 @@
]
[(#ENV{compteur}|=={1}|et{#ENV{hero}|=={oui}}|oui)</a>][(#LOGO_ARTICLE_NORMAL|oui)</div>]
<div class="article-resume__texte">
<[(#ENV{h,h2})] class="article-resume__titre"><a href="[(#ENV{pagination}|=={oui}|oui)[(#URL_ARTICLE|parametre_url{debut_articles,@#ID_ARTICLE})]][(#ENV{pagination}|!={oui}|oui)#URL_ARTICLE]" class="[(#ENV{hero}|=={oui}|oui)[(#ENV{compteur}|=={1}|non)block-link]][(#ENV{hero}|=={oui}|non)block-link][ (#ENV{class_link})][ (#ENV{expose})]">#TITRE</a></[(#ENV{h,h2})]>
<[(#ENV{h,h2})] class="article-resume__titre"><a href="#URL_ARTICLE" class="[(#ENV{hero}|=={oui}|oui)[(#ENV{compteur}|=={1}|non)block-link]][(#ENV{hero}|=={oui}|non)block-link][ (#ENV{class_link})][ (#ENV{expose})]">#TITRE</a></[(#ENV{h,h2})]>
[<p class="article-resume__soustitre">(#SOUSTITRE)</p>][(#ENV{compteur}|=={1}|et{#ENV{hero}|=={oui}}|oui)[(#COMPOSITION|=={blog}|non)
<a href="#URL_ARTICLE" class="btn[ (#ENV{class_link})][ (#EXPOSE)]"><:baz_april:lire:></a>]]
[(#GET{date}|=={oui}|oui)<div class="article-resume__infos">

View File

@ -1,36 +0,0 @@
<BOUCLE_articles(ARTICLES) {id_article}>#SET{date,non}#SET{intro,non}[
(#COMPOSITION|=={blog}|oui)#SET{date,oui}#SET{intro,oui}][
(#COMPOSITION|=={blog}|non)#SET{date,non}#SET{intro,non}][
(#ENV{date}|=={oui}|oui)#SET{date,oui}][
(#ENV{intro}|=={oui}|oui)#SET{intro,oui}]
<article class="article-resume[ article-resume--(#ENV{class})] block-link-parent[(#ENV{compteur}|=={1}|et{#ENV{hero}|=={oui}}|oui) hero]">
[(#LOGO_ARTICLE_NORMAL|oui)<div class="article-resume__logo">][(#ENV{compteur}|=={1}|et{#ENV{hero}|=={oui}}|oui)<a href="#URL_ARTICLE" title="#TITRE">]
[(#ENV{compteur}|=={1}|et{#ENV{hero}|=={oui}}|oui)
[(#LOGO_ARTICLE_NORMAL|sinon{#CHEMIN{images/nologo.png}}|image_recadre{#CONST{_IMAGE_RATIO}, -, focus}|image_reduire{240})]
][(#ENV{compteur}|=={1}|et{#ENV{hero}|=={oui}}|non)
[(#LOGO_ARTICLE_NORMAL|sinon{#CHEMIN{images/nologo.png}}|image_recadre{#CONST{_IMAGE_RATIO}, -, focus}|image_reduire{140})]
]
[(#ENV{compteur}|=={1}|et{#ENV{hero}|=={oui}}|oui)</a>][(#LOGO_ARTICLE_NORMAL|oui)</div>]
<div class="article-resume__texte">
<[(#ENV{h,h2})] class="article-resume__titre"><a href="[(#ENV{pagination}|=={oui}|oui)[(#URL_ARTICLE|parametre_url{debut_articles,@#ID_ARTICLE})]][(#ENV{pagination}|!={oui}|oui)#URL_ARTICLE]" class="[(#ENV{hero}|=={oui}|oui)[(#ENV{compteur}|=={1}|non)block-link]][(#ENV{hero}|=={oui}|non)block-link][ (#ENV{class_link})][ (#ENV{expose})]">#TITRE</a></[(#ENV{h,h2})]>
[<p class="article-resume__soustitre">(#SOUSTITRE)</p>][(#ENV{compteur}|=={1}|et{#ENV{hero}|=={oui}}|oui)[(#COMPOSITION|=={blog}|non)
<a href="#URL_ARTICLE" class="btn[ (#ENV{class_link})][ (#EXPOSE)]"><:baz_april:lire:></a>]]
[(#GET{date}|=={oui}|oui)<div class="article-resume__infos">
[<span class="article-resume__date">(#DATE|nom_jour|ucfirst) [(#DATE|affdate)]</span>]
</div>][(#GET{intro}|=={oui}|oui)
<div class="article-resume__intro">
[(#INTRODUCTION{#ENV{longueur,180}}|PtoBR)]
</div>][(#ENV{compteur}|=={1}|et{#ENV{hero}|=={oui}}|ou{#COMPOSITION|=={blog}}|non|et{#ENV{lire}|=={oui}|oui})
<a href="#URL_ARTICLE" class="tp"><:baz_april:lire:></a>]
<BOUCLE_groupes(GROUPES_MOTS){si #ENV{compteur}|=={1}|et{#ENV{hero}|=={oui}}|oui}{par titre}>
<B_tags>
<p class="mots">
#TITRE <BOUCLE_tags(MOTS){id_article}{id_groupe}>
<a href="#URL_MOT">#TITRE</a>
</BOUCLE_tags>
</p>
</B_tags>
</BOUCLE_groupes>
</div>
</article>
</BOUCLE_articles>

View File

@ -1,43 +1,43 @@
.page_footer {
padding:($spacer*1.5) 0;
color:white;
background-color:$couleurPrincipale;
padding: ($spacer*1.5) 0;
color: white;
background-color: $couleurPrincipale;
p {
font-size:0.8rem;
font-size: 0.8rem;
}
a {
display:inline-block;
margin:0 0.4em;
border:0;
color:white;
display: inline-block;
margin: 0 0.4em;
border: 0;
color: white;
}
.page_connexplus {
@include clearfix;
padding-bottom:($spacer*1.5);
padding-bottom: ($spacer*1.5);
a {
color:$grayDark;
color: $grayDark;
}
}
.menus_footer {
@include flex;
justify-content: space-between;
font-size:0.8em;
justify-content: space-between;
font-size: 0.8em;
.menu-liste {
flex-basis:18%;
margin:0 0 ($spacer*2);
list-style:none;
flex-basis: 18%;
margin: 0 0 ($spacer*2);
list-style: none;
.h4 {
margin:$spacer 0 0;
font-size:1.15em;
color:$white;
margin: $spacer 0 0;
font-size: 1.15em;
color: $white;
}
a { margin:0; }
a { margin: 0; }
}
}
.formulaire_spip.formulaire_recherche {
max-width:100%;
margin-top:$spacer;
max-width: 100%;
margin-top: $spacer;
input.placeholder,
textarea.placeholder {
color: $couleurPrincipale;
@ -57,28 +57,28 @@
}
}
.april { // logo april
float:right;
width:80px;
margin-left:($spacer*2);
float: right;
width: 80px;
margin-left: ($spacer*2);
}
.sociaux {
a {
display:inline-block;
font-size:0.8em;
display: inline-block;
font-size: 0.8em;
.socicon {
background:transparent;
background: transparent;
}
.name {
display:inline;
display: inline;
@include visuallyhidden;
}
}
}
.colophon {
.menu-liste {
display:inline;
display: inline;
.menu-entree {
display:inline;
display: inline;
}
}
}

View File

@ -31,6 +31,7 @@
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
.on {
color: #FFF;
background-color: $couleur-lien;
@ -51,19 +52,12 @@
color: #838383;
}
@include media($bp-small) {
.pages .lien_pagination,
.pages .tbc {
display: none;
}
}
}
.pagination_ancre {
@include visuallyhidden;
padding:0 !important;
margin:0 !important;
padding: 0 !important;
margin: 0 !important;
}
.col .prev,
@ -75,31 +69,31 @@
.pagination, .aside .nav .pagination {
margin: 2em 0;
.pagination-items {
display:flex;
justify-content:center;
flex-wrap:wrap;
list-style:none;
display: flex;
justify-content: center;
flex-wrap: wrap;
list-style: none;
}
.pagination-item {
padding:0;
background:none;
margin:0 0.15em 0.5em;
padding: 0;
background: none;
margin: 0 0.15em 0.5em;
}
.pagination-items a, .pagination-items span.on {
display:inline-block;
text-decoration:none;
border:none;
padding:0.5em;
display: inline-block;
text-decoration: none;
border: none;
padding: 0.5em;
@include vendor-prefix(border-radius,0.25em);
font-size:1em;
font-weight:700;
line-height:1.5;
color:$couleur-lien;
font-size: 1em;
font-weight: 700;
line-height: 1.5;
color: $couleur-lien;
}
.pagination-items a:hover, .pagination-items span.on {
background:$grayLighter !important;
color:$couleur-lien-hover;
text-decoration:none;
background: $grayLighter !important;
color: $couleur-lien-hover;
text-decoration: none;
}
.tbc {
line-height: 2.4;

View File

@ -24,7 +24,7 @@
padding:0;
}
li {
display:inline;
display: inline;
line-height:1.2;
}
a {
@ -38,7 +38,7 @@
font-weight:400;
padding:0.5em;
margin:0.1rem 0.4rem;
color:white;
color: white;
border:0;
@include media($bp-medium) {
padding:0.8rem;
@ -65,27 +65,27 @@
top: 0px;
width: 100%;
height: 100%;
background:transparent;
background: transparent;
z-index:8;
cursor:pointer;
&.cache { display:block;}
cursor: pointer;
&.cache { display: block;}
}
// menu smart cf js/script.js
// ----------------------------------------
.btn-nav {
position:absolute;
position: absolute;
z-index:10;
right:$spacer;
top:0;
padding:0.4rem;
border:none;
background:$couleurPrincipale;
color:white;
color: white;
font-size:0.9em;
outline:none !important;
display:none;
outline: none !important;
display: none;
@media ($bp-medium) {
display:block;
display: block;
}
&.actif {
color:$couleurPrincipaleDowner;
@ -95,30 +95,30 @@
/* header = nav-principale */
.page_header > .page_container {
.nav {
padding-top:($spacer/2);
padding-top: ($spacer/2);
font-size:0.95rem;
@include media($bp-medium-up) {
position:relative;
position: relative;
}
> ul {
text-align:right;
text-align: right;
@include vendor-prefix(transition,all 0.3s ease-in-out);
@media ($bp-medium) {
position:absolute;
position: absolute;
background:$couleurPrincipale;
width:100%;
top:36px;
left:-100%;
padding:$spacer/2 $spacer;
text-align:center;
text-align: center;
z-index:10;
&.ouvert{
left:0;
}
a {
color:white;
color: white;
border:0;
display:block;
display: block;
margin:0;
padding:0.5rem;
&:hover, &:focus, &.on {
@ -126,20 +126,20 @@
}
}
li {
display:block;
display: block;
}
.loupe {
.fas {
color:white;
color: white;
}
.formulaire_recherche.vu {
right:50%;
margin-right:-160px;
max-width:320px;
max-width: 320px;
form {
padding:0.5rem;
&:before {
display:none;
display: none;
}
}
}
@ -147,18 +147,18 @@
}
.loupe {
position:relative;
display:inline-block !important;
position: relative;
display: inline-block !important;
/* width: em(26px); */
/* height: em(26px); */
span {
@include visuallyhidden;
}
a {
display:inline;
display: inline;
padding:0;
border:0;
background:none;
background: none;
&:hover i.fa-search, &:focus i.fa-search {
background-color:$couleurSecondaire;
}
@ -171,12 +171,12 @@
color:white;
}
.formulaire_recherche {
position:absolute;
height:auto;
width:em(350px);
max-width:em(350px);
position: absolute;
height: auto;
width: em(350px);
max-width: em(350px);
top:-1000px;
left:auto;
left: auto;
right:0;
border-radius: $spacer/2;
z-index:2;
@ -205,7 +205,7 @@
.nav {
padding:0;
li {
display:block;
display: block;
}
a {
width:100%;
@ -245,22 +245,22 @@
color:white;
z-index:9;
.btn-initiatives {
font-size:0.8rem;
display:none;
padding:0.5rem;
font-size: 0.8rem;
display: none;
padding: 0.5rem;
margin-left:-$spacer;
background:$couleurPrincipale;
color:white;
@media ($bp-medium) {
display:block;
display: block;
}
}
.nav {
font-size:0.8rem;
background:$couleurPrincipale;
@media ($bp-medium) {
position:absolute;
width:100%;
position: absolute;
width: 100%;
top:36px;
left:-100%;
@include vendor-prefix(transition,all 0.3s ease-in-out);
@ -268,7 +268,7 @@
left:0;
}
ul, .initiatives {
display:inline;
display: inline;
}
li {
margin:0;
@ -287,7 +287,7 @@
float:right;
padding:0.5em;
@media ($bp-medium) {
display:none;
display: none;
}
}
.initiatives_april {
@ -295,20 +295,20 @@
}
// un sous-menu dans initiatives : .menu-entree.sousinitiatives > .menu-items__lien.sousinitiatives
.menu-entree.sousinitiatives {
position:relative;
position: relative;
> ul {
@include media($bp-medium-up) {
position:absolute;
position: absolute;
top:-999em;
left:0;
width:150px;
&.ouvert {
top:23px;
li {
display:block;
display: block;
background:$couleurPrincipale;
a {
display:block;
display: block;
}
}
}
@ -316,7 +316,7 @@
}
@include media($bp-medium) {
.menu-items__lien.sousinitiatives {
display:none;
display: none;
}
}
}

View File

@ -272,7 +272,7 @@
@error "Direction must be either `top`, `right`, `bottom` or `left`.";
}
display:block;
display: block;
width: 0;
height: 0;
content: '';

View File

@ -6,6 +6,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=#CHARSET" />
<INCLURE{fond=head/#ENV{type-page},env}>
<INCLURE{fond=inclure/head}>
<INCLURE{fond=head_js/#ENV{type-page},env}>
</head>
<INCLURE{fond=body,env}>
</html>