Écrire une réponse

Veuillez écrire votre message et l'envoyer

Cliquez dans la zone sombre de l'image pour envoyer votre message.

Retour

Résumé de la discussion (messages les plus récents en premier)

Eric
2009-09-27 18:00:47

C'est bon, j'ai trouvé !

En fait, il faut tout simplement déclarer la nouvelle variable dans l'initialisation du template comme ceci :

Code:

      
$expiration = True;
              
       $template->append(
         'users',
         array(
           'ID' => $local_user['id'],
           'CHECKED' => $checked,
           'U_PROFILE' => $profile_url.$local_user['id'],
           'U_PERM' => $perm_url.$local_user['id'],
           'USERNAME' => $local_user['username']
            .($local_user['id'] == $conf['guest_id']
            ? '<BR />['.l10n('is_the_guest').']' : '')
             .($local_user['id'] == $conf['default_user_id']
             ? '<BR />['.l10n('is_the_default').']' : ''),
          'STATUS' => l10n('user_status_'.
            $local_user['status']).(($local_user['adviser'] == 'true')
             ? '<BR />['.l10n('adviser').']' : ''),
          'EMAIL' => get_email_address_as_display_text($local_user['email']),
           'GROUPS' => $groups_string,
           'REGISTRATION' => $local_user['registration_date'],
           'EXPIRATION' => $expiration,
        )
      );

Puis d'y faire appel dans le tpl sur le même principe que les autres variables affichées (sauf que celle-ci, on ne l'affiche pas mais sert juste de condition) :

Code:

    <table class="table2" width="97%" summary="">
        <thead>
          <tr class="throw">
            <td>&nbsp;</td>
            <td>{'Username'|@translate}</td>
            <td>{'user_status'|@translate}</td>
            <td>{'Email address'|@translate}</td>
            <td>{'Groups'|@translate}</td>
            <td>{'Registration'|@translate}</td>
          </tr>
        </thead>

      {foreach from=$users item=user name=users_loop}
          <tr class="{if $smarty.foreach.users_loop.index is odd}row1{else}row2{/if}">
          <td><input type="checkbox" name="selection[]" value="{$user.ID}" {$user.CHECKED} id="selection-{$user.ID}" /></td>
          <td><label for="selection-{$user.ID}">{$user.USERNAME}</label></td>
          <td>{$user.STATUS}</td>
          <td>{$user.EMAIL}</td>
          <td>{$user.GROUPS}</td>
          <td {if $user.EXPIRATION == True}style="color:red;text-align:center;"{else}style="color:lime;text-align:center;"{/if}>{$user.REGISTRATION}</td>
          {foreach from=$user.plugin_columns item=data}
          <td>{$data}</td>
          {/foreach}          
        </tr>
      {/foreach}
    </table>
Eric
2009-09-27 17:41:40

Bon, ben çà ne fonctionne pas chez moi... Je dois faire quelque chose de travers. Voici le code du tpl en question :

Code:

    <table class="table2" width="97%" summary="">
        <thead>
          <tr class="throw">
            <td>&nbsp;</td>
            <td>{'Username'|@translate}</td>
            <td>{'user_status'|@translate}</td>
            <td>{'Email address'|@translate}</td>
            <td>{'Groups'|@translate}</td>
            <td>{'Registration'|@translate}</td>
          </tr>
        </thead>

      {foreach from=$users item=user name=users_loop}
          <tr class="{if $smarty.foreach.users_loop.index is odd}row1{else}row2{/if}">
          <td><input type="checkbox" name="selection[]" value="{$user.ID}" {$user.CHECKED} id="selection-{$user.ID}" /></td>
          <td><label for="selection-{$user.ID}">{$user.USERNAME}</label></td>
          <td>{$user.STATUS}</td>
          <td>{$user.EMAIL}</td>
          <td>{$user.GROUPS}</td>
          <td {if $expiration}style="color:red;text-align:center;"{else}style="color=green;text-align:center;"{/if}>{$user.REGISTRATION}</td>
          {foreach from=$user.plugin_columns item=data}
          <td>{$data}</td>
          {/foreach}          
        </tr>
      {/foreach}
    </table>

Dans le fichier appelant le tpl, j'ai ajouté manuellement ma variable tel que

Code:

$expiration = true;

L'affichage de {$user.REGISTRATION} reste avec la couleur de texte appliquée par défaut pour le thème Goto même si je passe $expiration = false.

Je vais regarder comment ceci est utilisé dans akBookStyle.

LucMorizur
2009-09-27 09:57:39

VDigital a écrit:

Néanmoins, j'essaierai

{if $mavariable === true}
ou
{if $mavariable}

Je confirme : dans un .tpl , j'ai le code suivant qui fonctionne :

Code:

{if !$ec_ap_ok}style = "display:none;"{/if}

Ca réagit comme prévu.

VDigital
2009-09-26 19:06:11

Eric a écrit:

Code:

{if $mavariable == true}
   <mon code HTML>
{else}
   < un autre code HTML>
{/if}

Néanmoins, j'essaierai

{if $mavariable === true}
ou
{if $mavariable}

VDigital
2009-09-26 19:02:21

J'ai eu le pb récemment avec akBookStyle.
Et je constate que nous n'avons utilisé aucun booléen.

class="{if empty($AK_NEXT)}hide {/if}...

{if !empty($thumbnails)}
{if $AK_THUMBNAILS_LOC == 'top' or $AK_THUMBNAILS_LOC == 'bottom'}
<table class="ak_display_horizontal">
{else}
<table class="ak_display">
{/if}

J'ai fait une recherche vite fait dans tout notre code et je n'ai pas trouvé de booléen.

;-)

Eric
2009-09-26 18:47:23

Bonjour à tous.

Dans la série "j'aime bien Smarty mais c'est Smarty qui ne m'aime pas", je suis en train de devenir chèvre ! Dans un fichier tpl, je cherche à afficher un bout de html en fonction de l'état d'une variable. Un peu dans ce style :

Code:

{if $mavariable == true}
   <mon code HTML>
{else}
   < un autre code HTML>
{/if}

$mavariable est initialisée à true ou false dans le fichier php qui appelle le tpl. Mais çà ne marche pas et je n'ai pas de messages d'erreur à me mettre sous la dent pour débugguer.

Quelqu'un aurait-il une idée ?

P.S : J'ai volontairement généralisé le code en exemple pour que l'astuce puisse servir à d'autres. Mais si nécessaire, je peux, bien entendu, produire ici le code original complet.

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact