@kiubi/mcp-designer 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +219 -0
  3. package/package.json +57 -0
  4. package/src/app.ts +39 -0
  5. package/src/index.ts +21 -0
  6. package/src/lib/stemmer.ts +38 -0
  7. package/src/lib/theme-checker/block-validator.ts +353 -0
  8. package/src/lib/theme-checker/checker.ts +897 -0
  9. package/src/lib/theme-checker/filter-validator.ts +163 -0
  10. package/src/lib/theme-checker/index.ts +6 -0
  11. package/src/lib/theme-checker/inspector.ts +193 -0
  12. package/src/lib/theme-checker/lang.ts +42 -0
  13. package/src/lib/theme-checker/parsers/component-xml.ts +120 -0
  14. package/src/lib/theme-checker/parsers/model-xml.ts +82 -0
  15. package/src/lib/theme-checker/parsers/post-type-xml.ts +92 -0
  16. package/src/lib/theme-checker/parsers/symbol-xml.ts +162 -0
  17. package/src/lib/theme-checker/parsers/theme-xml.ts +102 -0
  18. package/src/lib/theme-checker/types.ts +97 -0
  19. package/src/logger.ts +28 -0
  20. package/src/tool.ts +13 -0
  21. package/src/tools/create_type.ts +535 -0
  22. package/src/tools/detail_type.ts +208 -0
  23. package/src/tools/get_doc_section.ts +201 -0
  24. package/src/tools/list_types.ts +87 -0
  25. package/src/tools/list_widgets.ts +181 -0
  26. package/src/tools/ruleset.ts +25 -0
  27. package/src/tools/search_doc.ts +160 -0
  28. package/src/tools/validate_theme.ts +63 -0
  29. package/storage/definitions/blog.json +1444 -0
  30. package/storage/definitions/catalogue.json +2817 -0
  31. package/storage/definitions/cms.json +1002 -0
  32. package/storage/definitions/commandes.json +2409 -0
  33. package/storage/definitions/comptes.json +780 -0
  34. package/storage/definitions/modules.json +418 -0
  35. package/storage/definitions/recherche.json +804 -0
  36. package/storage/documents/CLAUDE.exemple.md +281 -0
  37. package/storage/documents/generated/exemples.md +8054 -0
  38. package/storage/documents/generated/integration/01_theme_perso.md +182 -0
  39. package/storage/documents/generated/integration/02_modeles.md +220 -0
  40. package/storage/documents/generated/integration/03_widgets.md +139 -0
  41. package/storage/documents/generated/integration/04_blocs.md +45 -0
  42. package/storage/documents/generated/integration/05_balises.md +43 -0
  43. package/storage/documents/generated/integration/06_balises_globales.md +201 -0
  44. package/storage/documents/generated/integration/07_balises_widget.md +257 -0
  45. package/storage/documents/generated/integration/08_types_billets.md +154 -0
  46. package/storage/documents/generated/integration/09_types_produits.md +77 -0
  47. package/storage/documents/generated/integration/10_types_composants.md +142 -0
  48. package/storage/documents/generated/integration/11_symboles.md +156 -0
  49. package/storage/documents/generated/integration/12_mediatheque.md +66 -0
  50. package/storage/documents/generated/integration/13_includes.md +25 -0
  51. package/storage/documents/generated/integration/14_404.md +32 -0
  52. package/storage/documents/generated/integration/15_arianne.md +62 -0
  53. package/storage/documents/generated/integration/16_fermeture.md +36 -0
  54. package/storage/documents/generated/integration/17_recherche.md +36 -0
  55. package/storage/documents/generated/integration/18_cms.md +582 -0
  56. package/storage/documents/generated/integration/19_modules.md +479 -0
  57. package/storage/documents/generated/integration/20_blog.md +946 -0
  58. package/storage/documents/generated/integration/21_catalogue.md +1834 -0
  59. package/storage/documents/generated/integration/22_commandes.md +2772 -0
  60. package/storage/documents/generated/integration/23_comptes.md +1195 -0
  61. package/storage/documents/generated/integration/24_recherche.md +542 -0
  62. package/storage/documents/hors_sujet_regles.md +43 -0
  63. package/storage/documents/kiubi_api.md +6690 -0
  64. package/storage/documents/kiubi_ruleset.md +419 -0
  65. package/storage/documents/kiubi_workflows.md +121 -0
