Page 1 of 1

[SOLVED] Cambiare titolo pagina

Posted: Sun Jun 27, 2010 11:30 am
by nervino
Ho una pagina che richiama un modulo.
Vorrei cambiare il titolo della pagina, tag {title}, in base ad una variabile definita nel modulo ed assegnata a Smarty.

Si può fare?

Ho provato in vari modi ma non ci riesco. Credo che il motivo sia che il modulo richiamato nel content della pagina viene elaborato successivamente al {title}...

ciao

Re: Cambiare titolo pagina

Posted: Sun Jun 27, 2010 2:10 pm
by protempore
se inserita la variabile nel campo "Dati o logica Smarty specifica di questa pagina:" e con presente il tag {process_pagedata} in testa al template dovrebbe essere possibile richiamarne il valore anche nell'head.

Re: Cambiare titolo pagina

Posted: Sun Jun 27, 2010 6:58 pm
by nervino
Il fatto è che se metto la var in quel campo, il titolo mi cambia in tutte le "pagine" del modulo (di elenco, di dettaglio ecc.) poiché il modulo è caricato sempre in quella stessa pagina.

Quello che vorrei riuscire a fare, se si può, è valorizzare la variabile nelle pagine php del modulo (action.elenco,php, action.dettaglio.php ecc.) e catturarla poi nella pagina del cms, magari dal campo "Dati o logica Smarty specifica di questa pagina:", ed assegnare il suo valore al tutle della pagina.

Sono stato abbastanza confuso?

grazie!

Re: Cambiare titolo pagina

Posted: Mon Jun 28, 2010 6:11 am
by protempore
Sono stato abbastanza confuso?
non lo so... io però non ho capito nulla...
;)

Re: Cambiare titolo pagina

Posted: Mon Jun 28, 2010 7:31 am
by nervino
Per festeggiare il nuovo bel look del forum, ci riprovo.

In una pagina di CMSMS (documenti) richiamo un modulo che ho fatto.

Nel template della pagina:

1) ho impostato il tag {title} che visualizza in alto il nome della pagina, ad esempio "Elenco documenti".

2) più sotto, in un DIV, ho inserito il tag {content}


Nel modulo seleziono i record dal DB e ne visualizzo il dettaglio.

Vorrei che nella visualizzazione del dettaglio, il {title} della pagina fosse diverso, ad esempio "Dettaglio".

Per farlo dovrei trovare un modo per sovrascrivere il tag {title} in base ad una variabile proveniente dal modulo, ma non so come fare.

Re: Cambiare titolo pagina

Posted: Mon Jun 28, 2010 8:45 am
by protempore
forse adesso è più chiaro...
scusa, ma il tag {title} non è mica obbligatorio metterlo...

al suo posto puoi mettere ciò che vuoi...

"Dettaglio" oppure {$variabilechetipare}

ad esempio per evidenziare il titolo di un evento gestito da un modulo da me creato ho messo:
{sitename} - {$item_evento.titolo}
e visualizzo in alto il titolo dell'evento... non della pagina

Re: Cambiare titolo pagina

Posted: Mon Jun 28, 2010 11:55 am
by nervino
È vero. Però riesco ad inserire il contenuto della variabile solo nel tag dell'.

Nel modulo, ho creato la variabile $tit="scheda" e l'ho passata a Smarty.

Se nel tag del template la richiamo con {$tit}, mi stampa "scheda" nel tag title.
Se la richiamo più sotto, nel body, non mi stampa niente.

Ho provato anche a catturarla nell'head con capture:

Code: Select all

{capture assign='titolo'}
{$tit}
{/capture}
e a stampare {$titolo} nel body. Sempre vuoto...

Non capisco dove sbaglio..

Re: Cambiare titolo pagina

Posted: Mon Jun 28, 2010 12:16 pm
by protempore
attenzione...

se hai creato la variabile $tit nel modulo, ma il modulo è predisposto per "sostituire" il contenuto del content a seconda di cosa deve visualizzare, la variabile che hai settato può essere che non sia effettivamente disponibile...

In pratica se hai settato la variabile nel modello che visualizza la lista, non esisterà più nello stesso modulo che visualizza il dettaglio anche se è proposto nella stessa pagina.

La variabile andrebbe settata in ogni modello che utilizza il modulo... sia esso lista, dettaglio o altro.

Re: Cambiare titolo pagina

Posted: Mon Jun 28, 2010 5:42 pm
by nervino
La variabile la trovo valorizzata nel modello solo dopo il tag {content}. Prima è vuota.

Ho risolto catturando l'intero content prima di visualizzarlo:

Nel template:

Code: Select all

</__body>
{capture assign='titolo'}
{content}
{/capture}

...

{content}

...

<div>
   <h1 class="border_bottom">
{if isset($tit)}{$tit}{else}{title}{/if}</h1></div>

In questo modo funziona.

Mi sfugge ancora il perché non serva il riferimento al nome del "capture" (titolo), ma funziona..

Re: Cambiare titolo pagina

Posted: Tue Jun 29, 2010 7:27 am
by protempore
nervino wrote: ...Mi sfugge ancora il perché non serva il riferimento al nome del "capture" (titolo), ma funziona..
beh... questo si intuisce facilmente...

per generare la variabile "titolo" deve necessariamente essere processato {content} e, conseguentemente le variabili che esso genera...

un'altra soluzione potrebbe essere quella di inserire invece che {capture} un {content block=...} nella stessa posizione con l'opzione "assign"

{content block="test" oneline="true" assign="titolo"}

e nella pagina inserire il tag del modulo nel campo "test"