Smarty Forum Index Smarty
WARNING: All discussion is moving to https://reddit.com/r/smarty, please go there! This forum will be closing soon.

Convertire ce script en Smarty

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Smarty Forum Index -> Language: French
View previous topic :: View next topic  
Author Message
phsjeuxvideo
Smarty n00b


Joined: 24 Nov 2010
Posts: 1

PostPosted: Wed Nov 24, 2010 12:36 pm    Post subject: Convertire ce script en Smarty Reply with quote

Bonjour,
Je débute avec Smarty
Je dois converti ce fichier en smarty

Code:

<?php
if (!admin_connect()) {
    header('Location: login.php');
exit;
}
?>
<div align="center">
<h2>Mise &agrave; jour des information du site</h2>
<p>Bienvenue, <?php secure($_SESSION['admin']); ?>.</p>
<?php
if (!empty($msg_confirm)) {

   echo '<ul>'."\n";

   foreach($msg_confirm as $m) {

      echo '   <li>'.$m.'</li>'."\n";
   }

   echo '</ul>';
}

if (!empty($errors_settings)) {

   echo '<ul>'."\n";
   
   foreach($errors_settings as $e) {
   
      echo '   <li>'.$e.'</li>'."\n";
   }
   
   echo '</ul>';
}

echo $form_settings;
?>
</div>

Pouvez-vous m'aider ?
Merci
Back to top
View user's profile Send private message Visit poster's website
Gowser
Smarty Pro


Joined: 19 Feb 2008
Posts: 104
Location: Nantes (France)

PostPosted: Wed Nov 24, 2010 2:34 pm    Post subject: Reply with quote

Bonjour,

Avant de commencer, on ne va pas "juste" convertir ce fichier, il va falloir que tu mettes en place ton environnement avec smarty. Plusieurs points sont à effectuer :


  1. Installer smarty dans ton projet
  2. Faire ton fichier PHP
  3. Faire ton fichier template


-----------------------------
1 . Installer smarty dans ton projet


Si ton projet comporte déjà smarty, tu peux sauter cette section et allez directement au point "Faire ton fichier PHP".

Premièrement, télécharge smarty (je suis encore en version 2, mais libre à toi de prendre la version 3, j'utilise la version 3 pour cet explication mais cela ne changera rien pour toi)

Décompresse le fichier compressé de smarty dans un répertoire de ton application

Ensuite créé un autre répertoire qui contiendra les templates de ton application. Nous le nommerons "templates" ce répertoire

Du coup je me retrouve avec une arborescence comme ceci :

'Repertoire Principal'
------ smarty/
------ templates/
------ index.php

-----------------------------
2 . Faire ton fichier PHP (dans cette exemple il s'appelle index.php)

Code:

<?php
// ici je me suis cree quelques variables et fonctions bouchons pour verifier tes differentes variables et fonctions
@session_start();

function admin_connect(){
   return true;
}

function secure($string){
   return $string;
}

$_SESSION['admin'] = 'Gowser';
$msg_confirm = array(
   'message de confirmation :)'
);
$errors_settings = array(
   'message d\'erreur :(',
   'ca c\'est pas cool :O'
);
$form_settings = "<form>petit formulaire</form>";

/***********************
 * PARTIE QUI T'INTERESSE
 **********************/
// ici est ta fonction reprise pour tester si l'utilisateur est un administrateur
if (!admin_connect()) {
    header('Location: login.php');
   exit;
}

/*
 * IMPORT DE SMARTY : je te conseille de mutualiser cette partie pour toutes tes pages
 */
// import de la classe smarty (n'oublie pas de changer le chemin d'include qui ne doit pas etre le meme que moi)
include dirname(__FILE__). DS . 'smarty/Smarty.class.php';

// on instancie la classe
$smarty = new Smarty();

// on indique ou est situe le repertoire des templates (n'oublie pas de changer le chemin d'include qui ne doit pas etre le meme que moi)
$smarty->template_dir = dirname(__FILE__). DS . 'templates';

/*
 * TRAITEMENT STANDARD : ici fait ce que tu veux mais pense que tu dois bien séparer ton code PHP de ton template
 */
// on envoi les differentes variables que j'ai pu reperer dans ton code au template
// je garde a peu pres les meme noms histoire que tu sois pas trop perdu

// // la variable de session admin
$smarty->assign('admin', secure($_SESSION['admin']));
// // la variable contenant un message
$smarty->assign('msg_confirm', $msg_confirm);
// // la variable contenant tes erreurs de configuration
$smarty->assign('errors_settings', $errors_settings);
// // la variable contenant ton formulaire de configuration
$smarty->assign('form_settings', $form_settings);

// on appelle le template correspondant a ta page
// // ici on appelle la page pour smarty 2
$smarty->display('index_smarty2.tpl');

// // ici on appelle la page pour smarty 3
//$smarty->display('index_smarty3.tpl');
?>


-----------------------------
3 . Faire ton fichier template

Je vais te poster 2 versions de ce fichier : un pour smarty 2 et l'autre pour smarty 3 (normalement celui de la version 2 marche aussi avec smarty 3)

Ces fichiers sont a créer dans le répertoire 'templates'

Smarty 2 (dans mon exemple il s'appelle index_smarty2.tpl)
Code:

<div align="center">
<h2>Mise &agrave; jour des information du site</h2>
<p>Bienvenue, {$admin}.</p>

{if !empty($msg_confirm)}
<ul>
   {foreach from=$msg_confirm item=m key=id}
      <li>{$m}</li>
   {/foreach}
</ul>
{/if}

{if !empty($errors_settings)}
<ul>
   {foreach from=$errors_settings item=e key=id}
      <li>{$e}</li>
   {/foreach}
</ul>
{/if}

{$form_settings}


Smarty 3 (dans mon exemple il s'appelle index_smarty3.tpl)
Code:

<div align="center">
<h2>Mise &agrave; jour des information du site</h2>
<p>Bienvenue, {$admin}.</p>

{if !empty($msg_confirm)}
<ul>
   {foreach $msg_confirm as $m}
      <li>{$m}</li>
   {/foreach}
</ul>
{/if}

{if !empty($errors_settings)}
<ul>
   {foreach $errors_settings as $e}
      <li>{$e}</li>
   {/foreach}
</ul>
{/if}

{$form_settings}


-----------------------------

Voila Smile ++
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Smarty Forum Index -> Language: French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group
Protected by Anti-Spam ACP