@@ -0,0 +1,582 @@
1
+ # Site web
2
+
3
+ ## Widget Site web / Contenus d'une page
4
+
5
+ **Ce widget très important affiche les contenus d'une page libre ou d'un symbole du Site web.**
6
+ Il affiche l'ensemble des billets, composants et symboles d'une zone de contenus qui peut être issue d'une page libre ou d'un symbole. Ce widget n'a pas de template en lieu même, il utilise les templates propres des contenus (type de billets, type de composans et modèle de symbole).
7
+
8
+ Lorsque ce widget est placé dans une mise en page, il est paramétré automatiquement pour afficher les contenus de la zone où il est placé, si cette zone fait partie de la liste des zones éligibles du thème graphique (tous modèles compris).
9
+ ## Widget Site web / Contenus d'une page : Billet
10
+
11
+ **Les billets sont affichés avec leur template de type de billet. A noter que contrairement au Widget Liste de billets, ce widget peut s'éxécuter dans un contexte de symbole. Les balises se référent à une page libre n'ont alors plus de sens et n'affiche rien.**
12
+
13
+
14
+ ### Template
15
+
16
+ Le template du widget : `theme/fr/billets/post_simple/index.html`. Exemple :
17
+
18
+ ```html
19
+ <!-- BEGIN: main -->
20
+ <!-- BEGIN: titre --><h1>{titre}</h1><!-- END: titre -->
21
+ <!-- BEGIN: sstitre --><h2>{sstitre}</h2><!-- END: sstitre -->
22
+ <!-- BEGIN: texte1 -->{texte1}<!-- END: texte1 -->
23
+ <!-- END: main -->
24
+ ```
25
+ ### Arborescence des blocs
26
+
27
+ ```
28
+ └── main // Bloc racine tout le temps affiché
29
+ ├── titre // Le contenu du bloc ne s'affiche que si le titre du billet n'est pas vide.
30
+ ├── sstitre // Le contenu du bloc ne s'affiche que si le sous-titre du billet n'est pas vide.
31
+ ├── texte1 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
32
+ ├── texte2 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
33
+ ├── texte3 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
34
+ ├── texte4 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
35
+ ├── texte5 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
36
+ ├── texte6 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
37
+ ├── texte7 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
38
+ ├── texte8 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
39
+ ├── texte9 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
40
+ ├── texte10 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
41
+ ├── texte11 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
42
+ ├── texte12 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
43
+ ├── texte13 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
44
+ ├── texte14 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
45
+ └── texte15 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
46
+ ```
47
+ ### Balises
48
+
49
+ Bloc|Balise|Description
50
+ ---|---|---
51
+ | main | type_billet | Type du billet : affiche le nom du répertoire du billet dans l'espace FTP. |
52
+ | main | titre | Titre du billet. |
53
+ | main | sstitre | Sous-titre du billet. |
54
+ | main | texte1 à texte15 | Affiche les champs texte1 à texte15. |
55
+ | main | groupe_billet | Groupe du billet. |
56
+ | main | intitule_page | Intitulé de la page libre dans laquelle se trouve le billet. Vide pour les billets de symboles |
57
+ | main | nom_optim | Nom optimisé de la page libre du billet (c'est à dire la dernière partie de l'URL de la page), tel qu'il est défini dans les options avancées de la page d'édition de la page libre. Vide pour les billets de symboles |
58
+ | main | lien_page | URL vers la page libre dans laquelle se trouve le billet. Affiche "#" pour les billets de symboles |
59
+ | main | lien_billet | URL un peu spéciale vers la page libre du billet. Les widgets "Contenu de la page libre" de la page libre du billet qui peuvent afficher ce billet n'afficheront que ce billet là, et tous les autres widgets fonctionneront normalement. C'est très utile pour faire des pages de listing et de détail. Affiche "#" pour les billets de symboles |
60
+ | main | compteur | La balise affichera un compteur commençant à 1 et qui sera incrémenté de 1 à chaque fois. |
61
+ | main | alterne | La balise affichera alternativement 1 ou 2. Il est préférable d'utiliser le filtre `{compteur|alternate}`. |
62
+ | main | alterne_3 | La balise affichera alternativement 1,2 ou 3. Il est préférable d'utiliser le filtre `{compteur|alternate|3}`. |
63
+ | main | alterne_4 | La balise affichera alternativement 1,2,3 ou 4. Il est préférable d'utiliser le filtre `{compteur|alternate|4}`. |
64
+ | main | alterne_5 | La balise affichera alternativement 1,2,3,4 ou 5. Il est préférable d'utiliser le filtre `{compteur|alternate|5}`. |
65
+ | main | serial | Identifiant unique du widget dans la page. Permet d'identifier de manière unique le widget dans la page. |
66
+
67
+
68
+ ## Widget Site web / Contenus d'une page : Composant
69
+
70
+ **Les composants sont affichés avec le template de leur type.**
71
+
72
+
73
+ ### Template
74
+
75
+ Le template du widget : `theme/fr/composants/galerie/index.html`. Exemple :
76
+
77
+ ```html
78
+ <!-- BEGIN:main -->
79
+ <div class="container {extra_class}">
80
+
81
+ <h3>{title}</h3>
82
+
83
+ <!-- BEGIN:collection -->
84
+ <!-- BEGIN:item -->
85
+ <!-- BEGIN: titre --><h4>{titre}</h4><!-- END: titre -->
86
+ <img src="{image}" />
87
+ <!-- END:item -->
88
+ <!-- END:collection -->
89
+ <!-- BEGIN:empty -->
90
+ Vide
91
+ <!-- END: empty -->
92
+
93
+ </div>
94
+ <!-- END:main -->
95
+ ```
96
+ ### Arborescence des blocs
97
+
98
+ ```
99
+ └── main // Bloc racine tout le temps affiché
100
+ ├── xxx // Le bloc s'affiche si le champ `xxx` n'est pas vide
101
+ ├── collection // Le bloc s'affiche si le composant possède une collection et qu'elle contient au moins un élément
102
+ │ └── item //
103
+ │ └── xxx // Le bloc s'affiche si le champ `xxx` de la collection n'est pas vide
104
+ └── empty // Le bloc s'affiche si le composant possède une collection et qu'elle est collection est vide
105
+ ```
106
+ ### Balises
107
+
108
+ Bloc|Balise|Description
109
+ ---|---|---
110
+ | main | serial | Permet d'identifier de manière unique le composant dans la page. |
111
+ | main | component_type | Type du composant : affiche le nom du répertoire du billet dans l'espace FTP. |
112
+ | main | title | Titre du composant. |
113
+ | main | items_count | Nombre d'éléments de la collection affichés par le widget |
114
+ | xxx | xxx | Affiche la valeur du champ `xxx` défini dans le modèle |
115
+ | xxx | xxx_label | Affiche le label associé à la valeur pour les champs de type `select` |
116
+ | xxx | xxx_miniature | Affiche l'url de la miniature pour les champs de type `image` |
117
+ | xxx | xxx_vignette | Affiche l'url de la vignette pour les champs de type `image` |
118
+ | xxx | xxx_g_miniature | Affiche l'url de la grande miniature pour les champs de type `image` |
119
+ | xxx | xxx_g_vignette | Affiche l'url de la grande vignette pour les champs de type `image` |
120
+ | item | position | La balise affichera un compteur commençant à 1 et qui sera incrémenté de 1 à chaque fois. Il est possible d'utilise le filtre modulo `{position|alternate|X}` pour boucler tous les `X` éléments. |
121
+ | xxx | xxx | Affiche la valeur du champ `xxx` défini dans la collection |
122
+ | xxx | xxx_label | Affiche le label associé à la valeur pour les champs de type `select` |
123
+ | xxx | xxx_miniature | Affiche l'url de la miniature pour les champs de type `image` |
124
+ | xxx | xxx_vignette | Affiche l'url de la vignette pour les champs de type `image` |
125
+ | xxx | xxx_g_miniature | Affiche l'url de la grande miniature pour les champs de type `image` |
126
+ | xxx | xxx_g_vignette | Affiche l'url de la grande vignette pour les champs de type `image` |
127
+
128
+
129
+ ## Widget Site web / Symbole
130
+
131
+ **Ce widget affiche l'intégralité d'un symbole du Site web.**
132
+
133
+
134
+ ### Template
135
+
136
+ Le template du widget : `theme/fr/symboles/3cols/index.html`. Exemple :
137
+
138
+ ```html
139
+ <!-- BEGIN:main -->
140
+ <div class="container {extra_class}">
141
+
142
+ <h3>{title}</h3>
143
+
144
+ <div class="row">
145
+ <span class="col-4">{ZONE.left}</span>
146
+ <span class="col-4">{ZONE.center}</span>
147
+ <span class="col-4">{ZONE.right}</span>
148
+ </div>
149
+
150
+ </div>
151
+ <!-- END:main -->
152
+ ```
153
+ ### Arborescence des blocs
154
+
155
+ ```
156
+ └── main // Bloc racine tout le temps affiché
157
+ └── xxx // Le bloc s'affiche si le champ `xxx` n'est pas vide
158
+ ```
159
+ ### Balises
160
+
161
+ Bloc|Balise|Description
162
+ ---|---|---
163
+ | main | serial | Permet d'identifier de manière unique l'instance du symbole dans la page. |
164
+ | main | title | Titre du symbole |
165
+ | main | model | Modèle de template du symbole |
166
+ | main | ZONE.xxx | Insère les Widgets de la zone "xxx" telle qu'ils ont été configurés dans la mise en page du symbole. Les noms (identifiants) des zones sont définis dans le fichier "structure.xhtml" propre au modèle de mise en page. |
167
+ | xxx | xxx | Affiche la valeur du champ `xxx` défini dans le modèle |
168
+ | xxx | xxx_label | Affiche le label associé à la valeur pour les champs de type `select` |
169
+ | xxx | xxx_miniature | Affiche l'url de la miniature pour les champs de type `image` |
170
+ | xxx | xxx_vignette | Affiche l'url de la vignette pour les champs de type `image` |
171
+ | xxx | xxx_g_miniature | Affiche l'url de la grande miniature pour les champs de type `image` |
172
+ | xxx | xxx_g_vignette | Affiche l'url de la grande vignette pour les champs de type `image` |
173
+
174
+
175
+ ## Widget Site web / Bloc d'extrait
176
+
177
+ **Ce widget très important affiche un extrait des billets d'une page libre du Site web.**
178
+ Il affiche les billets d'une page libre **en ne conservant PAS le modèle de mise en page** propre à chaque billet mais **en appliquant un unique modèle de mise en page** à tous les billets affichés.
179
+
180
+ **l'apparence des billets affichés par le widget « Bloc d'extrait » sera donc déterminée par le modèle graphique du widget et non pas par les modèles graphiques des différents types de billets affichés.**
181
+
182
+ ### Template
183
+
184
+ Le template du widget : `theme/fr/widgets/site_web/bloc_extrait/index.html`. Exemple :
185
+
186
+ ```html
187
+ <!-- BEGIN:main -->
188
+ <!-- BEGIN:intitule -->
189
+ <h1>{intitule}</h1>
190
+ <!-- END:intitule -->
191
+
192
+ <!-- BEGIN:billet -->
193
+ <div>
194
+ <!-- BEGIN:texte10 -->
195
+ <img src="{racine}/media/miniature/{texte10}.jpg" alt="{titre|htmlentities}" />
196
+ <!-- END:texte10 -->
197
+
198
+ <!-- BEGIN:titre --><h2>{titre}</h2><!-- END:titre -->
199
+ <!-- BEGIN:sstitre --><h3>{sstitre}</h3><!-- END:sstitre -->
200
+ <!-- BEGIN:texte1 --><p>{resume_texte1}</p><!-- END:texte1 -->
201
+ </div>
202
+ <!-- END:billet -->
203
+
204
+ <!-- BEGIN: nav2 -->
205
+ <div>
206
+ <!-- BEGIN: premier -->
207
+ <a href="{lien_premier}" title="premi&egrave;re page">premi&egrave;re page</a> |
208
+ <!-- END: premier -->
209
+ <!-- BEGIN: precedent -->
210
+ <a href="{lien_precedent}" title="page pr&eacute;c&eacute;dente">page pr&eacute;c&eacute;dente</a> |
211
+ <!-- END: precedent -->
212
+ <!-- BEGIN: pages -->
213
+ <a href="{lien_page}">{page}</a>
214
+ <!-- END: pages -->
215
+ <!-- BEGIN: suivant -->
216
+ | <a href="{lien_suivant}" title="page suivante">page suivante</a>
217
+ <!-- END: suivant -->
218
+ <!-- BEGIN: dernier -->
219
+ | <a href="{lien_dernier}" title="derni&egrave;re page">derni&egrave;re page</a>
220
+ <!-- END: dernier -->
221
+ <!--
222
+ <br />
223
+ page {num_page} sur {nb_pages} <br />
224
+ ({nb_resultats} billets trouvés)
225
+ -->
226
+ </div>
227
+ <!-- END: nav2 -->
228
+ <!-- END:main -->
229
+ ```
230
+ ### Arborescence des blocs
231
+
232
+ ```
233
+ └── main // Bloc racine tout le temps affiché.
234
+ ├── intitule // Ne s'affiche que si l'intitulé du widget est rempli.
235
+ ├── billet // Le contenu du bloc s'affiche pour chaque billet.
236
+ │ ├── resume_texte1 // Le contenu du bloc ne s'affiche que si le resume_texte1 du billet n'est pas vide.
237
+ │ ├── resume_texte2 // Le contenu du bloc ne s'affiche que si le resume_texte2 du billet n'est pas vide.
238
+ │ ├── titre // Le contenu du bloc ne s'affiche que si le titre du billet n'est pas vide.
239
+ │ ├── sstitre // Le contenu du bloc ne s'affiche que si le sous-titre du billet n'est pas vide.
240
+ │ ├── texte1 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
241
+ │ ├── texte2 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
242
+ │ ├── texte3 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
243
+ │ ├── texte4 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
244
+ │ ├── texte5 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
245
+ │ ├── texte6 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
246
+ │ ├── texte7 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
247
+ │ ├── texte8 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
248
+ │ ├── texte9 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
249
+ │ ├── texte10 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
250
+ │ ├── texte11 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
251
+ │ ├── texte12 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
252
+ │ ├── texte13 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
253
+ │ ├── texte14 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
254
+ │ └── texte15 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
255
+ └── nobillet // Le contenu du bloc s'affiche s'il n'y a aucun billet à afficher.
256
+ ```
257
+ ### Balises
258
+
259
+ Bloc|Balise|Description
260
+ ---|---|---
261
+ | main | serial | Identifiant unique du widget dans la page. Permet d'identifier de manière unique le widget dans la page. |
262
+ | main | widget_modele | Nom du modèle utilisé par le widget (vide pour le modèle de base). |
263
+ | main | widget_page_optim | Nom optimisé de la page dont le contenu doit être affiché. Affiche "all" si le widget affiche les billets de toutes les pages. |
264
+ | main | widget_inclus | Affiche 1 si le contenu des sous-pages de la page choisie sont inclus. 0 dans le cs contraire |
265
+ | main | widget_groupe | Affiche le critère de restriction d'affichage à un groupe |
266
+ | main | widget_order_api | Critère de tri appliqués à l'API Front-office |
267
+ | main | widget_limit | Nombre maximum d'éléments affichés |
268
+ | main | widget_resume | Longueur maximale des résumés |
269
+ | main | widget_afficher_navigation | Affiche 1 si la navigation est affichée, 0 si elle est masquée |
270
+ | intitule | intitule | Cet intitulé est paramétrable lors de l'édition d'un widget dans la gestion de l'Apparence de la Console d'administration de Kiubi. |
271
+ | billet | accueil | Affiche 1 si la page libre du billet est la page d'accueil, sinon affiche 0. |
272
+ | billet | lien_billet | URL spéciale vers la page libre du billet. Les widgets "Contenu de la page libre" de la page libre du billet qui peuvent afficher ce billet n'afficherons que ce billet là, et tous les autres widgets fonctionneront normalement. |
273
+ | billet | lien_page | URL vers la page libre du billet. |
274
+ | billet | type_billet | Type du billet. Affiche le nom du répertoire du billet dans l'espace FTP. |
275
+ | billet | titre | Titre du billet. |
276
+ | billet | sstitre | Sous-titre du billet. |
277
+ | billet | texte1 à texte15 | Affiche le contenu des champs texte1 à texte15. |
278
+ | billet | groupe_billet | Groupe du billet. |
279
+ | billet | intitule_page | Intitulé de la page libre du billet. |
280
+ | billet | nom_optim | Nom optimisé de la page libre du billet. |
281
+ | billet | compteur | La balise affichera un compteur commençant à 1 et qui sera incrémenté de 1 à chaque fois. |
282
+ | billet | alterne | La balise affichera alternativement 1 ou 2. |
283
+ | billet | alterne_3 | La balise affichera alternativement 1,2 ou 3. |
284
+ | billet | alterne_4 | La balise affichera alternativement 1,2,3 ou 4. |
285
+ | billet | alterne_5 | La balise affichera alternativement 1,2,3,4 ou 5. |
286
+ | billet | resume_texte1 | Version tronquée du contenu du champ texte1. Configurable dans le widget. |
287
+ | billet | resume_texte2 | Version tronquée du contenu du champ texte2. Configurable dans le widget. |
288
+
289
+
290
+ ## Widget Site web / Liste de billets
291
+
292
+ **Ce widget affiche uniquement les billets d'une page libre tout en conservant le modèle de mise en page propre à chaque billet.**
293
+
294
+ Pour plus d'informations sur les modèles de mise en page des billets, voir la section [les types de billets](generalites.html#bloc2).
295
+
296
+ **L'apparence du widget « Liste de billets » sera donc déterminée par les différents modèles de mise en page des différents types de billets affichés.**
297
+
298
+ ### Template
299
+
300
+ Le template du widget : `theme/fr/widgets/site_web/contenu_page_libre/index.html`. Exemple :
301
+
302
+ ```html
303
+ <!-- BEGIN: main -->
304
+
305
+ {liste_billets}
306
+
307
+ <!-- BEGIN: nav2 -->
308
+ <div>
309
+
310
+ <!-- BEGIN: premier -->
311
+ <a href="{lien_premier}" title="premi&egrave;re page">premi&egrave;re page</a> |
312
+ <!-- END: premier -->
313
+
314
+ <!-- BEGIN: precedent -->
315
+ <a href="{lien_precedent}" title="page pr&eacute;c&eacute;dente">page pr&eacute;c&eacute;dente</a> |
316
+ <!-- END: precedent -->
317
+
318
+ <!-- BEGIN: pages -->
319
+ <a href="{lien_page}">{page}</a>
320
+ <!-- END: pages -->
321
+
322
+ <!-- BEGIN: suivant -->
323
+ | <a href="{lien_suivant}" title="page suivante">page suivante</a>
324
+ <!-- END: suivant -->
325
+
326
+ <!-- BEGIN: dernier -->
327
+ | <a href="{lien_dernier}" title="derni&egrave;re page">derni&egrave;re page</a>
328
+ <!-- END: dernier -->
329
+ </div>
330
+ <!-- END: nav2 -->
331
+
332
+ <!-- END: main -->
333
+ ```
334
+ ### Arborescence des blocs
335
+
336
+ ```
337
+ └── main // Bloc racine tout le temps affiché
338
+ └── nobillet // Le contenu du bloc s'affiche s'il n'y a aucun billet à afficher.
339
+ ```
340
+ ### Balises
341
+
342
+ Bloc|Balise|Description
343
+ ---|---|---
344
+ | main | liste_billets | Affiche la liste des billets, c'est à dire le contenu d'une page libre du Site web. |
345
+ | main | serial | Identifiant unique du widget dans la page. Permet d'identifier de manière unique le widget dans la page. |
346
+ | main | widget_modele | Nom du modèle utilisé par le widget (vide pour le modèle de base). |
347
+ | main | widget_page_optim | Nom optimisé de la page dont le contenu doit être affiché. Affiche "all" si le widget affiche les billets de toutes les pages. |
348
+ | main | widget_inclus | Affiche 1 si le contenu des sous-pages de la page choisie sont inclus. 0 dans le cs contraire |
349
+ | main | widget_groupe | Affiche le critère de restriction d'affichage aux groupes |
350
+ | main | widget_order_api | Critère de tri appliqués à l'API Front-office |
351
+ | main | widget_limit | Nombre maximum d'éléments affichés |
352
+ | main | widget_afficher_navigation | Affiche 1 si la navigation est affichée, 0 si elle est masquée |
353
+
354
+
355
+ ## Widget Site web / Liste des billets : Type de billet
356
+
357
+ **Mise en forme d'un type de billet**
358
+
359
+
360
+ ### Template
361
+
362
+ Le template du widget : `theme/fr/billets/post_simple/index.html`. Exemple :
363
+
364
+ ```html
365
+ <!-- BEGIN: main -->
366
+ <!-- BEGIN: titre --><h1>{titre}</h1><!-- END: titre -->
367
+ <!-- BEGIN: sstitre --><h2>{sstitre}</h2><!-- END: sstitre -->
368
+ <!-- BEGIN: texte1 -->{texte1}<!-- END: texte1 -->
369
+ <!-- END: main -->
370
+ ```
371
+ ### Arborescence des blocs
372
+
373
+ ```
374
+ └── main // Bloc racine tout le temps affiché
375
+ ├── titre // Le contenu du bloc ne s'affiche que si le titre du billet n'est pas vide.
376
+ ├── sstitre // Le contenu du bloc ne s'affiche que si le sous-titre du billet n'est pas vide.
377
+ ├── texte1 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
378
+ ├── texte2 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
379
+ ├── texte3 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
380
+ ├── texte4 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
381
+ ├── texte5 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
382
+ ├── texte6 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
383
+ ├── texte7 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
384
+ ├── texte8 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
385
+ ├── texte9 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
386
+ ├── texte10 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
387
+ ├── texte11 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
388
+ ├── texte12 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
389
+ ├── texte13 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
390
+ ├── texte14 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
391
+ └── texte15 // Les contenus des blocs ne s'affichent que si les contenus des champs textes correspondants ne sont pas vides.
392
+ ```
393
+ ### Balises
394
+
395
+ Bloc|Balise|Description
396
+ ---|---|---
397
+ | main | type_billet | Type du billet : affiche le nom du répertoire du billet dans l'espace FTP. |
398
+ | main | titre | Titre du billet. |
399
+ | main | sstitre | Sous-titre du billet. |
400
+ | main | texte1 à texte15 | Affiche les champs texte1 à texte15. |
401
+ | main | groupe_billet | Groupe du billet. |
402
+ | main | intitule_page | Intitulé de la page libre dans laquelle se trouve le billet. |
403
+ | main | nom_optim | Nom optimisé de la page libre du billet (c'est à dire la dernière partie de l'URL de la page), tel qu'il est défini dans les options avancées de la page d'édition de la page libre. |
404
+ | main | lien_page | URL vers la page libre dans laquelle se trouve le billet. |
405
+ | main | lien_billet | URL un peu spéciale vers la page libre du billet. Les widgets "Contenu de la page libre" de la page libre du billet qui peuvent afficher ce billet n'afficheront que ce billet là, et tous les autres widgets fonctionneront normalement. C'est très utile pour faire des pages de listing et de détail. |
406
+ | main | compteur | La balise affichera un compteur commençant à 1 et qui sera incrémenté de 1 à chaque fois. |
407
+ | main | alterne | La balise affichera alternativement 1 ou 2. Il est préférable d'utiliser le filtre `{compteur|alternate}`. |
408
+ | main | alterne_3 | La balise affichera alternativement 1,2 ou 3. Il est préférable d'utiliser le filtre `{compteur|alternate|3}`. |
409
+ | main | alterne_4 | La balise affichera alternativement 1,2,3 ou 4. Il est préférable d'utiliser le filtre `{compteur|alternate|4}`. |
410
+ | main | alterne_5 | La balise affichera alternativement 1,2,3,4 ou 5. Il est préférable d'utiliser le filtre `{compteur|alternate|5}`. |
411
+ | main | serial | Identifiant unique du widget dans la page. Permet d'identifier de manière unique le widget dans la page. |
412
+ | main | widget_page_optim | Nom optimisé de la page dont le contenu doit être affiché. Affiche "all" si le widget affiche les billets de toutes les pages. |
413
+ | main | widget_inclus | Affiche 1 si le contenu des sous-pages de la page choisie sont inclus. 0 dans le cs contraire |
414
+ | main | widget_groupe | Affiche le critère de restriction d'affichage aux groupes |
415
+ | main | widget_order_api | Critère de tri appliqués à l'API Front-office |
416
+ | main | widget_limit | Nombre maximum d'éléments affichés |
417
+ | main | widget_afficher_navigation | Affiche 1 si la navigation est affichée, 0 si elle est masquée |
418
+
419
+
420
+ ## Widget Site web / Menu Horizontal
421
+
422
+ **Affiche un menu de navigation du Site web de manière horizontale.**
423
+
424
+
425
+ ### Template
426
+
427
+ Le template du widget : `theme/fr/widgets/site_web/menu_h/index.html`. Exemple :
428
+
429
+ ```html
430
+ <!-- BEGIN: main -->
431
+ <!-- BEGIN: menu -->
432
+
433
+
434
+ <ul>
435
+ <!-- BEGIN: pagetype --><li><!-- BEGIN: page --><a href="{lien}" title="{page|htmlentities}" target="{cible}">{page}</a><!-- END: page --><!-- BEGIN: spacer -->{page}<!-- END: spacer --></li><!-- END: pagetype -->
436
+ </ul>
437
+
438
+ <!-- END: menu -->
439
+ <!-- BEGIN: nomenu -->
440
+ <!-- END: nomenu -->
441
+ <!-- END: main -->
442
+ ```
443
+ ### Arborescence des blocs
444
+
445
+ ```
446
+ └── main // Bloc racine tout le temps affiché.
447
+ ├── menu // Le contenu du bloc s'affiche s'il y a des pages à afficher dans ce menu.
448
+ │ └── pagetype // Le contenu du bloc s'affiche pour chaque page du menu.
449
+ │ ├── spacer // Le contenu du bloc s'affiche si l'élément à afficher est un séparateur. C'est dans ce bloc qu'on utilise généralement les balises de ce widget.
450
+ │ └── page // Le contenu du bloc s'affiche si l'élément à afficher est une page (tout sauf un séparateur). C'est dans ce bloc qu'on utilise généralement les balises de ce widget.
451
+ │ ├── lien_image // Le contenu du bloc s'affiche si la page est une lien interne et qu'il dispose d'une image
452
+ │ ├── lien_description // Le contenu du bloc s'affiche si la page est une lien interne et qu'il dispose d'une description
453
+ │ ├── lien_extra // Le contenu du bloc s'affiche si la page est une lien interne et qu'il dispose d'informations complémentaires
454
+ │ ├── lien_attributs // Le contenu du bloc s'affiche si la page est une lien interne et qu'il dispose d'attributs
455
+ │ └── illustration // Le contenu du bloc s'affiche si la page a une illustration (lien interne vers une catégorie du catalogue).
456
+ └── nomenu // Le contenu du bloc s'affiche s'il n'y a aucune page à afficher dans ce menu.
457
+ ```
458
+ ### Balises
459
+
460
+ Bloc|Balise|Description
461
+ ---|---|---
462
+ | main | serial | Identifiant unique du widget dans la page. Permet d'identifier de manière unique le widget dans la page. |
463
+ | main | widget_modele | Nom du modèle utilisé par le widget (vide pour le modèle de base). |
464
+ | main | widget_menu_id | Identifiant du menu à afficher |
465
+ | main | widget_niveau | Affiche le niveau de menu choisit |
466
+ | pagetype | page | Intitulé de la page. |
467
+ | pagetype | cible | Cible du lien (attribut target). |
468
+ | pagetype | actif | Affiche actif si la page est active, c'est-à-dire si l'internaute s'y trouve. Sinon n'affiche rien. |
469
+ | pagetype | lien | URL du lien vers la page correspondante. |
470
+ | pagetype | type | Type de la page. Affiche page pour une page libre, lien_ext pour un lien externe, lien_int pour un lien interne et ne renvoie aucune valeur pour un séparateur. |
471
+ | pagetype | menu_niv | Niveau de profondeur de la page du menu. Affiche 01 pour une page de niveau 1, 02 pour une page de niveau 2, 03 pour une page de niveau 3 et 04 pour une page de niveau 4. |
472
+ | page | lien_type | Si la page est un lien interne, affiche le type de cible du lien sous la forme d'un identifiant :<br /> - cms_page<br /> - contact_page<br /> - client_page<br /> - blog_accueil<br /> - blog_categorie<br /> - catalogue_accueil<br /> - catalogue_categorie<br /> - catalogue_produit |
473
+ | lien_image | url_lien_image | Affiche l'url de l'image |
474
+ | lien_image | url_lien_image_miniature | Affiche l'url de la miniature |
475
+ | lien_image | url_lien_image_vignette | Affiche l'url de la vignette |
476
+ | lien_image | url_lien_image_g_miniature | Affiche l'url de la grande miniature |
477
+ | lien_image | url_lien_image_g_vignette | Affiche l'url de la grande vignette |
478
+ | lien_description | lien_description | Affiche la description |
479
+ | lien_extra | lien_extra | Affiche les informations complémentaires |
480
+ | lien_attributs | lien_attributs | Affiche les attributs |
481
+ | illustration | illustration | Numéro de fichier dans la médiathèque de l'illustration. |
482
+ | illustration | url_illustration | Url complète de l'illustration |
483
+ | illustration | url_illustration_miniature | Url complète de la miniature de l'illustration |
484
+ | illustration | url_illustration_vignette | Url complète de la vignette de l'illustration |
485
+ | illustration | url_illustration_g_miniature | Url complète de la grande miniature de l'illustration |
486
+ | illustration | url_illustration_g_vignette | Url complète de la grande vignette de l'illustration |
487
+
488
+
489
+ ## Widget Site web / Menu Vertical
490
+
491
+ **Affiche un menu de navigation du Site web de manière verticale.**
492
+
493
+
494
+ ### Template
495
+
496
+ Le template du widget : `theme/fr/widgets/site_web/menu_v/index.html`. Exemple :
497
+
498
+ ```html
499
+ <!-- BEGIN: main -->
500
+ <!-- BEGIN: menu -->
501
+
502
+ <!-- BEGIN:intitule -->
503
+ <h1>{intitule}</h1>
504
+ <!-- END:intitule -->
505
+
506
+
507
+ <div>
508
+
509
+ <!-- BEGIN: niveau --><ul>
510
+ <!-- BEGIN: pagetype -->
511
+
512
+ <!-- BEGIN: page --><li> <a href="{lien}" target="{cible}">{page}</a> <!-- END: page --> <!-- BEGIN:sspage -->
513
+ {sspage}
514
+ <!-- END:sspage -->
515
+
516
+
517
+ <!-- END: pagetype --> </li>
518
+ </ul><!-- END: niveau -->
519
+
520
+ </div>
521
+
522
+
523
+ <!-- END: menu -->
524
+ <!-- BEGIN: nomenu -->
525
+ <!-- END: nomenu -->
526
+ <!-- END: main -->
527
+ ```
528
+ ### Arborescence des blocs
529
+
530
+ ```
531
+ └── main // Bloc racine tout le temps affiché.
532
+ ├── intitule // Ne s'affiche que si l'intitulé du widget est rempli.
533
+ ├── menu // Le contenu du bloc s'affiche s'il y a des pages à afficher dans ce menu.
534
+ │ └── niveau // Le contenu du bloc est recopié pour chaque niveau d'arborescence
535
+ │ └── pagetype // Le contenu du bloc s'affiche pour chaque page du menu.
536
+ │ ├── sspage // Le bloc s'affiche s'il y a des pages d'un niveau inférieur.
537
+ │ ├── spacer // Le contenu du bloc s'affiche si l'élément à afficher est un séparateur. C'est dans ce bloc qu'on utilise généralement les balises de ce widget.
538
+ │ └── page // Le contenu du bloc s'affiche si l'élément à afficher est une page (tout sauf un séparateur). C'est dans ce bloc qu'on utilise généralement les balises de ce widget.
539
+ │ ├── lien_image // Le contenu du bloc s'affiche si la page est une lien interne et qu'il dispose d'une image
540
+ │ ├── lien_description // Le contenu du bloc s'affiche si la page est une lien interne et qu'il dispose d'une description
541
+ │ ├── lien_extra // Le contenu du bloc s'affiche si la page est une lien interne et qu'il dispose d'informations complémentaires
542
+ │ ├── lien_attributs // Le contenu du bloc s'affiche si la page est une lien interne et qu'il dispose d'attributs
543
+ │ └── illustration // Le contenu du bloc s'affiche si la page a une illustration (lien interne vers une catégorie du catalogue exclusivement).
544
+ └── nomenu // Le contenu du bloc s'affiche s'il n'y a aucune page à afficher dans ce menu.
545
+ ```
546
+ ### Balises
547
+
548
+ Bloc|Balise|Description
549
+ ---|---|---
550
+ | main | serial | Identifiant unique du widget dans la page. Permet d'identifier de manière unique le widget dans la page. |
551
+ | main | widget_modele | Nom du modèle utilisé par le widget (vide pour le modèle de base). |
552
+ | main | widget_menu_id | Identifiant du menu à afficher |
553
+ | main | widget_niveaux | Affiche les niveaux choisit séparés par des virgules (ex : "1,2,3") |
554
+ | main | widget_deployer | Affiche 1 si le menu est déployé. 0 dans le cas contraire. |
555
+ | intitule | intitule | Cet intitulé est paramétrable lors de l'édition d'un widget dans la gestion de l'Apparence de la Console d'administration de Kiubi. |
556
+ | pagetype | menu_niv | Niveau de profondeur de la page du menu. Affiche 01 pour une page de niveau 1, 02 pour une page de niveau 2, 03 pour une page de niveau 3 et 04 pour une page de niveau 4. |
557
+ | pagetype | page | Intitulé de la page. |
558
+ | pagetype | type | Type de la page. Affiche page pour une page libre, lien_ext pour un lien externe, lien_int pour un lien interne et ne renvoie aucune valeur pour un séparateur. |
559
+ | pagetype | cible | Cible du lien (attribut target). |
560
+ | pagetype | actif | Affiche actif si la page est active. Sinon n'affiche rien. |
561
+ | pagetype | lien | URL du lien vers la page correspondante. |
562
+ | pagetype | page_niv | Niveau de profondeur de la page du menu en fonction du niveau d'arborescence affiché.Affiche 01 pour le premier niveau d'arborescence affiché, 02 pour le deuxième niveau d'arborescence affiché, 03 pour le troisième niveau d'arborescence affiché et 04 pour le quatrième niveau d'arborescence affiché. |
563
+ | pagetype | niveau | Niveau de profondeur de la page du menu en fonction du niveau d'arborescence affiché. Affiche 1 pour le premier niveau d'arborescence affiché, 2 pour le deuxième niveau d'arborescence affiché, 3 pour le troisième niveau d'arborescence affiché et 4 pour le quatrième niveau d'arborescence affiché. |
564
+ | pagetype | page_fille | Affiche "1" si la page contient une ou plusieurs pages filles, "0" dans le cas contraire. |
565
+ | pagetype | compteur | La balise affichera un compteur commençant à 1 et qui sera incrémenté de 1 à chaque page. |
566
+ | sspage | sspage | Balise spéciale à mettre impérativement dans le bloc "pagetype" mais après les blocs "spacer" et "page". Elle permet d'afficher les différents niveaux d'arborescence les uns dans les autres. |
567
+ | page | lien_type | Si la page est un lien interne, affiche le type de cible du lien sous la forme d'un identifiant :<br /> - cms_page<br /> - contact_page<br /> - client_page<br /> - blog_accueil<br /> - blog_categorie<br /> - catalogue_accueil<br /> - catalogue_categorie<br /> - catalogue_produit |
568
+ | lien_image | url_lien_image | Affiche l'url de l'image |
569
+ | lien_image | url_lien_image_miniature | Affiche l'url de la miniature |
570
+ | lien_image | url_lien_image_vignette | Affiche l'url de la vignette |
571
+ | lien_image | url_lien_image_g_miniature | Affiche l'url de la grande miniature |
572
+ | lien_image | url_lien_image_g_vignette | Affiche l'url de la grande vignette |
573
+ | lien_description | lien_description | Affiche la description |
574
+ | lien_extra | lien_extra | Affiche les informations complémentaires |
575
+ | lien_attributs | lien_attributs | Affiche les attributs |
576
+ | illustration | illustration | Numéro de fichier dans la médiathèque de l'illustration. |
577
+ | illustration | url_illustration | Url complète de l'illustration |
578
+ | illustration | url_illustration_miniature | Url complète de la miniature de l'illustration |
579
+ | illustration | url_illustration_vignette | Url complète de la vignette de l'illustration |
580
+ | illustration | url_illustration_g_miniature | Url complète de la grande miniature de l'illustration |
581
+ | illustration | url_illustration_g_vignette | Url complète de la grande vignette de l'illustration |
582
+