Cette partie sera consacrée aux vues. Pour une integration rapide des contrôleurs développés, nous allons utiliser le framework smarty
Avant toute chose, si vous ne connaissez pas smarty, je vous recommande de consulter la documentation de ce framework, disponible à cette adresse : http://smarty.php.net/manual/fr/
le fonctionnement de smarty est simple. Il faut instancier la classe Smarty.class.php afin de créer un objet $smarty par exemple.
Par la suite, certaines methodes sont disponibles depuis cet objet afin d’assigner des variables qui pourront être exploitées par le moteur de template pre-traitement.
Les gabarits ou modéles de template sont stockés dans le dossier ‘templates’ et doivent avoir pour extension de fichier .tpl
Par exemple, soit le contrôleur suivant :
[php] $smarty = new smarty(); $smarty->assign("nom", "Votre nom ?"); $smarty->display(hello.tpl); ?>
et le template hello.tpl suivant :
<div align="center"><strong>{nom}</strong></div>
Le resultat sera le suivant :
C’est magique, non !?
Il faut donc faire un tour sur chaque contrôleur pour rajouter les methodes smarty qui seront exploitées dans les vues.
– Ouvrez le controleur inc/lister.php et ajouter ces lignes en fin de script :
$smarty->assign("title", "Gestionnaire des QCM"); $smarty->assign("Questions", $Questions);
– Ouvrez le controleur inc/afficher.php et ajouter ces lignes en fin de script :
$smarty->assign('nomQCM', $res["NomQCM"]); $smarty->assign('author',$res["author"]); $smarty->assign('email',$res["email"]); $smarty->assign('renseigner_nom', "veuillez renseigner votre nom !"); $smarty->assign('renseigner_prenom', "veuillez renseigner votre prenom !"); $smarty->assign('renseigner_email', "veuillez renseigner votre email !"); $smarty->assign('LABEL_AUTEUR', 'AUTEUR'); $smarty->assign('INDEX_ACTION', "index.php?q=$q"); $smarty->assign("Questions", $Questions); $smarty->assign("score", $score); $smarty->assign("nom_user", $nom_user); $smarty->assign("prenom_user", $prenom_user); $smarty->assign("email_user", $email_user); $smarty->assign("retour", $retour);
Ouvrez le controleur inc/ajouter.php.php et ajouter ces lignes en fin de script :
$smarty->assign("nomQCM", "Nom du QCM : "); $smarty->assign("responsable", "Nom responsable : "); $smarty->assign("email", "Email responsable : "); $smarty->assign("ficherUPL", "Fichier CSV ( séparateur tabulation) pour le QCM : "); $smarty->assign("infoFichier","FICHIER CSV avec séparateur ;"); $smarty->assign("URLACTION","admin.php?action=add"); if($errorUPL) $smarty->assign("ERROR",">> ATTENTION ! Le fichier n'est pas correct. <<"); else $smarty->assign('ERRROR', '');
Dans le repertoire configs/, vous avez sans doute remarqué un fichier fr.conf.
Vous pouvez l’editer pour rajouter toutes les constantes dont votre application à besoin. Vous avez la possibilité de créer un fichier .conf par langue, dans l’eventualité de rajouter la localisation I18n à votre application.
Le template templates/listing.tpl est le suivant :
{config_load file=fr.conf section="setup"}
{include file="header.tpl"}
{include file="menu.tpl"}
<TR>
<TD>
<TABLE width=70% style='font-family:verdana;font-size:12px' align=left>
<TR bgcolor=#ffcc66>
<TH class=cornertl>{#ID#}</TH>
<TH>{#NOMQCM#}</TH>
<TH>{#AUTEUR#}</TH>
<TH class=cornertr>{#ACTION#}</TH>
</TR>
{php}global $i; $i = 0;{/php}
{section name=outer loop=$Questions}
{$Questions[outer].index}
{if $Questions[outer].compteur is div by 2}
<TR bgcolor=#FFFFFF>
{else}
<TR bgcolor=#efefef>
{/if}
<TD>{$Questions[outer].id}</TD>
<TD>{$Questions[outer].nomqcm}</TD>
<TD>{$Questions[outer].auteur} ({$Questions[outer].email})</TD>
<TD align=center><a href='index.php?q={$Questions[outer].hachverif}' target=_blank>{#SEE#}</a> |
<a href='index.php?action=delete&idQcm={$Questions[outer].id}'>{#DEL#}</a></TD>
</TR>
{php}global $i;$i++{/php}
{sectionelse}
<tr bgcolor=#FFFFFF>
<td colspan=4 class=orange align=center height=25>{#NODATA#}</td>
</tr>
{/section}
<tr bgcolor=#ffcc66>
<td class=cornerbl> </td><td colspan=2> </td><td class=cornerbr> </td>
</tr>
</TABLE>
</TD>
</TR>
Les autres templates sont accessibles ici
Ces articles peuvent vous intéresser :









