====== Template Swisslinux.org ====== Les hacks spécifiques aux différentes moteurs (forum, wiki, galerie,...) sont listé sur la page projet [[site_internet#informations_detaillees|site internet]]. [[http://www.swisslinux.org/documents/template/swisslinux_structure_css.tar.gz|La structure du site est basée sur une page xhtml la plus simple possible]], celle-ci charge d'abord un fichier de configuration //sl_config.inc.php//, contenant le nom du template actuel, et des variables permettant l'inclusion statique de fichiers. //Tout le code est sous licence GPL v.2 ou suivante//, faites en bon usage. La page d'exemple : Swisslinux.org − <?php print $SL_MC->msg('SL Slogan');?> Jusqu'ici, on a chargé le fichier de configuration, et les objets permettant la localisation du site (voir plus bas). Ensuite, on charge le doctype et tout le contenu du header à l'exception du titre (nécessaire pour afficher un titre différent sur le wiki ou le forum en fonction des pages visitées).

Menu 2

place 1 place 2 place 3
Jusque là on a ajouté le sommet de la page, avec, dans le cas actuel, la bannière et les onglets, puis on ouvre une balise principale, qui va accueillir le code du script hôte (forum, wiki, blog, gallerie,...)
On clos la division prinipale, et on ajoute le pied de page, et on ferme toutes les balises encore ouvertes. ===== Détails des fichiers de structure ===== * sl_body_top.inc.php (bannière, onglets) * sl_menu_begin.inc.php (menu de gauche, avant menu spécifique forum,wiki...) * sl_menu_end.inc.php (fin du menu de gauche) * sl_body_bottom.inc.php (pied de page) * sl_news.inc.php (permet d'ajouter une annonce sur toutes les pages sous la bannière) ===== Détails des fichiers de scripts ===== Certains fichiers dans le template sont chargés de récupérer les cookies (langue, login, ...). Ce sont tous des hacks basés sur des scripts de punbb et dokuwiki. Le javascript dynamique //sl_goto.js.php// permet le chargement de pages spécifiques du wiki en fonction des langues en utilisant la classe de localisation. //TODO// Pour plus de détail, référez vous aux commentaires dans le code. ===== Localisation du site L10N ===== Pour permettre plusieurs langues une classe de localisation contenant un tableau des traduction des chaînes de caractères, un pour les liens, et certaines fonctions spécifique est utilisé. Cela nécessite de tenir à jour simultanément les quatres fichiers dans le dossier //inc/lang//. Le fichier en.inc.php permet de spécifier le type de mot à traduire directement dans le code, par exemple //Logout(verb)// Comment utiliser la classe "Message Class" SL_MC ? Exemple d'utilisation (assez chargé !) provenant du menu principal :

msg('Menu');?>

msg('Main page');?> ===== Conventions ===== ==== Nommage ==== Les identifiant de balises sont précédé de //sl_// pour éviter des conflits dû aux scripts du forum, wiki et autre. Les fichiers php qui n'ont pas de sens seul sont nommé avec l'extension //.inc.php//. ==== Code ==== TODO (enfin... y'en a pas vraiment ;-) Bien commenter et indenter votre code !!!