[SOLVED] Cambiare titolo pagina

La discussione sul CMS Made Simple in italiano.

Moderator: magallo

Post Reply
nervino
Power Poster
Power Poster
Posts: 448
Joined: Sun Dec 28, 2008 12:15 pm

[SOLVED] Cambiare titolo pagina

Post 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
Last edited by nervino on Mon Jun 28, 2010 5:43 pm, edited 1 time in total.
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm

Re: Cambiare titolo pagina

Post 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.
An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
nervino
Power Poster
Power Poster
Posts: 448
Joined: Sun Dec 28, 2008 12:15 pm

Re: Cambiare titolo pagina

Post 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!
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm

Re: Cambiare titolo pagina

Post by protempore »

Sono stato abbastanza confuso?
non lo so... io però non ho capito nulla...
;)
An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
nervino
Power Poster
Power Poster
Posts: 448
Joined: Sun Dec 28, 2008 12:15 pm

Re: Cambiare titolo pagina

Post 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.
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm

Re: Cambiare titolo pagina

Post 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
Last edited by protempore on Mon Jun 28, 2010 9:18 am, edited 1 time in total.
An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
nervino
Power Poster
Power Poster
Posts: 448
Joined: Sun Dec 28, 2008 12:15 pm

Re: Cambiare titolo pagina

Post 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..
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm

Re: Cambiare titolo pagina

Post 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.
An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
nervino
Power Poster
Power Poster
Posts: 448
Joined: Sun Dec 28, 2008 12:15 pm

Re: Cambiare titolo pagina

Post 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..
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm

Re: Cambiare titolo pagina

Post 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"
An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
Post Reply

Return to “Italian - Italiano”