IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[Smarty] Inclure du php dans un tpl


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 60
    Points : 30
    Points
    30
    Par défaut [Smarty] Inclure du php dans un tpl
    Bonjour, n'ayant pas de réel connaissance en tpl je fais appelle à vous.

    En faites un un script php qui me génére des liens vers des formulaire et je veux l'intégrer à mon templates.
    Le script est comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
            <?php
    $dirname = '../../webform';
    $dir = opendir($dirname); 
     
    // dossier "client" : pas dans dossier
    $dir_not_array = array('.', '..', 'css', 'js', 'temp_webform');
    // fichier image : extensions autorisées
    $extensions_ok_array = array('jpg', 'jpeg', 'gif', 'png');
     
    // on parcourt le dossier "webform"
    while($file = readdir($dir)) {
    	// si il existe un dossier "img" dans le $file, et que $file n'est pas pas l'array
    	// alors $file est un dossier "client" !
    	if(is_dir($dirname.'/'.$file.'/img') && !in_array($dirname.'/'.$file, $dir_not_array)) {
     
    		// on parcourt les fichiers du dossier $file
    		foreach (glob($dirname.'/'.$file.'/img/logo.*') as $filename) {
    			// on cherche les fichier "logo.*", dont l'extension est dans la liste
    			if (file_exists($filename) && in_array(strtolower(pathinfo($filename, PATHINFO_EXTENSION)), $extensions_ok_array)) {
    				echo '<a href="'.$dirname.'/'.$file.'/index.php"  style="text-decoration:none"><img class="lien" src="'.$filename.'" /></a>'.'&nbsp;&nbsp;';
    			}
    		}
    	}
    }
    closedir($dir);
     
    ?>
    Ce script vise à remplacer le code que j'ai mis dans mon templates (index.tpl) qui est comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <table width="100%" cellspacing="0" cellpadding="0" border="0" class="small">
    <tbody>
    <tr>
     
    	<td nowrap="" style="padding-left:10px;padding-right:50px" class="moduleName"><a class="hdrLink" href="">Fiches de typologie</a></td>
    	</tr></tbody></table>
    <h3 align="center"> Fiches  typologie des appels disponibles pour les clients suivant : </h3>
    <br/>
    <hr/>
    <div id="Lien"  >
    <div id="Logo" align="center">
     
    <a href="{$SCRIPT_NAME}/../webform/sfr/index.php" target="_blank" style="text-decoration:none" > <img class='liencarre' src="../webform/sfr/img/logo.png" width="80px" height="80px"> </a>
    &nbsp;&nbsp;&nbsp;&nbsp;
    <a href="{$SCRIPT_NAME}/../webform/irt/index.php" style="text-decoration:none"> <img class='lienrectangle' src="../webform/irt/img/logo.jpg" width="150px" height="70px"> </a>
     
     
      &nbsp;&nbsp&nbsp;&nbsp;
    <a href="{$SCRIPT_NAME}/../webform/kdopays/index.php" style="text-decoration:none"> <img class='lien' src="../webform/kdopays/img/logo.jpg" width="150px" height="60px"> </a>
     
    &nbsp;&nbsp;&nbsp;&nbsp; 
    <a href="{$SCRIPT_NAME}/../webform/apavou/index.php" style="text-decoration:none"> <img class='lien' src="../webform/apavou/img/logo.jpeg" width="150px" height="60px"> </a>
     
    &nbsp;&nbsp;&nbsp;&nbsp;
    <a href="{$SCRIPT_NAME}/../webform/apria/index.php" style="text-decoration:none"> <img class='lien' src="../webform/apria/img/logo.png" width="100px" height="50px"> </a>
     
     &nbsp;&nbsp;&nbsp;&nbsp;
    <a href="{$SCRIPT_NAME}/../webform/tereos/index.php" style="text-decoration:none"> <img class='lien' src="../webform/tereos/img/logo.jpg" width="80px" height="80px"> </a>
    </div>
     
     
     <hr/>     
     
          </div>
    Ainsi au lieu de rentrer tous les a href a la main le script le fait automatiquement.
    a prtir de mon fichier index.php, j'appel mon tpl de cette maniere :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $smarty->display(vtlib_getModuleTemplate('Fiches_Typo', 'index.tpl'));

  2. #2
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 60
    Points : 30
    Points
    30
    Par défaut
    J'ai vu sur des forum qu'il y avait des balise {php} {/php} mais cette solution n'est pas la meilleur !

    J'ai modifier le dirname car le chemin en dur c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="../../../webform/irt/index.php"  style="text-decoration:none"><img class="lien" src="../../../webform/irt/img/logo.jpg" />
    Ce qui me donne ceci dans mon tpl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    {php}
     
    $dirname = '../../../webform';
    $dir = opendir($dirname); 
     
    // dossier "client" : pas dans dossier
    $dir_not_array = array('.', '..', 'css', 'js', 'temp_webform');
    // fichier image : extensions autorisées
    $extensions_ok_array = array('jpg', 'jpeg', 'gif', 'png');
     
    // on parcourt le dossier "webform"
    while($file = readdir($dir)) {
    	// si il existe un dossier "img" dans le $file, et que $file n'est pas pas l'array
    	// alors $file est un dossier "client" !
    	if(is_dir($dirname.'/'.$file.'/img') && !in_array($dirname.'/'.$file, $dir_not_array)) {
     
    		// on parcourt les fichiers du dossier $file
    		foreach (glob($dirname.'/'.$file.'/img/logo.*') as $filename) {
    			// on cherche les fichier "logo.*", dont l'extension est dans la liste
    			if (file_exists($filename) && in_array(strtolower(pathinfo($filename, PATHINFO_EXTENSION)), $extensions_ok_array)) {
    				echo '<a href="'.$dirname.'/'.$file.'/index.php"  style="text-decoration:none"><img class="lien" src="'.$filename.'" /></a>'.'&nbsp;&nbsp;';
    			}
    		}
    	}
    }
    closedir($dir);
     
     
    {/php}
    Le problème c'est que rien ne s'affiche sans doute encore un probléme de chemin ?

    Quelqu'un aurait une autre solution qui serait beaucoup plus recommandé que cette dernière ?

Discussions similaires

  1. [Smarty] Partager variable avec PHP dans un .tpl
    Par rolandl dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 09/10/2011, 08h17
  2. [Smarty] Inclure du php dans un template et reutiliser des variables
    Par Guillomme dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 05/09/2008, 09h44
  3. [PHP-JS] Inclure du PHP dans du Javascript (syntax)
    Par pierrot10 dans le forum Langage
    Réponses: 2
    Dernier message: 08/09/2006, 14h55
  4. inclure du php dans un <td>
    Par pierrot10 dans le forum Langage
    Réponses: 11
    Dernier message: 21/03/2006, 14h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo