Compare commits
19 Commits
Author | SHA1 | Date |
---|---|---|
chankalan | e34bddb933 | |
chankalan | d3ed887275 | |
chankalan | 7bb921474a | |
chankalan | 7b17c554b5 | |
chankalan | 24979e29e8 | |
chankalan | 094b4e62b9 | |
chankalan | 444ba6a0ad | |
chankalan | 1018d151ea | |
chankalan | 108dcf5fe1 | |
chankalan | 93d7e64559 | |
chankalan | 86f556bff9 | |
chankalan | 070df59457 | |
chankalan | 3ba5271a93 | |
chankalan | 680505166a | |
chankalan | e3f6a378b1 | |
chankalan | 07e7167dbf | |
chankalan | bda51673e0 | |
chankalan | e314369ab9 | |
chankalan | a4e023ef8a |
|
@ -18,6 +18,7 @@ $GLOBALS['z_blocs'] = array(
|
|||
'aside',
|
||||
'connex',
|
||||
'footer',
|
||||
'head_js',
|
||||
);
|
||||
|
||||
define('_CONTENT_WIDTH', 990);
|
||||
|
|
|
@ -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}'>
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,20 +11,20 @@ $GLOBALS[ $GLOBALS['idx_lang'] ] = array(
|
|||
'source' => 'Source',
|
||||
'media_d_origine' => 'Média d’origine',
|
||||
'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 l’April',
|
||||
|
||||
|
||||
'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 d’utilisation et paramétrage de baz_april</h3>
|
||||
|
@ -78,7 +78,7 @@ Pour les logos et c’est valable pour tous les documents partout dans le site :
|
|||
Le logo de "Libre à vous" est le document n°659 : dans l’encart 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 d’intérêt d’une image qui doit être recadrée : il y a une petite croix sur les vignettes dans l’espace privé, il faut juste déplacé cette petite croix et le recadrage se fera autour de cet emplacement.
|
||||
Donc l’image peut bien être verticale ou horizontale, le recadrage carré sera centré sur l’emplacement de la petite croix.
|
||||
Donc l’image peut bien être verticale ou horizontale, le recadrage carré sera centré sur l’emplacement de la petite croix.
|
||||
|
||||
<hr />
|
||||
|
||||
|
@ -98,5 +98,7 @@ Par défaut, les résumés d’articles sont composés des 180 premiers caractè
|
|||
<h4>Page 404</h4>
|
||||
Elle est gérée par une page unique.
|
||||
',
|
||||
|
||||
|
||||
'votre_recherche' => 'Votre recherche',
|
||||
|
||||
);
|
||||
|
|
|
@ -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':
|
||||
|
|
14
paquet.xml
14
paquet.xml
|
@ -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>
|
||||
|
|
60
readme.md
60
readme.md
|
@ -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
|
||||
|
|
|
@ -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>
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[(#REM)
|
||||
|
||||
Ce bloc permet l'insertion de JS specifiques a une page
|
||||
]
|
|
@ -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>
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
|
@ -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">
|
||||
|
|
|
@ -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>
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -272,7 +272,7 @@
|
|||
@error "Direction must be either `top`, `right`, `bottom` or `left`.";
|
||||
}
|
||||
|
||||
display:block;
|
||||
display: block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
content: '';
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in New Issue