@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,182 @@
1
+ # Généralités
2
+
3
+ ## Personnaliser un thème
4
+
5
+ Kiubi permet de personnaliser à 100% un site, grâce à son accès aux templates
6
+ de mise en page. Vous pourrez donc personnaliser le design d'un site.
7
+ Aucune limitation graphique particulière n'est imposée !
8
+
9
+ Kiubi vous permettent d'intégrer une ligne graphique réalisée sur mesure pour
10
+ un site Internet. Cependant, comme tout système destiné à créer des sites
11
+ professionnels et respectueux des standards du Web, concevoir un thème graphique
12
+ sur mesure requiert la maîtrise du HTM, des CSS et du Javascript, **un thème graphique
13
+ personnalisé est donc réservé aux utilisateurs expérimentés !**
14
+
15
+ ### Activer le thème graphique personnalisé
16
+
17
+ Pour créer un thème graphique personnalisé, rendez-vous dans la rubrique Thèmes graphiques de la Console
18
+ d'administration. Par défaut, un des thèmes graphiques
19
+ fournis en standard par Kiubi (appelé thème graphique par défaut) est utilisé.
20
+ Il suffit de cliquer sur le bouton <kbd class="kbd kbd-btn">Passer en thème personnalisé</kbd> et
21
+ de compléter et valider le formulaire. Dès cet instant, le thème graphique
22
+ personnalisé a été créé et initialisé à partir du thème par défaut choisi.
23
+
24
+ Vous pouvez vous connecter à votre espace FTP avec les informations fournis dans
25
+ la rubrique Thèmes graphiques pour accéder à l'intégralité des fichiers du thème graphique.
26
+ Une fois connecté à votre espace FTP, deux répertoires sont disponibles :
27
+
28
+ - le répertoire `mediatheque` : nécessaire à la Médiathèque pour y publier
29
+ des fichiers de plus de 7Mo.
30
+ - le répertoire `theme` : **contenant les fichiers de votre thème graphique
31
+ personnalisé**
32
+
33
+ ### Déclarer un thème graphique
34
+
35
+ Afin de déclarer un thème graphique personnalisé, il est indispensable de bien
36
+ configurer les fichiers suivants :
37
+
38
+ - `illustration.jpg` : Image d'illustration du thème graphique personnalisé
39
+ destinée à être affichée dans la gestion des thèmes afin d'identifier plus
40
+ facilement le thème en question. Il est recommandé d'utiliser une image de 300px
41
+ par 225px.
42
+ - `theme.xml` : Ce fichier contient des informations descriptives du thème
43
+ graphique. **Il est indispensable pour déclarer le thème graphique personnalisé.**
44
+
45
+ ### Le fichier `theme.xml`
46
+
47
+ <?xml version="1.0" encoding="iso-8859-1"?>
48
+ <theme img="illustration.jpg" intitule="Thème d'exemple" javascripts="none">
49
+ <auteur nom="Exemple" contact="contact@example.org" site="www.example.org" />
50
+ </theme>
51
+
52
+ Ce fichier contient une seule balise principale `<theme>` qui possède 5 attributs :
53
+
54
+ - `img` : nom du fichier image qui est utilisé dans la console d'administration
55
+ pour représenter ce modèle (correspond au fichier image nommé ci-dessus),
56
+ - `intitule` : intitule du thème qui est affiché dans la console
57
+ d'administration,
58
+ - `style` : le style du thème (moderne, classique, etc...),
59
+ - `version` : la version du thème qui est affiché dans la console
60
+ d'administration,
61
+ - `date` : la date de la dernière mise à jour du thème.
62
+ - `javascripts` : contrôle l'inclusion par défaut de bibliothèques
63
+ javascript dans les templates. Indiquer `kiubi` pour inclure les scripts utilisés par
64
+ les thèmes par défaut ou `none` pour désactiver cette fonctionnalité.
65
+
66
+ A l'intérieur, nous avons une seule balise `<auteur>` qui permet d'ajouter des
67
+ informations sur l'auteur du thème. Cette balise contient les attributs suivants :
68
+
69
+ - `nom` : le nom de l'auteur qui est affiché dans la console d'administration,
70
+ - `contact` : l'email de l'auteur,
71
+ - `site` : l'adresse du site internet de l'auteur.
72
+
73
+ ### L'arborescence des fichiers
74
+
75
+ L'arborescence d'un thème graphique personnalisé contenu dans le répertoire
76
+ `theme` de votre espace FTP est organisée de la sorte :
77
+
78
+ <pre class="arbo" style="overflow-x:auto;">
79
+ fr/ <b>Répertoire de langue</b>
80
+ &#x251C;&#x2500;&#x2500; assets/ <b>Répertoire des ressources</b>
81
+ &#x2502; &#x251C;&#x2500;&#x2500; css/ Chaque répertoire correspond à un type, de ressources
82
+ &#x2502; &#x251C;&#x2500;&#x2500; fonts/ hors contenu de la médiathèque
83
+ &#x2502; &#x251C;&#x2500;&#x2500; img/
84
+ &#x2502; &#x2514;&#x2500;&#x2500; js/
85
+ &#x251C;&#x2500;&#x2500; billets/ <b>Répertoire des types de billets</b>
86
+ &#x2502; &#x251C;&#x2500;&#x2500; image/ Chaque répertoire correspond à un type de billet et
87
+ &#x2502; &#x251C;&#x2500;&#x2500; jumbotron/ contient ses propres fichiers
88
+ &#x2502; &#x2514;&#x2500;&#x2500; simple/
89
+ &#x2502; &#x251C;&#x2500;&#x2500; config.xml
90
+ &#x2502; &#x251C;&#x2500;&#x2500; index.html
91
+ &#x2502; &#x2514;&#x2500;&#x2500; styles.css
92
+ &#x251C;&#x2500;&#x2500; billets_blog/ <b>Répertoire des types de billets du blog</b>
93
+ &#x2502; &#x2514;&#x2500;&#x2500; simple/
94
+ &#x2502; &#x2514;&#x2500;&#x2500; config.xml
95
+ &#x251C;&#x2500;&#x2500; compostants/ <b>Répertoire des types de composants</b>
96
+ &#x2502; &#x2514;&#x2500;&#x2500; galerie/ Chaque répertoire correspond à un type de
97
+ &#x2502; &#x251C;&#x2500;&#x2500; config.xml composant
98
+ &#x2502; &#x2514;&#x2500;&#x2500; index.html
99
+ &#x251C;&#x2500;&#x2500; includes/ <b>Répertoire des fichiers includes</b>
100
+ &#x251C;&#x2500;&#x2500; layouts/ <b>Répertoire des layouts</b>
101
+ &#x2502; &#x251C;&#x2500;&#x2500; 4_4_4.html
102
+ &#x2502; &#x251C;&#x2500;&#x2500; 4_8.html
103
+ &#x2502; &#x251C;&#x2500;&#x2500; 6_6.html
104
+ &#x2502; &#x2514;&#x2500;&#x2500; 8_4.html
105
+ &#x251C;&#x2500;&#x2500; modules/ <b>Répertoire des modules</b>
106
+ &#x2502; &#x251C;&#x2500;&#x2500; 404/ Chaque répertoire correspond à un module et contient
107
+ &#x2502; &#x251C;&#x2500;&#x2500; chemin/ ses propres fichiers
108
+ &#x2502; &#x2514;&#x2500;&#x2500; fermeture/
109
+ &#x251C;&#x2500;&#x2500; produits/ <b>Répertoire des types de produits</b>
110
+ &#x2502; &#x2514;&#x2500;&#x2500; simple/ Chaque répertoire (ici <em>simple</em>) correspond à un
111
+ &#x2502; &#x251C;&#x2500;&#x2500; config.xml type de produit et contient ses propres fichiers
112
+ &#x2502; &#x2514;&#x2500;&#x2500; index.html
113
+ &#x251C;&#x2500;&#x2500; symboles/ <b>Répertoire des modèles de symboles</b>
114
+ &#x2502; &#x2514;&#x2500;&#x2500; defaut/ Chaque répertoire correspondant à un template
115
+ &#x2502; &#x251C;&#x2500;&#x2500; desc.xml de symbole.
116
+ &#x2502; &#x251C;&#x2500;&#x2500; index.html
117
+ &#x2502; &#x2514;&#x2500;&#x2500; structure.xhtml
118
+ &#x251C;&#x2500;&#x2500; templates/ <b>Répertoire des templates principaux</b>
119
+ &#x2502; &#x251C;&#x2500;&#x2500; barre_laterale/ Chaque répertoire correspondant à un template principal
120
+ &#x2502; &#x251C;&#x2500;&#x2500; sans_barre_lateral/ du thème et contient ses propres fichiers
121
+ &#x2502; &#x2502; &#x251C;&#x2500;&#x2500; desc.xml
122
+ &#x2502; &#x2502; &#x251C;&#x2500;&#x2500; index.html
123
+ &#x2502; &#x2502; &#x251C;&#x2500;&#x2500; structure.xhtml
124
+ &#x2502; &#x2502; &#x2514;&#x2500;&#x2500; styles.css
125
+ &#x2502; &#x251C;&#x2500;&#x2500; print.css
126
+ &#x2502; &#x2514;&#x2500;&#x2500; styles.css
127
+ &#x2514;&#x2500;&#x2500; widgets/ <b>Répertoire de tous les widgets</b>
128
+ &#x251C;&#x2500;&#x2500; blog/ <b>Répertoire des widgets du service Blog</b>
129
+ &#x2502; &#x251C;&#x2500;&#x2500; archives/ Chaque widget à son propre répertoire principal et
130
+ &#x2502; &#x251C;&#x2500;&#x2500; categories contient ses propres fichiers.
131
+ &#x2502; &#x251C;&#x2500;&#x2500; derniers_billets_postes/
132
+ &#x2502; &#x251C;&#x2500;&#x2500; detail_billet/
133
+ &#x2502; &#x251C;&#x2500;&#x2500; les_plus_commentes/
134
+ &#x2502; &#x251C;&#x2500;&#x2500; liens/
135
+ &#x2502; &#x251C;&#x2500;&#x2500; liste_billets/
136
+ &#x2502; &#x251C;&#x2500;&#x2500; listes_commentaires/
137
+ &#x2502; &#x2514;&#x2500;&#x2500; poster_commentaires/
138
+ &#x251C;&#x2500;&#x2500; catalogue/ <b>Répertoire des widgets du service Catalogue</b>
139
+ &#x2502; &#x251C;&#x2500;&#x2500; categories/ Chaque widget à son propre répertoire principal et
140
+ &#x2502; &#x251C;&#x2500;&#x2500; liste_categories/ contient ses propres fichiers.
141
+ &#x2502; &#x251C;&#x2500;&#x2500; listes_commentaires/
142
+ &#x2502; &#x251C;&#x2500;&#x2500; listes_produits/
143
+ &#x2502; &#x251C;&#x2500;&#x2500; poster_commentaire/
144
+ &#x2502; &#x251C;&#x2500;&#x2500; produits_associes/
145
+ &#x2502; &#x251C;&#x2500;&#x2500; produits_egalement_achetes/
146
+ &#x2502; &#x251C;&#x2500;&#x2500; produits_plus/
147
+ &#x2502; &#x251C;&#x2500;&#x2500; produits_vedettes/
148
+ &#x2502; &#x2514;&#x2500;&#x2500; tags/
149
+ &#x251C;&#x2500;&#x2500; commandes/ <b>Répertoire des widgets du service Commandes</b>
150
+ &#x2502; &#x251C;&#x2500;&#x2500; livraison/ Chaque widget à son propre répertoire principal et
151
+ &#x2502; &#x251C;&#x2500;&#x2500; paiement/ contient ses propres fichiers.
152
+ &#x2502; &#x251C;&#x2500;&#x2500; panier/
153
+ &#x2502; &#x2514;&#x2500;&#x2500; panier_detail/
154
+ &#x251C;&#x2500;&#x2500; communication/ <b>Répertoire des widgets du service Communication</b>
155
+ &#x2502; &#x251C;&#x2500;&#x2500; contact/ Chaque widget à son propre répertoire principal et
156
+ &#x2502; &#x251C;&#x2500;&#x2500; formulaires/ contient ses propres fichiers.
157
+ &#x2502; &#x251C;&#x2500;&#x2500; newsletter/
158
+ &#x2502; &#x2514;&#x2500;&#x2500; syndication_blog/
159
+ &#x251C;&#x2500;&#x2500; compte/ <b>Répertoire des widgets du service Compte</b>
160
+ &#x2502; &#x251C;&#x2500;&#x2500; identification/ Chaque widget à son propre répertoire principal et
161
+ &#x2502; &#x251C;&#x2500;&#x2500; identification_rapide/ contient ses propres fichiers.
162
+ &#x2502; &#x251C;&#x2500;&#x2500; inscription/
163
+ &#x2502; &#x2514;&#x2500;&#x2500; tableau_bord/
164
+ &#x251C;&#x2500;&#x2500; recherche/ <b>Répertoire des widgets du service Recherche</b>
165
+ &#x2502; &#x2514;&#x2500;&#x2500; simple/ Chaque widget à son propre répertoire principal et
166
+ &#x2502; contient ses propres fichiers.
167
+ &#x2514;&#x2500;&#x2500; site_web/ <b>Répertoire des widgets du service Site Web</b>
168
+ &#x251C;&#x2500;&#x2500; bloc_extrait/ Chaque widget à son propre répertoire principal et
169
+ &#x2502; &#x251C;&#x2500;&#x2500; avec_lien_vers_page/ contient ses propres fichiers.
170
+ &#x2502; &#x251C;&#x2500;&#x2500; sans_image/
171
+ &#x2502; &#x251C;&#x2500;&#x2500; slideshow/ Chaque widget peut avoir plusieurs templates secondaires
172
+ &#x2502; &#x251C;&#x2500;&#x2500; index.html différents (ici : avec_lien_vers_page, sans_image et
173
+ &#x2502; &#x2514;&#x2500;&#x2500; styles.css slideshow) contenant leurs propres fichiers correspondant
174
+ &#x251C;&#x2500;&#x2500; contenu_page_libre/ chacun à un sous-répertoire du répertoire principal
175
+ &#x251C;&#x2500;&#x2500; menu_h/ du widget
176
+ &#x2514;&#x2500;&#x2500; menu_v/
177
+ illustration.jpg <b>Fichier de description et de déclaration du thème</b>
178
+ theme.xml Ces fichiers définissent les informations affichées dans la
179
+ gestion des thèmes de la console d'administration.
180
+ </pre>
181
+
182
+
@@ -0,0 +1,220 @@
1
+ ## Templates principaux
2
+
3
+ Les templates principaux constituent les squelettes du site
4
+ dans lesquels vont s'intégrer les Widgets. Chaque template
5
+ contient **une structure HTML complète** qui lui est propre, des feuilles de styles,
6
+ des codes javascripts, etc. et également **la position de chaque zone où vont se
7
+ placer les Widgets**.
8
+
9
+ Chaque template peut être utilisé pour configurer une page type dans la rubrique Mises en page de la console d'administration.
10
+ Il est donc possible d'utiliser plusieurs templates différents pour personnaliser un site Internet et cela page par page, si nécessaire.
11
+
12
+ **Si vous utilisez un thème graphique personnalisé, vous pouvez modifier et créer de nouveaux templates.**
13
+
14
+ ### Paramètres d'un template
15
+
16
+ Une fois connecté à votre espace FTP, tous les templates sont
17
+ regroupés dans le répertoire `theme/fr/templates/`. Chacun de ces sous-
18
+ répertoires est un template. Un template contient les fichiers
19
+ suivants :
20
+
21
+ - `desc.xml` : permet de décrire le template et déclarer les
22
+ zones. **Ce fichier est obligatoire**
23
+ - `index.html` : contient le code HTML du template. **Ce fichier
24
+ est obligatoire**
25
+ - `structure.xhtml` : permet de définir la structure du template
26
+ utilisée dans l'édition d'une page type. Ce fichier n'a aucun lien avec le rendu
27
+ du site internet et n'est utilisé que pour la console d'administration. **Ce
28
+ fichier est obligatoire**
29
+
30
+ D'autres fichier facultatifs peuvent être présents dans le répertoire `theme/fr/templates/`,
31
+ comme par exemples :
32
+
33
+ - `apple-touch-icon.png`
34
+ - `favicon.ico`
35
+ - `favicon.png`
36
+
37
+ ### Le fichier `desc.xml`
38
+
39
+ Ce fichier contient des informations descriptives du template. Il
40
+ permet principalement de déclarer les zones du template dans lesquelles pourront
41
+ être insérés des Widgets.
42
+
43
+ #### Exemple de code source
44
+
45
+ <?xml version="1.0" encoding="iso-8859-1"?>
46
+ <modele intitule="Modèle par défaut">
47
+ <zones defaut="contenu">
48
+ <zone id="entete" colmax="1" intitule="Entete" defaut="1"/>
49
+ <zone id="menu" colmax="1" intitule="Menu" defaut="1"/>
50
+ <zone id="sidebar" colmax="1" intitule="Barre latérale" defaut="1" type="contenu"/>
51
+ <zone id="contenu" colmax="3" intitule="Contenu" defaut="1" type="contenu"/>
52
+ <zone id="piedepage" colmax="3" intitule="Pied de page" defaut="1"/>
53
+ </zones>
54
+ </modele>
55
+
56
+ #### Description
57
+
58
+ Ce fichier contient une seule balise principale `<modele>` qui possède 2 attributs :
59
+
60
+ - `intitule` : intitule du template qui est utilisé dans la
61
+ console d'administration
62
+ - `img` (déprécié) : nom du fichier image qui était utilisé dans la console d'administration
63
+ pour représenter ce template.
64
+
65
+ A l'intérieur, nous avons une seule balise `<zones>` qui contient tout un ensemble
66
+ de balises `<zone>`. L'attribut `defaut` permet de désigner la zone dans laquelle
67
+ seroont placés par défaut tous les contenus ajoutés dans la page. La zone désignée est
68
+ alors automatiquement considérée comme étant de type "contenu".
69
+
70
+ La balise `<zone>` sert à déclarer une zone où vont pouvoir
71
+ être inséré les Widgets. **L'id des zones devra être repris dans les fichiers
72
+ `structure.xhtml` et `index.html`.**
73
+
74
+ Elles contiennent les attributs suivants :
75
+
76
+ - `id` : code alphanumérique qui sera réutilisé pour identifié la zone dans les
77
+ fichiers `index.html` et `structure.xhtml`.
78
+ - `colmax` : nombre maximum de colonnes des blocs de présentation qui peuvent
79
+ être insérés dans cette zone (de 1 à 3). Les colonnes correspondant sont gérées
80
+ via les fichiers du répertoire `theme/fr/layouts/`
81
+ - `intitule` : intitulé de la zone qui sera repris dans la console
82
+ d'administration dans l'édition d'une page type.
83
+ - `defaut` : nombre de colonnes des blocs de présentation insérées par défaut
84
+ dans la zone.
85
+ - `type` : si la valeur est "contenu", la zone pourra accepter des billets, symboles et
86
+ composants dans la console d'administration.
87
+
88
+ ### Le fichier `structure.xhml`
89
+
90
+ Ce fichier est une représentation schématique de la disposition des zones dans
91
+ le template (les zones déclarées dans le fichier `desc.xml`).
92
+ Il est utilisé pour générer la page d'édition d'une page type dans la console
93
+ d'administration. Il n'est en aucun cas utilisé pour effectuer un rendu du site
94
+ Internet.
95
+
96
+ #### Exemple de code source
97
+
98
+ <table>
99
+ <tr>
100
+ <td colspan="2">{entete}</td>
101
+ </tr>
102
+ <tr>
103
+ <td colspan="2">{menu}</td>
104
+ </tr>
105
+ <tr>
106
+ <td width="30%">{sidebar}</td>
107
+ <td>{contenu}</td>
108
+ </tr>
109
+ <tr>
110
+ <td colspan="2">{piedepage}</td>
111
+ </tr>
112
+ </table>
113
+
114
+ #### Description
115
+
116
+ Les zones sont appelées directement en mettant leurs ID entre accolade.
117
+
118
+ **Il est obligatoire d'utiliser un code HTML simple, sans script ni style. Seules les balises TABLE, TD et TR sont autorisées.**
119
+
120
+ ### Le fichier `index.html`
121
+
122
+ Alors que le fichier `structure.xhtml` est une vue abstraite de la page
123
+ utilisée seulement dans la console d'administration, le fichier `index.html`
124
+ contient le code HTML concret du template qui sera affiché dans le
125
+ site Internet.
126
+
127
+ #### Exemple de code source
128
+
129
+ ```
130
+ <!-- BEGIN:main -->
131
+ <!DOCTYPE html>
132
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
133
+ <head>
134
+ <title>{title}</title>
135
+ <meta name="description" content="{metaDescription}" />
136
+ <meta name="keywords" content="{metaKeywords}" />
137
+ {metaRobots}
138
+ {metaCanonical}
139
+ <!-- Charges les scripts des Options avancées du Back-office -->
140
+ {js_head}
141
+ </head>
142
+ <body>
143
+
144
+ <!-- BEGIN:logo_site -->
145
+ <h1>
146
+ <a href="{racine}/" title="{accroche_site} - Retour &agrave; l'accueil">
147
+ <img src="{racine}/media/{logo_site}" alt="{accroche_site|htmlentities}" />
148
+ </a>
149
+ </h1>
150
+ <!-- END:logo_site -->
151
+
152
+ <!-- BEGIN:accroche_site-->
153
+ <h2><a href="{racine}/" title="{accroche_site|htmlentities}">{accroche_site}</a></h2>
154
+ <!-- END:accroche_site-->
155
+
156
+ <!-- BEGIN:desc_site-->
157
+ <h3>{desc_site}</h3>
158
+ <!-- END:desc_site-->
159
+
160
+ <div>{ZONE.menu}</div>
161
+ <div>{ZONE.contenu}</div>
162
+ <div>{ZONE.piedepage}</div>
163
+
164
+ <!-- Charges les scripts des Options avancées du Back-office -->
165
+ {js_body}
166
+ </body>
167
+ </html>
168
+ <!-- END:main -->
169
+ ```
170
+
171
+
172
+ #### Description
173
+
174
+ Les balises `{ZONE.*}` servent à indiquer où insérer les Widgets. Les noms des
175
+ zones sont déclarés dans le fichier `desc.xml`.
176
+
177
+ #### Balises disponibles
178
+
179
+
180
+ |Balise|Description|
181
+ |---|---|
182
+ | `{metaCanonical}` | Insère la balise `<meta name="canonical">` correspondant à l'url canonique de la page courante |
183
+ | `{metaRobots}` | Insère la balise de désindexation automatique des pages sans valeur sémantique comme les résultats de recherche ou les paginations `<meta name="robots" content="noindex, follow">`. |
184
+ | `{title}` | Insère le titre de la page `<title>`. A configurer dans "Mon compte / Préférences / Metas par défaut" ou dans les options avancées de la page. |
185
+ | `{metaKeywords}` | Insère les mots clés de la page `<meta keywords>`. A configurer dans "Mon compte / Préférences / Metas par défaut" ou dans les options avancées de la page. |
186
+ | `{metaDescription}` | Insère la description de la page `<meta description>`. A configurer dans "Mon compte / Préférences / Metas par défaut" ou dans les options avancées de la page. |
187
+ | `{modele}` | Affiche le nom du répertoire du modèle de mise en page utilisé. |
188
+ | `{service}` | Affiche le code du service en cours. Cette balise sert, par exemple, au moteur de recherche pour qu'il fasse des recherches dans le service en cours.<br />Affiche cms si le service en cours est le Site web, Contact et Gestion de compte.<br />Affiche blog si le service en cours est le Blog.<br />Affiche catalogue si le service en cours est le Catalogue et E-commerce (Commandes). |
189
+ | `{js_head}` | Insère du javascript destiné à être exécuté dans la balise `<head>` de la page. A configurer dans "Mon compte / Préférences / Metas par défaut" ou dans les options avancées de la page. |
190
+ | `{js_body}` | Insère du javascript destiné à être exécuté juste avant la fermeture de la balise `<body>` de la page. A configurer dans "Mon compte / Préférences / Metas par défaut" ou dans les options avancées de la page. |
191
+ | `{Stylesheet}` | Insère les feuilles de styles des Widgets et des modules, si besoin. |
192
+ | `{Javascripts}` | Insère les javascripts nécessaires au bon fonctionnement de Kiubi avec d'anciens thèmes par défaut de Kiubi |
193
+ | `{ZONE.xxx}` | Insère les Widgets de la zone "xxx" telle qu'ils ont été configurés dans l'édition d'une page type. Les noms (identifiants) des zones sont définis dans le fichier "structure.xhtml" propre au modèle de mise en page. |
194
+
195
+
196
+
197
+ <!-- BEGIN:accroche_site--> <!-- END:accroche_site-->
198
+
199
+ Le bloc s'affiche si l'option "Afficher le nom" est activée dans
200
+ le Bloc-marque des Préférences du site.
201
+
202
+ <!-- BEGIN:desc_site--> <!-- END:desc_site-->
203
+
204
+ Le bloc s'affiche si l'option "Afficher la signature" est activée dans
205
+ le Bloc-marque des Préférences du site.
206
+
207
+ <!-- BEGIN:logo_site--> <!-- END:logo_site-->
208
+
209
+ Le bloc s'affiche si l'option "Afficher le logo" est activée dans
210
+ le Bloc-marque des Préférences du site.
211
+
212
+ ### Ajouter un nouveau template
213
+
214
+ Pour ajouter un nouveau template, il suffit de créer un nouveau
215
+ sous-répertoire au répertoire `theme/fr/templates/` et d'y copier tous les
216
+ fichiers correspondant à votre nouveau template. Le nouveau template sera alors
217
+ automatiquement proposé dans l'édition d'une page type de la
218
+ console d'administration.
219
+
220
+
@@ -0,0 +1,139 @@
1
+ ## Widgets
2
+
3
+ Les Widgets de Kiubi forment la base des différents modules fonctionnels qui
4
+ composent le site Internet. Dans la gestion de la Mise en page, chaque Widget peut
5
+ être glissé/déposé dans une zone d'une page type et configuré selon un certain
6
+ nombre de paramètres qui lui sont propres. **Afficher un menu, une liste de
7
+ produits ou même un formulaire de contact, tout ceci est possible grâce aux
8
+ Widgets**.
9
+
10
+ Le guide du Webdesigner décrit et explique en
11
+ détail les différents paramètres et configurations possibles pour tous les
12
+ Widgets. De plus, vous y trouverez toutes les balises disponibles dans les templates des Widgets
13
+ et dans quelles conditions les utiliser. **La compréhension de ces différentes
14
+ informations (template + balise + paramètre + configuration) vous permettra de
15
+ personnaliser l'intégralité des Widgets de Kiubi.**
16
+
17
+ ### Listes des Widgets
18
+
19
+ Les widgets sont classés selon leur service et leur type :
20
+
21
+ ##### Site Web
22
+
23
+ - [Contenu d'une page](/design-site-web.html#contenus-d-une-page) <span class="badge badge-primary ml-1">Nouveau</span>
24
+ - [Symbole](/design-site-web.html#symbole) <span class="badge badge-primary ml-1">Nouveau</span>
25
+ - [Bloc d'extraits](/design-site-web.html#bloc-d-extrait)
26
+ - [Menu horizontal](/design-site-web.html#menu-horizontal)
27
+ - [Menu vertical](/design-site-web.html#menu-vertical)
28
+ - [Liste des billets](/design-site-web.html#liste-de-billets) (Anciennement Contenu d'une page libre) <span class="badge badge-secondary ml-1">Déprécié</span>
29
+
30
+ ##### Blog
31
+
32
+ - [Derniers billets postés](/design-blog.html#derniers-billets-postes)
33
+ - [Détail d'un billet](/design-blog.html#detail-billet)
34
+ - [Billets les plus commentés](/design-blog.html#billets-les-plus-commentes)
35
+ - [Liens](/design-blog.html#liens)
36
+ - [Liste des billets](/design-blog.html#liste-des-billets)
37
+ - [Liste des commentaires](/design-blog.html#liste-des-commentaires)
38
+ - [Poster un commentaire](/design-blog.html#poster-un-commentaire)
39
+ - [Archives](/design-blog.html#archives)
40
+ - [Catégories](/design-blog.html#categories)
41
+ - [Derniers commentaires postés](/design-blog.html#derniers-commentaires-postes)
42
+
43
+ ##### Catalogue
44
+
45
+ - [Catégories](/design-catalogue.html#categories)
46
+ - [Tags](/design-catalogue.html#tags)
47
+ - [Liste des catégories](/design-catalogue.html#liste-des-categories)
48
+ - [Liste des produits](/design-catalogue.html#liste-des-produits)
49
+ - [Détail d'un produit](/design-catalogue.html#detail-d-un-produit)
50
+ - [Poster un commentaire](/design-catalogue.html#poster-un-commentaire)
51
+ - [Liste des commentaires](/design-catalogue.html#liste-des-commentaires)
52
+ - [Produits vedettes](/design-catalogue.html#produits-vedettes)
53
+ - [Produits les plus](/design-catalogue.html#produits-les-plus)
54
+ - [Produits également achetés](/design-catalogue.html#produits-egalement-achetes)
55
+ - [Produits associés](/design-catalogue.html#produits-associes)
56
+
57
+ ##### Commandes
58
+
59
+ - [Panier](/design-commandes.html#panier)
60
+ - [Détail du panier](/design-commandes.html#detail-du-panier)
61
+ - [Livraison](/design-commandes.html#livraison)
62
+ - [Paiement](/design-commandes.html#paiement)
63
+ - [Validation](/design-commandes.html#validation)
64
+
65
+ ##### Gestion de compte
66
+
67
+ - [Identification rapide](/design-comptes.html#identification-rapide)
68
+ - [Identification](/design-comptes.html#identification)
69
+ - [Formulaire d'inscription](/design-comptes.html#formulaire-d-inscription)
70
+ - [Tableau de bord](/design-comptes.html#tableau-de-bord)
71
+
72
+ ##### Modules (Communication)
73
+
74
+ - [Dismoi? (générateur de formulaires)](/design-modules.html#dismoi-)
75
+ - [Inscription à la newsletter](/design-modules.html#newsletter)
76
+ - [Syndication du blog](/design-modules.html#syndication)
77
+ - [Formulaire de contact](/design-modules.html#formulaire-de-contact)
78
+
79
+ ##### Recherche
80
+
81
+ - [Recherche simple](/recherche.html#recherche-simple)
82
+
83
+ ##### Boite à outils
84
+
85
+ Ces Widgets permettent de faire de l'inclusion de code et n'ont donc ni de configuration, ni de modèle graphique qui leurs sont propres.
86
+
87
+ - Fragment de code : le code (HTML, CSS, JS, etc.) est éditable dans les paramètres du widget et directement ajouté dans une mise en page, à la position du widget
88
+ - Fragment de template : le widget liste les fichiers includes disponibles dans le répertoire `theme/fr/includes/` et sont directement ajoutés dans une mise en page, à la position du widget
89
+
90
+ ### Personnalisé un Widget
91
+
92
+ Chaque Widget de Kiubi peut être personnalisé de deux manières différentes :
93
+
94
+ - Dans tous les cas, en modifiant ses paramètres et sa configuration,
95
+ directement dans la console d'administration lors de l'édition du Widget dans la gestion de la mise en page
96
+ - Dans le cas de l'utilisation d'un thème graphique personnalisé, en modifiant
97
+ le template qui le compose.
98
+
99
+ Si vous utilisez un thème graphique personnalisé, vous pouvez éditer et modifier
100
+ le template, c'est-à-dire les fichiers HTML qui composent et
101
+ définissent l'apparence d'un Widget. Le paramétrage et la configuration d'un
102
+ Widget seront cependant toujours à faire lors de l'édition du Widget dans la
103
+ gestion de la mise en page de la console d'administration de Kiubi.
104
+
105
+ Dans votre espace FTP, tous les Widgets sont regroupés dans le répertoire
106
+ `theme/fr/widgets/` et classés dans leur propre répertoire, selon leur service
107
+ (un répertoire par Widget classé dans un répertoire par service).
108
+
109
+ Chaque répertoire principal d'un Widget contient :
110
+
111
+ - un fichier `index.html` structuré de manière différente en fonction du Widget. **Ce fichier** `index.html` **est obligatoire.**
112
+ - un fichier `styles.css` peut être ajouté au Widget afin de contrôler sa mise en forme. Ce fichier est automatiquement
113
+ chargé dans la balise `<head>` si le widget est présent dans la page. **Ce fichier** `styles.css` **n'est pas obligatoire.**
114
+
115
+ ### Ajouter des templates supplémentaires à un Widget
116
+
117
+ Un même Widget peut avoir plusieurs templates, c'est-à-dire qu'il peut
118
+ avoir plusieurs apparences différentes.
119
+
120
+ Pour ajouter un templates à un Widget, il suffit de créer un sous-
121
+ répertoire au répertoire principal du Widget et d'y copier/coller le fichier
122
+ `index.html` (et `styles.css`) correspondant au Widget.
123
+
124
+ Si les deux fichiers sont présents, ce nouveau modèle graphique utilisera les
125
+ deux fichiers.
126
+
127
+ Si un seul des deux fichiers est présent, ce nouveau modèle graphique utilisera
128
+ le fichier présent et complètera par celui présent à la racine du répertoire
129
+ principal du Widget.
130
+
131
+ Il suffit de choisir ensuite le modèle graphique correspondant lors de l'édition
132
+ d'un Widget dans la gestion de la mise en page de la console d'administration de
133
+ Kiubi.
134
+
135
+ Il est donc possible, avec le même Widget, d'avoir non seulement plusieurs paramétrages possibles mais en plus, chaque
136
+ Widget peut avoir une infinité d'apparences différentes. **En fonction de son template et de ses paramètres, un même
137
+ Widget peut répondre à des usages complètement différents et donc s'adapter parfaitement à vos besoins.**
138
+
139
+
@@ -0,0 +1,45 @@
1
+ ## Blocs
2
+
3
+ Les blocs sont des portions de HTML encadrés par des codes spécifiques qui vont
4
+ pouvoir être affichés ou masqués selon le besoin, et même dupliqués. Ils se
5
+ présentent toujours de cette façon :
6
+
7
+ <!-- BEGIN:bloc --> <!-- END:bloc -->
8
+
9
+ Les blocs sont pour la plupart du temps imbriqués dans d'autres blocs. La
10
+ documentation ci-après précise toujours dans quel bloc placer tel autre bloc (ou
11
+ telle balise).
12
+ Si rien n'est précisé c'est qu'il faut au moins placer le bloc
13
+ dans le bloc `<!-- BEGIN:main -->` `<!-- END:main -->`.
14
+
15
+ Voici un exemple de blocs correctement imbriqués :
16
+
17
+ <!-- BEGIN:main -->
18
+ <!-- BEGIN:bloc -->
19
+ <!-- BEGIN:bloc2 -->
20
+ <!-- END:bloc2 -->
21
+ <!-- BEGIN:bloc3 -->
22
+ <!-- END:bloc3 -->
23
+ <!-- END:bloc -->
24
+ <!-- END:main -->
25
+ L'exemple suivant est faux et amènera à des comportements imprévisibles. **Les blocs `bloc2` et `bloc3` sont mélangés
26
+ l'un dans l'autre, ce qui est incorrect :**
27
+
28
+ <!-- BEGIN:main -->
29
+ <!-- BEGIN:bloc2 -->
30
+ <!-- BEGIN:bloc3 -->
31
+ <!-- END:bloc2 -->
32
+ <!-- END:bloc3 --> // cette fermeture de bloc ne devrait pas se trouver ici !!!
33
+ <!-- END:main -->
34
+
35
+ Certaines balises ne sont accessibles qu'à l'intérieur de blocs spécifiques. Si
36
+ c'est le cas, cette documentation le précisera.
37
+
38
+ **Avertissements :**
39
+
40
+ - **un même bloc ne peut pas être répété deux fois dans le même fichier**
41
+ - **un bloc qui est utilisé dans un widget, n'est pas forcément utilisable dans un autre ou dans tous les widgets, à chaque widget ses blocs**
42
+ - **tous les modèles graphiques doivent commencer par `<!-- BEGIN:main -->` et se terminer par `<!--END:main -->` oublier ce bloc est une erreur très courante, pensez à vérifier ce bloc si rien ne s'affiche dans votre site**
43
+ - **tout ce qui est en dehors du bloc `<!-- BEGIN:main -->` `<!-- END:main -->` est ignoré par Kiubi**
44
+
45
+
@@ -0,0 +1,43 @@
1
+ ## Balises
2
+
3
+ Les balises de Kiubi sont de petits codes que vous pouvez inclure un peu partout
4
+ et qui servent à afficher toutes les informations que vous avez saisies à l'aide
5
+ de votre console d'administration dans les pages de votre site. On reconnaît
6
+ facilement ces balises car elles sont composées d'un mot entouré d'accolades : `{titre}`.
7
+
8
+ Kiubi utilise des ensembles de fichiers HTML (des templates) pour
9
+ mettre en forme votre site. Ils composent le squelette du site. Les balises
10
+ servent à donner vie au squelette en indiquant à Kiubi où injecter exactement le
11
+ titre de la page, le contenu des billets, la date de création du dernier billet
12
+ de votre blog, etc. Elles sont pour ainsi dire omniprésentes. Tous les templates ont besoin
13
+ de balises pour fonctionner et vous pouvez également saisir certaines balises
14
+ dans les éditeurs de texte visuels (éditeurs "Wysiwyg").
15
+
16
+ Il existe trois grandes familles de balises :
17
+
18
+ - les balises globales sont utilisables partout (modèles graphiques, éditeurs de
19
+ texte visuels, champs d'information, etc.)
20
+ - les balises des modèles de mise en pages qui ne fonctionnent que dans les
21
+ templates principaux
22
+ - les balises des widgets qui ne fonctionnent que dans leur widget
23
+
24
+ ### Exemple d'utilisation d'une balise
25
+
26
+ Prenons un exemple d'un template tel qu'on pourrait en trouver dans
27
+ les sous-répertoires de `/fr/template/`.
28
+
29
+ <head>
30
+ <meta name="keywords" content="{metaKeywords}" />
31
+ <meta name="description" content="{metaDescription}" />
32
+ <title>{title}</title>
33
+ </head>
34
+
35
+ On voit ici que le titre de la page, la description et les mots clés de l'entête
36
+ du fichier HTML sont définis à l'aide de balises et seront remplis
37
+ automatiquement avec les valeurs configurées dans la console d'administration.
38
+
39
+ **Une balise utilisée dans un widget, n'est pas forcément utilisable dans un autre ou dans tous les widgets. A chaque widget ses balises !**
40
+
41
+
42
+
43
+