====== Personnaliser Albulle ou comment créer un thème ====== * **Objectif** : modifier l'apparence d'Albulle * **Niveau de difficulté** : difficile Pour créer un thème il vous faut un minimum de connaissances en XHTML/CSS. Certaines modifications peuvent nécessiter de connaître PHP. Avant d'éditer les fichiers, je vous invite à lire l'[[:accueil|avertissement]] présent à l'accueil de la documentation si ce n'est pas déjà fait ! ===== Tour d'horizon ===== Commençons par faire un tour de tout ce qu'il y a à savoir avant de pouvoir créer son thème. ==== Structure d'un thème ==== Les thèmes se situent dans le dossier **albulle/themes/**. **Un thème = un dossier** dont le contenu est le suivant : ^ Structure d'un thème ^^^ ^ Nom ^ Type ^ Description ^ |css |dossier |Contient les **feuilles de styles** utilisées par le thème. | |**html** |dossier |Contient les **patrons XHTML** qui définissent la structure des pages générées. | |images |dossier |Dossier utilisé pour stocker toutes les **images du thème**. | |js |dossier |Les éventuels **fichiers de code javascript** peuvent être stockés ici (le fichier de lightbox s'y trouve). | |html.php |fichier |En créant ce fichier, vous avez la possibilité de **surcharger la façon dont les pages sont générées**. Il s'agit de code PHP et sa création est réservée à ceux qui ont un niveau avancé en PHP. | //Un élément mis en gras est un élément obligatoire.// Le dossier **html** ne doit **ni changer de nom**, **ni changer de place** car c'est un dossier qui est reconnu automatiquement par Albulle. En revanche, vous êtes **libres** d'organiser le reste à votre convenance. === Le dossier CSS === L'organisation de ce dossier est libre. A vous de choisir, selon vos habitudes de développement, comment vous souhaitez structurer vos feuilles de styles. Pour ceux qui ne sauraient par où commencer, voici mon organisation des feuilles de styles. En général, la liste des fichiers que je créé dès lors que je commence un thème est la suivante : - **index.css** : c'est le seul fichier qui sera appelé dans l'entête HTML des pages web. Il ne me sert qu'à faire les inclusions des fichiers qui suivent. - **layout.css** : ce fichier rassemble les class et id uniquement des éléments qui définissent la mise en page (titre + centre + pied ou titre + colonne gauche + colonne droite + pied, ...). - **structure.css** : ici, je mets les informations de tous les éléments qui seront placés dans les différentes zones définies dans le fichier précédent. - **color.css** : lui ne sert que pour définir les couleurs (de fonds, de textes, de bordures, ...) et les images constituantes du thème. - **typo.css** : est utilisé pour définir les polices de caractères (familles, tailles, styles, espacements, ...). - **fix-ie.css** : et enfin, le spécial, appelé uniquement quand la page est affiché depuis Internet Explorer, qui contient diverses corrections pour que les pages s'affichent correctement dans ce navigateur. Voici ce que contient le fichier **index.css** : @include url(layout.css); @include url(structure.css); @include url(color.css); @include url(typo.css); Pour le contenu des autres fichiers, c'est à vous de jouer :-D ! === Le dossier "html" === Très important, il contient les **briques XHTML** qui constituent la structure finale des différentes pages générées. Chacun des fichiers doit se terminer par l'extension **.thm.php**. Le thème par défaut livré avec Albulle est constitué d'un certain nombre de patrons dont voici la liste : ^ Patrons XHTML du thème par défaut ^^ ^ Nom ^ Description ^ |arborescence |Contient les 3 types d'éléments de l'arborescence des dossiers. Ce fichier est un peu particulier et son fonctionnement sera détaillé un peu plus loin. | |diapo |Contient le cadre (
) qui définit la diapositive courante lorsque le mode diaporama est activé. | |dossier_vide |Patron du cadre affiché lorsque le dossier courant est vide. | |form_defilement_auto |Il s'agit du formulaire qui permet de lancer le défilement automatique du diaporama. | |header |Entête HTML des pages qui seront générées (Ouverture de la balise et définition des métas données (). | |index |Squelette principal des pages. | |menu_panier |Définit la liste (