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
Dichiarare un array nella logica smarty
Moderator: magallo
Re: Dichiarare un array nella logica smarty
Eh sìvaleriop@ wrote: ... ma non va, e credo di essere un po' fuori strada.

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
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
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
Ma menu2 quando lo definisci ed inserisci i valori?valeriop@ wrote: Ciao Alby e grazie per la disponibilità.
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
... 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...
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
No, è un altro scopevaleriop@ wrote: Posso ancora leggerla anche fra i tag {php} ?
Hai messo {literal} da qualche parte?
Alby
Re: Dichiarare un array nella logica smarty
Allora non capisco come faccia a stampare il codice.valeriop@ wrote: no..
Devi guardare inserendo qualcosa per il debug, ad esempio nel loop del foreach {$node|print_r} per vedere se le variabili ci sono
Alby