créer le fichier template.xml dans le repertoir assets/xml. ce fichier contient une section de balise pour chaque theme de votre application, ainsi que les posssitions ou serons chargées les vues de ce theme.
<?xml version="1.0" encoding="UTF-8" ?>
<template>
<theme name="default">
<description>
<![CDATA[
This is the default template for our template system
]]>
</description>
<position>output</position>
<position>post_2</position>
<position>post_3</position>
</theme>
<theme name="admin">
<description>
<![CDATA[
This the admin template for our template system
]]>
</description>
<position>output</position>
<position>post_2</position>
<position>post_3</position>
<position>post_6</position>
<position>post_8</position>
</theme>
</template>
créer le fichier Template.php dans le repertoir libraries de votre application cette librairie contient des méthodes pour :
- changer de theme de votre application
$this->template->set_theme($theme_name);
- charger les vues d'un theme donné
$this->template->views($view_name, $view_position, $data));
$this->template->view($view_name);
- charger le titre, les fichiers CSS, les fichiers JS d'un theme, etc
$this->template->add_css($file_name);
creer le repertoir themes dans le dossier appliction de votre application et y mettre votre fichier default.php. Exemplde de contenu de notre theme par defaut :
echo $output;
echo "<br>";
echo $post_2 ;
echo "<br>";
echo $post_3 ;
Ce fichier contient les chemens d'acces aux nouveaux elements ajoutés dans notre application. Ajouter le fichier folder_path dans le fichier de configuration autoload.php
$autoload['config'] = array('folder_path') ;
Mettez votre nouveau theme dans le dossier application/themes/nouveautheme.php Dans le fichier nouveautheme.php definissez les positions des différentes vues qui serons charger dans le nouveau thème. Definissez les mêmes positions dans votre fichier assets/xm/template.xml . NB: Dans le notre fichier template.xml nous avons un theme par defaut qui est le theme default.php ( se trouve dans application/themes) et pour le test nous avons un second theme appelé admin.php. Chaque theme dispose de ses positions ou seront chargés les vues a partir du controlleur:
$this->template->views($name, $position, $data));
Pour changer de theme au niveau du controlleur on utilise la methode suivante :
$this->template->set_theme($nom_du_theme)