Chiarimento sulle view

Ciao,

vorrei un vostro chiarimento sul funzionamento dei layouts nella cartella views.

Nella cartella views, ho creato un’altra cartella chiamata admin avendo così:

  • layouts

  • admin

  • site

Ho capito che i file nella cartella site utilizzano come layout il file main.php.

Voglio realizzare un pannello per gli admin con menu completamente diverso da quello presente nella cartella site.

Devo utilizzare un’altro layout da usare nella cartella admin giusto?

Spero di essere stato chiaro

Puoi anche avere un unico layout per tutto il sito.

Se creassi un’altro layout, come gli specifico quale utilizzare?

Ogni controller ha impostata la proprietà del layout. Se ne apro uno a caso vedo questo:




    public $layout = '//layouts/column2';



Se vuoi puoi impostarlo al volo dentro ad un metodo. Occhio a NON mettere l’estensione.




    public function actionMappa() {

        $layout = '//layouts/trecolonne';

    }



Se noti, SiteController non ha impostata la proprietà layout. E tu ti chiederai: "e come fa a sapere che deve aprire main.php?". La risposta la trovi nella superclasse Controller (/protected/components/Controller.php):




<?php

class Controller extends CController {


    public $layout = '//layouts/column2';


    public $menu = array();


    public $breadcrumbs = array();


}



Per semplificare la lettura ho tolto i commenti.

Ogni controller ha impostata la proprietà del layout. Se ne apro uno a caso vedo questo:




    public $layout = '//layouts/column2';



Se vuoi puoi impostarlo al volo dentro ad un metodo. Occhio a NON mettere l’estensione.




    public function actionMappa() {

        $layout = '//layouts/trecolonne';

    }



Se noti, SiteController non ha impostata la proprietà layout. E tu ti chiederai: "e come fa a sapere che deve aprire main.php?". La risposta la trovi nella superclasse Controller (/protected/components/Controller.php):




<?php

class Controller extends CController {


    public $layout = '//layouts/column2';


    public $menu = array();


    public $breadcrumbs = array();


}



Per semplificare la lettura ho tolto i commenti.

Provo subito, vediamo che succede :lol: