Per richiamare il widget in tutte le pagine nella main.php del mio template inserisco:
<?php $this->widget('loginWidget'); ?>
Di fatti viene mostrato correttamente il form di Login in tutte le pagine, ma se provo ad autenticarmi non succede nulla, ed il mio url diventa da "index.php" a "?LoginForm%5Busername%5D=admin&LoginForm%5Bpassword%5D=admin&LoginForm%5BrememberMe%5D=0&yt1=Login#"
Mentre se mi loggo tramite “index.php?r=site/login” l’autenticazione avvine corretamente…
non c’è bisogno di inserire il login su tutte le pagine,
devi solo filtrare gli accessi per ogni controller, sulle azioni che ti interessano
e automaticamente una volta contatta quella pagina verrai redirezionato sulla pagina di login.
Ci sono anche delle estensioni che ti aiutano in merito, ma sono consigliate per applicazioni di una certa entità. Guardati rights, e rbac in generale.
Grazie come sempre per la tua risposta, purtroppo però mi sono spiegato male:
Vorrei inserire il form di login nel main.php del mio template; non per gestire i permessi o i ruoli, ma per dare la possibilità agli utenti di fare il login in qualsiasi parte del sito (index, contact etc…).
Semplicemente un form login funzionante da inserire nel main.php
Se posso dare dei consigli, in verità buone pratiche diffuse e non dettate da me, quando un file contiene il nome di una classe, è bene che il file contenga il nome della classe. LoginWidget dovrebbe essere il nome corretto.
Riguardo alla posizione delle nostre estensioni, dentro components ci andrebbero i componenti: questo è un widget e dovrebbe trovarsi dentro alla cartella extensions. Yii non è per nulla fiscale e qualche volta sembra bello poter mettere le cose dove vogliamo. Ma poi che cosa succede se condividiamo il nostro codice? Un po’ di widget stanno in una cartella, altri in un’altra ancora. … E così si finisce per rendere complicato il lavoro.
si tutto vero, anche io ho storto il naso per quanto riguarda la posizione del widget, ma immagino che il nostro Andrea.p voleva solo far funzionare le cose, poi dopo con tutta calma avrebbe sistemato il codice
Anche per il nome del file, è sacrosanto rispettare le regole a cui fa riferimento sensorario
nel main va:
<?php $this->widget('LoginWidget'); ?>
l’orario di ieri notte, mi ha imposto di fare le cose alla svelta (nella maniera meno consona)