Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] [Resolu] Condition if dans un template avec un lien vers une donnée d'un fichier properties

Posted by info2012 on 06/18/2013 17:21

Bonjour,

Dans un template (que j'utilise à partir du crud_list), je souhaite afficher soit un lien url si l'intitulé de mon champ vaut une certaine valeur qui se trouve dans un fichier properties soit une valeur sans url pour les autres champs, mais je n'arrive pas à faire fonctionner mon if. Voilà le code:

{foreach $list as $record}
<tr class="{cycle array('odd','even')}">
    {foreach $properties as $propname  }
    <td>
	{*$controls[$propname]->label|eschtml*}
	 {*@adminprojets~donnees_brutes.form.nom_fichier_donnee_brute@*}
	
	{if '$controls[$propname]->label|eschtml' == '@adminprojets~donnees_brutes.form.nom_fichier_donnee_brute@' }
	
	<a href="{$record->$propname|eschtml}" class="crud-link">{$record->$propname|eschtml}</a>
	{else}
	
	{$record->$propname|eschtml}
	{/if}
	</td>
    {/foreach}
    <td>

Est-il posible de faire des var_dump dans les templates? ou encore mieux, de voir comment est interprété la condition if?

Merci beaucoup.

  [Opened] Condition if dans un template avec un lien vers une donnée d'un fichier properties

Reply #1 Posted by foxmask on 06/18/2013 19:48

eschtml est un template tag qui doit faire un echo de la valeur échappée

de même le path du fichier properties n'est pas a utiliser dans cette condition

il me semble que du coup on ne peut pas détourner leur résultat pour les tester entre eux

pour voir la valeur d'un variable dans un template un n'a pas vardump mais on pourrait faire un filtre / template tag qui écrit dans les log et on verrai le résultat dans la débugbar

pour voir la tête du if , il faut regarder dans le cache , l'un des dossiers temp.


@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

  [Opened] Condition if dans un template avec un lien vers une donnée d'un fichier properties

Reply #2 Posted by laurentj on 06/19/2013 15:17

Bonjour,

{if '$controls[$propname]->label|eschtml' == '@adminprojets~donnees_brutes.form.nom_fichier_donnee_brute@' }

Non, on ne peut pas faire ça. la notation {@..@} est une notation d'un tag de template, pas PHP !!

Tu mélanges tout là. Ce qu'il y a dans ton tag if, c'est du pur PHP ! Tu ne peux donc pas y mettre des tags jtpl.

Bref, il faut que tu créer une variable de template qui contient la valeur à tester

   $tpl->assign('the_label', jLocale::get('adminprojets~donnees_brutes.form.nom_fichier_donnee_brute'));

et dans ton template

{if $controls[$propname]->label == $the_label}

Mais en fait, je ne vois pas pourquoi il faudrait faire un test sur le label. Un test sur $propname suffirait non ??

{if $propname == 'something' }
<a href="{$record->$propname|eschtml}" class="crud-link">{$record->$propname|eschtml}</a>
{else}
{$record->$propname|eschtml}
{/if}

  [Opened] Re: Condition if dans un template avec un lien vers une donnée d'un fichier properties

Reply #3 Posted by info2012 on 06/19/2013 16:22

Bonjour,

Effectivement, je me suis ultra compliqué la vie et j'ai tout mélangé :) Sorry

Voilà le petit bout de code:

{foreach $properties as $propname  }
<td>
  {if $propname == "nom_fichier_donnee_brute" }
	<a href="{$record->$propname|eschtml}" class="crud-link">{$record->$propname|eschtml}</a>
  {else}
	{$record->$propname|eschtml}
  {/if}
</td>
{/foreach}

Ça marche parfaitement.

Merci beaucoup, à tout les deux. :)

 
Page
  1. [Resolu] Condition if dans un template avec un lien vers une donnée d'un fichier properties