Créer son template joomla de A à Z

13/09/10

Bon n'ayons pas peur, essayons de créer un template de A à Z...

Si j'ai bien compris ce que j'ai lu à droite et à gauche, il faut au moins 2 fichiers :

  1. index.php
  2. templateDetails.xml

Commençons petit avec des fichiers minimalistes :

index.php :

<?php
/**
* @copyright Copyright (C) 2009 - 2100 Open Source Matters. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/

// Empêche l'exécution directe du code
defined( '_JEXEC' ) or die( 'Restricted access' );


?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="language; ?>" lang="language; ?>">

<head>
<title>premier template joomla</title>
</head>

<body>
test
</body>

</html>

templateDetails.xml :

<?xml version="1.0" encoding="utf-8"?>
<install version="1.0" type="template">
<name>first_template</name>
<version>1.0</version>
<creationDate>02/10/2009</creationDate>
<author>expert web</author>
<authorEmail> contact@Coopernet.org Cette adresse email est protégée contre les robots des spammeurs, vous devez activer Javascript pour la voir. Cette adresse email est protégée contre les robots des spammeurs, vous devez activer Javascript pour la voir. </authorEmail>
<authorUrl>http://www.Coopernet.org</authorUrl>
<copyright></copyright>
<license>GNU/GPL version 2</license>
<description>Tests de creation de template</description>
<files>

<filename>templateDetails.xml</filename>
</files>
<images>

</images>
<css>
<filename>css/first_template.css</filename>
<filename>css/menu_deroulant.css</filename>
</css>

<positions>
<position>left</position>
<position>right</position>
<position>top</position>

</positions>
</install>

Ok, ca marche à condition de ne pas mettre d'accent dans le code. Cela le rend invalide... Pour visualiser ce magnifique template, il suffit de cliquer sur Extension > gestion des templates puis de choisir first_template comme template par défaut.

 

Etape suivante : je voudrais que ça affiche ma page d'accueil...

Afficher les articles

Bon, ça n'est pas trop compliqué, il faut ajouter dans le corps (entre <body>et </body>) de votre fichier index.php l'instruction suivante :

<jdoc:include type="component" />

Si je comprends bien, la balise jdoc utilisée avec son attribut "component" permet d'aller chercher les informations contenus dans les composants de joomla. Je débute avec Joomla alors je ne sais pas encore comment il faut faire pour afficher un forum plutôt qu'une page classique. Chaque chose sen son temps...

Déception : le code que renvoit cette balise est farci de tableaux (<table>). Flûte, si vous comptiez vendre votre site à une agence de com parisienne, ca va pas être possible. C'est que c'est terriblement hasbeen les tableaux. C'est vrai que d'un point de vue sémantique, le tableau est fait pour structurer des infos sous forme de ... tableau avec des simples ou des doubles entrées. C'est vrai aussi que la mise en page via des tableaux peut nuire à l'accessibilité (dans la mesure oùi vos tableaux sont tellement imbriqués et mal foutus qu'ils déstructurent l'information). Mais je trouve tout de même excessive cette chasse au tableau! Blague à part, j'aurais quand même préféré trouver ici des div mais nous verrons plus tard comment faire en sorte que notre template joomla soit sans tableau et avec des div...

Etape suivante : je voudrais afficher mon sytème de navigation

Afficher le système de navigation (menus)

<jdoc:include type="modules" name="left" />

Dans la même logique que précédemment, la balise jdoc utilisée avec son attribut "modules" permet d'afficher les menus. Ne me demandez pas comment ni pourquoi !

Dans l'articles suivant, je vais m'attacher à comprendre comment marche le positionnement des éléments avec joomla ...

Partager sur mes réseaux