Ciao a tutti,
sto creando un sito a sezioni e mi semplificherebbe molto la vita recuperare la profondità della pagina in cui mi trovo.
usando {get_template_vars} ho dato un okkio alle varibaili disponibili e la cosa che si avvicina di più a quello che mi serve è $friendly_position ...
in realtà ho la necessità di distinguere le pagine di 2° livello dalle altre. Poi con content dump vado a recuperare da queste pagine le info che voglio far ereditare alle pagine della sezione.
Qualche idea?
Recuperare la profondità di una pagina...
Moderator: magallo
- protempore
- Power Poster
- Posts: 599
- Joined: Mon Jan 14, 2008 9:08 pm
Re: Recuperare la profondità di una pagina...
hai guardato cgSimpleSmarty? a me sembra che ti possa essere utile...
An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
Mahatma Gandhi (1869-1948)
Re: Recuperare la profondità di una pagina...
... in effetti non ci avevo pensato. Ho sempre usato content dump. Proverò grazie 

Re: Recuperare la profondità di una pagina...
ho dato un okkio a cgSimpleSmarty, in effetti fa un pò di tutto ma non ha un metodo per recuperare la profondità della pagina attuale, potrebbe comunque essere una base per fare un UDT che la recuperi.
Probabilmente giocando un pò con i metodi get_parent_alias e get_root_alias e un contatore è possibile determinare la profondità di una pagina
Probabilmente giocando un pò con i metodi get_parent_alias e get_root_alias e un contatore è possibile determinare la profondità di una pagina
Re: Recuperare la profondità di una pagina...
A chi può interessare ne sono venuto a capo ;D
maxDeep indica il numero massimo di cicli.
Il ciclo verifica se l'alias del padre è differente dalla pagina root del ramo in cui ci troviamo, se la condizione è soddisfatta viene controllato il padre del padre ed incrementato il contatore.
Per renderlo più efficiente sarebbe necessario avere un comando per far finire il ciclo quando si ottiene home ma non ho trovato niene di simile a break in smarty...
Code: Select all
{counter start=0 assign='deep'}
{$cgsimple->get_parent_alias('',padre)}
{$cgsimple->get_root_alias('',root)}
{assign var="maxDeep" value=10}
{section name=rows loop=$maxDeep}
{if $padre != $root}
{$cgsimple->get_parent_alias($padre,padre)}
{counter assign='deep'}
{/if}
{/section}
la profondità di pagina è di {counter}
Il ciclo verifica se l'alias del padre è differente dalla pagina root del ramo in cui ci troviamo, se la condizione è soddisfatta viene controllato il padre del padre ed incrementato il contatore.
Per renderlo più efficiente sarebbe necessario avere un comando per far finire il ciclo quando si ottiene home ma non ho trovato niene di simile a break in smarty...
Re: Recuperare la profondità di una pagina...
Forse (e dico forse) si potrebbe fare prima prendendo la hierarchy della pagina e controllare il numero di punti che contiene (0 allora root, 1 deep 1, .....)
Alby
Alby