.: Comprendre les thèmes sur Concrete5 :.
Quelques mots pour comprendre les thèmes avant de se lancer dans la création.
Lorsque que vous ajoutez une page sur concrete5, vous DEVEZ choisir un type de page. L'installation standard de C5 contient plusieurs types de pages, qui définissent différentes zone de contenu. Il peut y avoir beaucoup de zones attachées à une page particulière. Généralement les zones de contenu sont "Main Content," "Sidebar," "Header," ou "Header Image".
Les développeurs peuvent facilement définir de nouveaux types de pages depuis le tableau de bord, toujours avec une méta information spécifique attachée à ce type de page, et une miniature graphique représentant celle-ci.
Les thèmes sont des collections de templates (gabarits). Ils ont chacun leur propre sous répertoire dans le répertoire /themes/ . Chaque thème peut contenir ses propres sous-répertoire pour y classer les fichier CSS, les images, etc.
Si en tant que dévelloppeur vous avez préparé votre type d'affichage de base en HTML, le répertoire complet va devenir celui d'un Theme avec un fichier Template unique pour tous les types de page de votre site. Pensez que les Templates sont des vues dans le développement de Model/View/Controller, et que les thème sont des paquets de Templates.
Les templates prennent le même nom que les types de pages correspondants, avec un suffix .php. Par exemple, si vous avez ajouté un type page avec le handle "product_detail", alors votre thème devrait contenir le fichier template product_detail.php, à moins que vous soyez SÛR que ce thème particulier ne devra jamais être lié à une page type.
Finalement, lors du rendu d'une page, Concrete5 (enfin le Controller si nous suivons le fonctionnement de plus près) regarde l'instance de la page créée pour déterminer quel thème elle utilise. Concrete5 regarde alors dans le répertoire de ce thème pour voir si un fichier template correspond au type de page en question. S'il n'en existe aucune, il choisit le fichier template default.php qui est le seul fichier OBLIGATOIRE dans tous les thèmes.
Qu'est-ce que les types de page, et les thèmes ?
Il n'y a pas de règle absolue de classement. Dans les versions précédentes de Concrete il n'y avait que des Page Types, et nous trouvions beaucoup de site avec des dizaines de pages redondantes (ex: article blee, article vert, etc).
Avec Concrete5 nous avons saisi l'opportunité de construire une matrice capable de résoudre le problème de différentes façons.
Lorsque nous décidons de construire notre site, nous tendons à penser en ces termes:
Premièrement:
Quelle wireframe avons nous à disposition? En lisant la documentation, y a-t-il une condition particulière requise pour une page plutôt que pour une autre ?
Si oui, les types de pages devraient absolument être uniques. Si nour regardons du côté des pages, pages de produits, et revue de presse dans le plan du site, il est aisé de se rendre compte que se sont des types de pages unique car elles ne ressemblent à aucune autre page du site, mais elles ont leurs données propre comme la taille ou la couleur du produit, ou dates et signatures pour les communiqués de presse. Ainsi nous faisons abstraction de ce qui doit être unique et regardons ce qu'il reste.
Dans les wireframes restantes, qu'est-ce qui pourrait être considéré comme un modèle de données éventuel. Il y a de petites différences pour un programmeur entre les pages et les pages de service si ce n'est les deux colonnes de texte avec la zone de navigation latérale. Si vous pouvez regarder tous les exemples et dire "arf, ils pourraient vouloir ajouter ce type de page ailleurs pendant que le site se développe, sans avoir de modifications cosmétiques à effectuer" Il est donc raisonnable de penser en terme de types de pages présentes sur plusieurs thèmes.
Si vous travaillez sur une extension de concrete5 qui doit avoir un type de rendu unique (ex: un forum) vous devrez alors définir un type de page spécifique à votre application et laisser les utilisateurs personnaliser celle-ci avec leur thème.
Trop de types de pages rendent difficile la gestion du site, savoir laquelle ajouter et où, avec quelles permissions, etc... (bien que ceci puisse être limité avec des permissions avancées.)
Cela tend également à rendre complexe les éventuelles éditions de masse du site par la suite. Vous pouvez ajouter un bloc sur un type de page depuis le tableau de bord de concrete5, ce qui signifie que chaque instance de ce type de page aura ce bloc automatiquement ajouté. Cette fonction d'application de masse est relativement puissante, mais implique une certaine réflexion quant à ce que seront réellement les types de pages qui devront être uniques ou non.
Comment fonctionne les Thèmes et Page Types ?
Lorsque l'on charge une page, on regarde en premier si le thème de celle-ci est déterminé. Ensuite, voir si un fichier template est appliqué au type de page actuelle, s'il existe bien dans le dossier de thème actuel. Si aucun fichier correspondant n'est trouvé, le fichier default.php est chargé.
Le fichier template est en HTML, CSS et PHP. Il inclut de courts appels PHP qui définissent l'existences des zones de contenu de la page.
Généralement un dévelloppeur façonnera sont design avec des fichiers HTML des images et un répertoire pour son thème dans un premier temps. Avec concrete5 le répertoire au complet peut être ajouté directement dans le répertoire /themes et directement à jouté au site.
- Ordonnez votre site dans un dossier/répertoire contenant le HTML.
- Pour chaque type de page du thème, créez un fichier template ma_page_type.php dans ce répertoire.
- Si vous voulez, ajoutez une image miniature de 120x90 px dans ce répertoire. Celle-ci doit se nommer thumbnail.png
- Ajouter le fichier description.txt dans le répertoire du thème. Le nom de votre thème doit apparaitre en première ligne, et sa description rapide sur la seconde ligne.
- Créez un répertoire pour votre thème dans le dossier /themes à la racine de votre site.
- Uploadez le contenu complet de votre dossier local dans le répertoire /themes/mon_theme.
- Allez sur la section des thèmes dans la tableau de bord de C5.
- Sur cette page, Vous devriez voir votre thème, avec son nom et sa miniature, dans la partie de la page nommée Thèmes disponibles à l'installation.
- Cliquez sur le bouton installer à côté de votre thème.
- Lorsque votre thème est installé, vous devriez être redirigé sur la seconde étape, nommée Inspecter le thème. Ici, vous pourrez créer automatiquement les différents types de pages trouvés pour votre thème. Si votre thème ne contient pas de pages spécifiques, vous pouvez cliquer sur Retourner aux thèmes.
- Votre thème devrait être maintenant installé et listé parmis tous les thèmes disponibles sur votre site web.
- Pour activer ce thème et l'utiliser sur toutes les pages de votre site, cliquez le bouton Activer. Vous aurez une boîte de dialogue vous demandant de confirmer votre choix.
Note: Cette action est irréversible et va suprimer tous vos réglages perso sur vos pages.
Si à n'importe quel moment vous souhaitez désinstaller un thème, vous pouvez cliquer sur le bouton supprimé à côté de la miniature du thème. Cela va enlever le thème de la liste de choix dans le tableau de bord, et déplacer son répertoire dans le dossier /files/trash/.
Maintenant, lorsque vous cliquerez sur le bouton Design de la barre d'édition de votre site, la miniature de celui-ci apparaitra dans le sélecteur de thèmes, et vous pourrez ainsi l'appliquer sur n'importe quelle page de votre site.
