-
Notifications
You must be signed in to change notification settings - Fork 4
/
macros_menu.html
298 lines (272 loc) · 11.2 KB
/
macros_menu.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
<CONTENT VERSION="1.0" LANG="fr" CHARSET="utf-8"/>
/**
* Macro principale d'affichage du menu appelée par les templates.
*/
<DEFMACRO NAME="MENU_MAIN">
<nav id="main-menu" class="main-menu" role="navigation" aria-label="[@MENU_PRINCIPAL]">
<h1 class="sr-only">[@MENU_PRINCIPAL]</h1>
<MACRO NAME="MENU_SEARCH" />
<MACRO NAME="MENU_ISSUES" />
<MACRO NAME="MENU_INDEX" />
<FUNC NAME="MENU_COLLECTIONS" EXCLUDE="[%MENU_HIDDEN_COLLECTIONS]" />
<FUNC NAME="MENU_PARTENAIRES" PUBLI_IDENTIFIER="[%IDENTIFIER_PARTENAIRES]" />
</nav>
</DEFMACRO>
/**
* Barre de recherche.
*/
<DEFMACRO NAME="MENU_SEARCH">
<FUNC NAME="NAV_SEARCH_FORM" FORM_ID="main-search" />
</DEFMACRO>
/**
* Menu des index + affichage détaillée des thèmes (optionnel).
*/
<DEFMACRO NAME="MENU_INDEX">
<IF COND="[%MENU_THEMES_LIST]">
<FUNC NAME="MENU_INDEX_LIST" IGNORE_TYPE="theme" />
<FUNC NAME="MENU_INDEX_EXPANDED" TYPE="theme" SECTION_TITLE="[@THEMES]" />
<ELSE/>
<FUNC NAME="MENU_INDEX_LIST" />
</IF>
</DEFMACRO>
/**
* Afficher la liste des index.
*/
<DEFFUNC NAME="MENU_INDEX_LIST" OPTIONAL="ignore_type">
<section class="main-menu__section main-menu__section--indexes">
<h2 class="main-menu__section-title">[@INDEX]</h2>
<ul class="main-menu__list">
<!--[ Auteurs ]-->
<LET VAR="tableindex">#_TP_persons</LET>
<LET VAR="tabletypes">#_TP_persontypes</LET>
<LET VAR="filtre">type = 'auteur'</LET>
<LOOP NAME="menu_index_list" TABLE="[#TABLEINDEX], [#TABLETYPES]" SELECT="DISTINCT(idtype), title, altertitle" WHERE="[#FILTRE] AND [#TABLEINDEX].idtype = [#TABLETYPES].id AND [#TABLEINDEX].status GT 0 AND type NOT LIKE '[#IGNORE_TYPE]'" ORDER="[#TABLETYPES].rank">
<li class="main-menu__item main-menu__item--entry"><a href="[#IDTYPE|makeurlwithid]"><FUNC NAME="BASE_ML_TITRE" INDEX="TRUE" /></a></li>
</LOOP>
<!--[ Mots-clés ]-->
<LET VAR="tableindex">#_TP_entries</LET>
<LET VAR="tabletypes">#_TP_entrytypes</LET>
<LET VAR="filtre">type LIKE 'mot%cle%' AND lang = '[#SITELANG]'</LET>
<!--[ Il faut tester l'existence de l'index dans la langue de navigation ]-->
<LET VAR="sitelang_keywords"><LOOP NAME="menu_index_list"></LOOP></LET>
<IF COND="[#SITELANG_KEYWORDS]">
[#SITELANG_KEYWORDS|trim]
<ELSE />
<!--[ Affichage de l'index dans la langue principale du site ]-->
<LET VAR="filtre">type LIKE 'mot%cle%' AND lang = '[#MAINLANG]'</LET>
<LOOP NAME="menu_index_list"></LOOP>
</IF>
<!--[ Autres types d'index ]-->
<LET VAR="filtre">type NOT LIKE 'mot%cle%' AND class != 'indexavances' AND class != 'collections'</LET>
<LOOP NAME="menu_index_list"></LOOP>
<!--[ Index par annees ]-->
<IF COND="[#OPTIONS.OPTIONSAFFICHAGE.AFFICHAGEINDEXANNUEL]">
<li class="main-menu__item main-menu__item--entry"><a href="[#SITEINFOS.URL]/?page=years">[@INDEX_PAR_ANNEES]</a></li>
</IF>
<!--[ Index par langues ]-->
<IF COND="[#OPTIONS.OPTIONSAFFICHAGE.AFFICHAGEINDEXPARLANGUE]">
<li class="main-menu__item main-menu__item--entry"><a href="[#SITEINFOS.URL]/?page=lang">[@INDEX_PAR_LANGUES]</a></li>
</IF>
</ul>
</section>
</DEFFUNC>
/**
* Affichage des entrees d'un index dans une section de la nav.
* @param {string} type - Nom du type de l'index.
* @param {string} [section_title] - Titre de la section du menu.
*/
<DEFFUNC NAME="MENU_INDEX_EXPANDED" REQUIRED="type" OPTIONAL="section_title">
<LET VAR="tableindex">#_TP_entries</LET>
<LET VAR="tabletypes">#_TP_entrytypes</LET>
<LET VAR="filtre">type = '[#TYPE]'</LET>
<LOOP NAME="menu_index_expanded" TABLE="[#TABLEINDEX], [#TABLETYPES]" SELECT="DISTINCT(idtype), title, altertitle" WHERE="[#FILTRE] AND [#TABLEINDEX].idtype = [#TABLETYPES].id AND [#TABLEINDEX].status GT 0" ORDER="[#TABLETYPES].rank">
<IF COND="![#SECTION_TITLE]">
<LET VAR="section_title"><FUNC NAME="BASE_ML_TITRE" INDEX="TRUE" /></LET>
</IF>
<LOOP NAME="menu_index_expanded_children" SELECT="id, g_name" TABLE="entries" WHERE="type = '[#TYPE]'" ORDER="g_name">
<BEFORE>
<section class="main-menu__section main-menu__section--index-expanded">
<h2 class="main-menu__section-title">[#SECTION_TITLE]</h2>
<ul class="main-menu__list">
</BEFORE>
<DO>
<li class="main-menu__item main-menu__item--entry">
<a href="[#ID|makeurlwithid]">[#G_NAME]</a>
</li>
</DO>
<AFTER>
</ul>
</section>
</AFTER>
</LOOP>
</LOOP>
</DEFFUNC>
/**
* Liste des numéros dans le menu.
*/
<DEFMACRO NAME="MENU_ISSUES">
<LOOP NAME="menu_issues"
TABLE="publications"
SELECT="id, titre, altertitre, identifier"
WHERE="idparent = 0 AND type = 'collection' AND id IN ([#ISSUES_COLLECTIONS_ID])"
ORDER="(identifier='numeros') DESC, rank">
<DOFIRST>
<!--[ Collection 'numeros' ]-->
<!--[ A paraitre ]-->
<FUNC NAME="MENU_ISSUES_ITEMS" TITRE_SECTION="[@NAV_A_PARAITRE]" ID_COLLECTION="[#ID]" FILTRE="AND paraitre = 1" />
<!--[ Résumés ]-->
<FUNC NAME="MENU_ISSUES_ITEMS" TITRE_SECTION="[@NAV_RESUMES]" ID_COLLECTION="[#ID]" FILTRE="AND (paraitre = 0 OR paraitre IS NULL) AND (integralite = 0 OR integralite IS NULL)" />
<!--[ Texte intégral ]-->
<FUNC NAME="MENU_ISSUES_ITEMS" TITRE_SECTION="[@NAV_TEXTE_INTEGRAL]" ID_COLLECTION="[#ID]" FILTRE="AND (paraitre = 0 OR paraitre IS NULL) AND integralite = 1" />
</DOFIRST>
<DO>
<!--[ Autres collections parentes ]-->
<LET VAR="titre_section"><FUNC NAME="BASE_ML_TITRE" /></LET>
<FUNC NAME="MENU_ISSUES_ITEMS" TITRE_SECTION="[#TITRE_SECTION]" ID_COLLECTION="[#ID]" />
</DO>
<AFTER>
<!--[ Lien vers le sommaire des numéros ]-->
<MACRO NAME="MENU_ISSUES_LINK" />
</AFTER>
</LOOP>
</DEFMACRO>
/**
* Affiche une liste de numéros pour le menu.
* @param {string} titre_section - Titre de la section du menu.
* @param {int} id_collection - ID de la collection parente.
* @param {string} [filtre] - Filtre passé dans le WHERE de la requête.
*/
<DEFFUNC NAME="MENU_ISSUES_ITEMS" REQUIRED="titre_section, id_collection" OPTIONAL="filtre">
<IF COND="![%MENU_MAX_ISSUES]">
<LET VAR="menu_max_issues" GLOBAL="1">10</LET>
</IF>
<LOOP NAME="menu_issues_items"
TABLE="publications"
SELECT="id, numero, titre, altertitre, periode, datepubli, datepublipapier"
WHERE="idparent = '[#ID_COLLECTION]' [#FILTRE]"
ORDER="rank DESC"
LIMIT="[%MENU_MAX_ISSUES]">
<BEFORE>
<section class="main-menu__section main-menu__section--issues">
<h2 class="main-menu__section-title">[#TITRE_SECTION]</h2>
<ul class="main-menu__list">
</BEFORE>
<DO>
<li class="main-menu__item main-menu__item--issue">
<a href="[#ID|makeurlwithid]">
<span class="publi-number">[#NUMERO]<FUNC NAME="BASE_PERIODE_PUBLI" PREPEND=" | " /></span>
<MACRO NAME="MENU_ISSUE_TITLE"/>
</a>
</li>
</DO>
<AFTER>
</ul>
</section>
</AFTER>
</LOOP>
</DEFFUNC>
/**
* Affichage du titre du numéro dans le menu.
*/
<DEFMACRO NAME="MENU_ISSUE_TITLE">
<LET VAR="ml_titre"><FUNC NAME="BASE_ML_TITRE" /></LET>
<IF COND="([#ML_TITRE] NE [#NUMERO]) AND !([%MENU_HIDE_VARIA] AND [#ML_TITRE|trim|strtolower] EQ 'varia')"><div class="publi-title">[#ML_TITRE]</div></IF>
</DEFMACRO>
/**
* Affichage du lien vers tous les numéros.
*/
<DEFMACRO NAME="MENU_ISSUES_LINK">
<a href="[#SITEINFOS.URL]/?page=numeros" class="link-to-issues arrow-after">[@TOUS_LES_NUMEROS]</a>
</DEFMACRO>
/**
* Afficher des collections dans le menu.
* @param {string} [include] - Inclure des collections selon leur identifier. Penser à wrapper chaque nom entre guillemets. Exemple : INCLUDE="'presentation', 'informations'".
* @param {string} [exclude] - Idem exclusion des collections.
*/
<DEFFUNC NAME="MENU_COLLECTIONS" OPTIONAL="include, exclude">
<LET VAR="filter">
<IF COND="[#INCLUDE]">
AND identifier IN ([#INCLUDE])
</IF>
<IF COND="[#EXCLUDE]">
AND identifier NOT IN ([#EXCLUDE])
</IF>
</LET>
<LOOP NAME="menu_collections" TABLE="publications" SELECT="id, titre, altertitre, identifier" WHERE="idparent = 0 AND type = 'collection' AND id NOT IN ([#ISSUES_COLLECTIONS_ID]) [#FILTER]" ORDER="rank">
<LOOP NAME="menu_collections_entities" TABLE="entities" SELECT="id, class, type" WHERE="idparent = '[#ID]' AND id [#NOT_IN_TRADUCTIONS] AND class IN ('publications', 'textes', 'liens') AND type != 'rubriqueactualites'" ORDER="rank">
<BEFORE>
<section class="main-menu__section main-menu__section--collection main-menu__section--identifier--[#IDENTIFIER]">
<h2 class="main-menu__section-title"><FUNC NAME="BASE_TITRE_ENTITE" TITREALTER="oui" /></h2>
<ul class="main-menu__list">
</BEFORE>
<DO>
<IF COND="[#CLASS] EQ 'textes'">
<li class="main-menu__item main-menu__item--class-[#CLASS]">
<IF COND="![%RELATIONS_TRADUCTION_PARENT_UNIQUE]">
<a href="[#ID|makeurlwithid]"><FUNC NAME="BASE_TITRE_ENTITE" TITREALTER="oui" /></a>
<ELSE />
<!--[ Affichage des traductions dans la langue de navigation ]-->
<LOOP NAME="menu_collections_entities_traduction" SELECT="id, titre, altertitre" TABLE="textes, relations" WHERE="id2 = '[#ID]' AND id1 = textes.identity AND langue = '[#SITELANG]' AND nature = 'traduction'" LIMIT="1">
<a href="[#ID|makeurlwithid]"><FUNC NAME="BASE_ML_TITRE" /></a>
<ALTERNATIVE>
<a href="[#ID|makeurlwithid]"><FUNC NAME="BASE_TITRE_ENTITE" TITREALTER="oui" /></a>
</ALTERNATIVE>
</LOOP>
</IF>
</li>
<ELSEIF COND="[#CLASS] EQ 'liens'" />
<LOOP NAME="menu_collections_entities_lien" TABLE="liens" WHERE="id = '[#ID]'" SELECT="titre, url, vignette">
<!--[ Possibilité d'ajouter une icone spécifique format 16x16 via le champ #VIGNETTE ]-->
<IF COND="[#VIGNETTE]">
<LET VAR="li_icon">style="list-style-image: url([#VIGNETTE|vignette(16)])"</LET>
</IF>
<LET VAR="href">[#ID|makeurlwithid]</LET>
<IF COND="[#TYPE] EQ 'noticedesite' AND [#URL]">
<LET VAR="href">[#URL]</LET>
</IF>
<li class="main-menu__item main-menu__item--class-[#CLASS]" [#LI_ICON]>
<a href="[#HREF]">[#TITRE]</a>
</li>
</LOOP>
<ELSEIF COND="[#TYPE] NE 'rubriqueactualites'" />
<li class="main-menu__item main-menu__item--class-[#CLASS]">
<a href="[#ID|makeurlwithid]">
<FUNC NAME="BASE_TITRE_ENTITE" TITREALTER="oui" />
</a>
</li>
</IF>
</DO>
<AFTER>
</ul>
</section>
</AFTER>
</LOOP>
</LOOP>
</DEFFUNC>
/**
* Partenaires dans le menu.
* @param {string} [publi_identifier] - Identifiant de la collection partenaires.
*/
<DEFFUNC NAME="MENU_PARTENAIRES" OPTIONAL="publi_identifier">
<IF COND="![#PUBLI_IDENTIFIER]">
<LET VAR="publi_identifier">[%IDENTIFIER_PARTENAIRES]</LET>
</IF>
<LOOP NAME="menu_partenaires" TABLE="liens" WHERE="type = 'noticedesite' AND parent = '[#PUBLI_IDENTIFIER]'" SELECT="titre, url, vignette" ORDER="rank">
<BEFORE>
<section class="main-menu__section main-menu__section--partenaires">
<h2 class="main-menu__section-title sr-only">[@LOGOS]</h2>
<ul class="main-menu__logos">
</BEFORE>
<DO>
<li class="main-menu__logo">
<a href="[#URL]" title="[#TITRE]" aria-label="[@VISITER_SITE] [#TITRE|textebrut]">
<img class="main-menu__logo-image" alt="[@LOGO_DU_SITE] [#TITRE|textebrut]" src="[#VIGNETTE|vignette([%SIZE_PARTENAIRE])]" />
</a>
</li>
</DO>
<AFTER>
</ul>
</section>
</AFTER>
</LOOP>
</DEFFUNC>