Dichiarare un array nella logica smarty

La discussione sul CMS Made Simple in italiano.

Moderator: magallo

Post Reply
valeriop@
Forum Members
Forum Members
Posts: 51
Joined: Tue May 12, 2009 5:57 pm

Dichiarare un array nella logica smarty

Post 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
alby

Re: Dichiarare un array nella logica smarty

Post 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
valeriop@
Forum Members
Forum Members
Posts: 51
Joined: Tue May 12, 2009 5:57 pm

Re: Dichiarare un array nella logica smarty

Post 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
alby

Re: Dichiarare un array nella logica smarty

Post 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
valeriop@
Forum Members
Forum Members
Posts: 51
Joined: Tue May 12, 2009 5:57 pm

Re: Dichiarare un array nella logica smarty

Post 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...
alby

Re: Dichiarare un array nella logica smarty

Post by alby »

valeriop@ wrote: Posso ancora leggerla anche fra i tag {php} ?
No, è un altro scope
Hai messo {literal} da qualche parte?

Alby
valeriop@
Forum Members
Forum Members
Posts: 51
Joined: Tue May 12, 2009 5:57 pm

Re: Dichiarare un array nella logica smarty

Post by valeriop@ »

no..
alby

Re: Dichiarare un array nella logica smarty

Post 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
Post Reply

Return to “Italian - Italiano”