[Smarty] Stampa di una tabella dinamica, condizione su una cella

felino

Utente Attivo
12 Dic 2013
941
10
18
Aci Catena (Catania)
Salve a tutti,
sto lavorando ad un progetto già avviato in cui viene utilizzato Smarty.

ll problema non riguarda Smarty in se, ma la visualizzazione di una tabella dinamica, esattamente l'echo dell'ultima cella di ogni riga...quindi è più un problema di logica...
Dovrei evitare di stamparla se tutte le altre cella della riga sono vuote...

Ho provato con:
1) un if sul valore della variabile che la cella deve contenere, ovviamente però se è vuota la tabella ci saranno righe che avranno l'ultima cella e righe che invece saranno vuote
2) se l'if lo inserisco dentro il td della cella, questa viene stampata sempre...

Ecco qui il codice:
Codice:
        {foreach from=$dati item=d name=dati}
            {if $camino_old <> $d.camino and not $smarty.foreach.dati.first}
                <tr>
                    <td colspan="5"><div style="width:100%;height:1px;border:1px solid black;overflow:hidden"></div></td>
                </tr>            
            {/if}
            {if $flagnote == 'true'}
                {if $d.camino == 'Tutti' and $first}
                    <tr class="top" style="font:12px">
                        <td colspan="5" align="center"><b>Note Generali</b></td>
                    </tr> 
                    {assign var="first" value=false}           
                {/if}
            {/if}                
            <tr class="{cycle values='even,odd'}" style="font:12px;">
          	    {if $d.camino == 'Tutti'}
          	        {if $flagnote == 'true'}            
                  	    <td width="100px" align="center"><b>{$camini[$d.camino]}</b></td>
                  	    <td width="80px" align="center">{$d.datarif}</td>
                    {/if}  
                	{else}  
              	    	<td width="100px" align="center"><b>{$camini[$d.camino]}</b></td>
              	    	<td width="80px" align="center">{$d.datarif}</td>                
                	{/if}                                                  	    

          	    {if $d.camino == 'Tutti'}
          	        {if $flagnote == 'true'}
          	            <td colspan="2">{$d.note}</td>
                    {/if}          	            
                {else}
              	    <td width="200px">{$d.note}</td>
                {/if}
                
                {if $d.camino <> 'Tutti'}
          	        <td>{$d.note_estese}</td>
          	    {/if}    
          	    <td align="center" >
          	        {if $d.idfile <> ''}
                        <img title="{$d.nomefile}" src="{$SITEURL}img/page.gif" style="cursor:pointer" onClick="document.location='dl.php?id={$d.idfile}'">
                    {/if}    
                </td>
            </tr>
            {assign var = camino_old value = $d.camino}
        {/foreach}

Suggerimenti?
Se utilizzassi un flag booleano?

Grazie.
 
Alla fine, ho dovuto contattare il precedente sviluppatore per conoscere la "logica" da lui utilizzata, risolvendo il problema tramite un semplice IF con la giusta condizione.

Grazie comunque, so benissimo che il mio thread era molto vago e che risultava difficile darmi una mano!
 

Discussioni simili