Codice Comune A Più Pagine. Dove Va?

Ciao a tutti…

Vorrei inserire in più pagine lo stesso blocco di codice html (esempio una lista di <li></li>) per fare una specie di menù secondario…

Qualcuno saprebbe indicarmi se c’è un posto adatto dove mettere il codice comune, in modo da poterlo solo richiamare senza riscriverlo ogni volta?

Grazie mille…

Si tratta di una vista, quindi immagino di posizionarlo all’interno della cartella protected/views. Probabilmente deve trovarsi in tutte le pagine, quindi il luogo più adatto potrebbe essere protected/views/layouts/main.php

Non in tutte… ma solo in alcune.

Magari creo un file in protected/views/layouts e poi richiamo il pezzo di codice in qualche modo…

Se non stessi usando yii metterei il codice in un file.inc ad esempio, in una funzione… includerei il file dove mi serve e richiamerei la funzione…

In yii il modo migliore per replicare questo comportamento qual è?

Grazie!

Fai un widget.

Un widget e’ un pezzo di controller che puo’ fare una render di un pezzo di view.

Crei una classe che estende CWidget, implementi la run e fai la tua render.

Lo richiami nelle view come:


$this->widget('application.widgets.Miowidget', array(dati));

oppure nel caso di menu, con variabili in sessione, puoi fare un layout apposito e richiamarlo nella specifica action o controller a seconda delle tue esigenze ;)

altrimenti la soluzione di zaccaria è ottima.

Esattamente come dice zaccaria. In alternativa, c’è anche il $this->renderPartial() che renderizza un piccolo template.