mercredi 22 octobre 2014 (), par
Ces deux rubriques fonctionnent exactement sur le même principe et ont donc le même squelette, à l’exception d’un appel à un sous-squelette qui contient un paramètre de boucle SPIP différent.
Une "barre de navigation" liste les 3 articles de la rubrique, celui dont les données sont affichées étant sur fond blanc.
En dessous, un cadre gris affiche les données du premier article rédigé, texte et logo.
Le squelette de la rubrique appelle en fait le squelette article, lequel inclut celui de la barre de navigation.
Exemple pour la rubrique 2 (biographie) :
Fichier de squelette rubrique=2.html
dans le répertoire contenu
du plugin Zpip.
[(#REM) RUBRIQUE 2 = biographie ]
[(#REM) MAIN NAVIGATION / NAVIGATION PRINCIPALE ]
<BOUCLE_contenu_rubrique(RUBRIQUES){id_rubrique}>
<B_articles>
<BOUCLE_articles(ARTICLES){id_rubrique} {par id_article}{lang} {pagination 1}>
#INCLURE{fond=contenu/article,id_article,env}
</BOUCLE_articles>
</B_articles>
</BOUCLE_contenu_rubrique>
Ce squelette est extrêmement simple puisqu’il sélectionne un et un seul ({pagination 1}
) article de la rubrique correspondant à la langue choisie (filtre {lang}
), le tout trié par numéro d’article ({par id_article}
).
Cela aurait pu être un tri sur le titre des articles, ou bien un article au hasard.
Une fois l’article sélectionné, on appelle le squelette article avec le numéro l’article à afficher.
SPIP sélectionnera automatiquement le squelette le plus approprié pour cet article.
Fichier de squelette article=2.html
dans le répertoire contenu
du plugin Zpip.
[(#REM) RUBRIQUE 2 = biographie ]
[(#REM) MAIN NAVIGATION / NAVIGATION PRINCIPALE ]
<INCLURE{fond=inclure/barre-nav-bio,env}>
Le squelette de l’article inclut celui de la barre de navigation.
De fait, la boucle contenue dans ce sous-squelette aurait pu être incluse directement dans le squelette article, mais la conception d’origine de cette rubrique impliquait deux squelettes rubrique/article bien distincts, qui partageaient la même boucle de barre de navigation, laquelle a donc été externalisée.
Voir onglet suivant pour la barre de navigation.
<BOUCLE_contenu_article(ARTICLES){id_article}>
Que ce soit dans la page d’affichage de l’article ou via l’appel depuis la page d’affichage de la rubrique, un numéro d’article est fourni, il n’y a donc pas besoin de filtre particulier.
<div class="contenu-principal galeries">
<div class="surlignable">
[<div class="#EDIT{chapo} chapo">(#CHAPO|image_reduire{500,0})</div>]
<div id="bio">
[<div id="bio_texte" style="overflow-y:auto;">(#TEXTE|image_reduire{500,0})</div>]
<div id="bio_image">[(#LOGO_ARTICLE_RUBRIQUE|image_reduire{275,0})]</div>
</div>
</div>
[<p class="#EDIT{hyperlien} hyperlien"><:voir_en_ligne:> : <a href="(#URL_SITE)" target="_blank" class="spip_out">[(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]</a></p>]
[(#REM) Gestion du portfolio et des documents ]
[(#INCLURE{fond=inclure/documents}{id_article})]
</div>
</BOUCLE_contenu_article>
L’indentation permet de suivre la hiérarchie des blocs.
Le reste du squelette est assez classique.
Fichier de squelette barre-nav-bio.html
dans le répertoire inclure
du plugin Zpip.
<div id="nav_bio">
<B_sous_bio>
<div class="menu-liste">
<BOUCLE_sous_bio(ARTICLES) {id_rubrique=2} {par id_article}{lang}>
<div class="menu-entree">
<a href="#URL_ARTICLE" [ class="(#EXPOSE)"]>[(#TITRE)]</a>
</div>
</BOUCLE_sous_bio>
</div>
</B_sous_bio>
</div>
Cette boucle va simplement chercher les articles de la rubrique n°2 (biographie) afin de lister leurs titres.
Le mot clé SPIP [ class="(#EXPOSE)"]
permet de définir la classe CSS "on" sur le lien, si le contenu de l’article ou de la rubrique est "exposé", et donc affiché dans la page.
Cela permettra d’appliquer le style CSS suivant :
#nav a.on, #nav_bio a.on, #nav_expo a.on {
background-color:white;
}
Ce qui mettra une couleur de fond blanche sur le lien de l’article dans la barre de navigation si celui-ci est affiché.
Style CSS associé aux barres de navigation (biographie, expositions..)
#nav, #nav_bio, #nav_expo {
margin: 0;
overflow: hidden;
border: 0px solid #000000;
position:absolute;
top:30px;
height:50px;
left:0px;
right:0;
}
#nav ul, #nav_bio ul, #nav_expo ul {
margin: 0;
padding: 0 0 0 0;
list-style: none;
line-height: normal;
}
#nav li, #nav_bio li, #nav_expo li {
display: inline;
text-align: center;
}
#nav a, #nav_bio a, #nav_expo a {
display: block;
height: 20px;
text-decoration: none;
text-align: center;
font-size: 1em;
font-weight: bold;
color: black;
font-family: EurocentricRegular,Arial,Helvetica,sans-serif;
}
#nav .menu-liste, #nav_bio .menu-liste, #nav_expo .menu-liste {
padding-left: 2%;
padding-right: 2%;
}
#nav .menu-entree, #nav_bio .menu-entree, #nav_expo .menu-entree {
border: 1px solid black;
float: left;
padding: 5px;
text-align: center;
width: 22%;
background-color:#999999;
}
En ce qui concerne la taille du bloc du lien d’un article dans la barre de navigation, la propriété partagée définie ci-dessus est surchargée et donc remplacée par celle définie ci-dessous, car définie après la précédente.
#nav_bio .menu-entree, #nav_expo .menu-entree {
width:30%;
}
Il y a également des propriétés de couleur et de taille de police pour l’évènement hover
, correspondant au survol de la souris, et ce aussi bien pour les liens que pour les blocs.
#nav a:hover, #nav .active a, #nav .menu-entree.on a, #nav_bio a:hover, #nav_bio .active a, #nav_bio .menu-entree.on a, #nav_expo a:hover, #nav_expo .active a, #nav_expo .menu-entree.on a {
color: #110404;
}
#nav .menu-entree:hover, #nav_bio .menu-entree:hover, #nav_expo .menu-entree:hover {
background-color:#DEDEDE;
font-size:1em;
}
De même pour les items de menu de la barre de navigation.
#nav .menu-entree .menu-liste, #nav .menu-entree .menu-liste a, #nav_bio .menu-entree .menu-liste, #nav_bio .menu-entree .menu-liste a, #nav_expo .menu-entree .menu-liste, #nav_expo .menu-entree .menu-liste a {
display:inline;
line-height:0;
font-size:0px;
height:0;
padding-left:2px;
padding-right:2px;
}
#nav .menu-entree:hover .menu-liste, #nav .menu-entree:hover .menu-liste a, #nav_bio .menu-entree:hover .menu-liste, #nav_bio .menu-entree:hover .menu-liste a, #nav_expo .menu-entree:hover .menu-liste, #nav_expo .menu-entree:hover .menu-liste a {
font-size:0.825em;
line-height:20px;
height:20px;
}