Rapture
(Alextognolo)
October 15, 2013, 12:03am
1
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…
sensorario
(Sensorario)
October 15, 2013, 7:28am
2
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
Rapture
(Alextognolo)
October 15, 2013, 9:05am
3
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!
zaccaria
(Matteo Falsitta)
October 15, 2013, 9:33am
4
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));
st4nny
(St4nny)
October 15, 2013, 1:14pm
5
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.
sensorario
(Sensorario)
October 15, 2013, 1:14pm
6
Esattamente come dice zaccaria. In alternativa, c’è anche il $this->renderPartial() che renderizza un piccolo template.