Page 1 of 1
Dichiarare un array nella logica smarty
Posted: Wed Jun 10, 2009 3:51 pm
by valeriop@
Buona giornata a tutti!
Nel costruire un menu nel modulo Gestore Menu, mi sto sbattendo con un problema di dichiarazione variabile di tipo array.
Ho un ciclo che scorre gli items:
{foreach from=$nodelist item=node}
{if $node->depth == 1 and substr($node->hierarchy, 0, 1) == "2"}
-- qui mi serve di memorizzare gli $node->url trovati in un array chiamato $menu1 che devo anche dichiarare.
{/if}
{/foreach}
Ho provato a mettere:
{literal}
url
?>
{/literal}
... ma non va, e credo di essere un po' fuori strada.
Aiutino?
Grazie, Valerio
Re: Dichiarare un array nella logica smarty
Posted: Wed Jun 10, 2009 4:30 pm
by alby
valeriop@ wrote:
... ma non va, e credo di essere un po' fuori strada.
Eh sì

smarty è un linguaggio di "presentazione", non ha tutti i tools per la programmazione ...
non capisco perchè non "riutilizzi" il codice in altro template:
{foreach from=$nodelist item=node}
{if $node->depth == 1 and substr($node->hierarchy, 0, 1) == "2"}
.....
{/if}
{/foreach}
e utlizzi questo dove vuoi
Alby
Re: Dichiarare un array nella logica smarty
Posted: Wed Jun 10, 2009 5:21 pm
by valeriop@
Ciao Alby e grazie per la disponibilità.
Continuo ad essere confuso:
nel mio caso ho un file navigazione.js che ho incluso nel template del CMS mettendo:
Nel file ho le funzioni che mi gestiscono il menu.
Ho poi incluso:
{cms_module module='menumanager' template='menu_mio'}
Ora, quando mi vado a creare col menu manager il modello del mio menu, chiamandolo "menu_mio", dovrei inserirci:
<A onmouseover="return dropdownmenu(this, event, [glow=red,2,300]menu2[/glow], '200px')"
dove l'array "menu2" deve contenere gli elementi che mi interessano e che pensavo di intercettare con il ciclo foreach.
Qualche idea ?
Un saluto, Valerio
Re: Dichiarare un array nella logica smarty
Posted: Wed Jun 10, 2009 5:49 pm
by alby
valeriop@ wrote:
Ciao Alby e grazie per la disponibilità.
Ma menu2 quando lo definisci ed inserisci i valori?
Forse:
Con Menu template
jsmenu:
{foreach from=$nodelist item=node}
{if $node->depth == 1 and substr($node->hierarchy, 0, 1) == "2"}
myArray[] = $node->url;
{/if}
{/foreach}
Alby
Re: Dichiarare un array nella logica smarty
Posted: Wed Jun 10, 2009 6:53 pm
by valeriop@
... non mi funziona ancora.
Nel template Cms ho messo:
Nel Menu 'menu_mio' ho messo:
{foreach from=$nodelist item=node}
{if $node->depth == 1 and substr($node->hierarchy, 0, 1) == "2"}
menu2[] = $node->url;
{/if}
{/foreach}
ma mi riporta 'menu2[] = $node->url;' nella pagina.
Se metto invece:
{foreach from=$nodelist item=node}
{if $node->depth == 1 and substr($node->hierarchy, 0, 1) == "2"}
{php} menu2[] = $node->url; {/php}
{/if}
{/foreach}
la variabile $node->url non è più valorizzata, come se non fosse definita.
Posso ancora leggerla anche fra i tag {php} ?
Grazie di nuovo...
Re: Dichiarare un array nella logica smarty
Posted: Wed Jun 10, 2009 7:24 pm
by alby
valeriop@ wrote:
Posso ancora leggerla anche fra i tag {php} ?
No, è un altro scope
Hai messo {literal} da qualche parte?
Alby
Re: Dichiarare un array nella logica smarty
Posted: Wed Jun 10, 2009 7:26 pm
by valeriop@
no..
Re: Dichiarare un array nella logica smarty
Posted: Wed Jun 10, 2009 7:37 pm
by alby
valeriop@ wrote:
no..
Allora non capisco come faccia a stampare il codice.
Devi guardare inserendo qualcosa per il debug, ad esempio nel loop del foreach {$node|print_r} per vedere se le variabili ci sono
Alby