Witam.
Jestem świeżym użytkownikiem Yii. Jest to mój pierwszy framework więc proszę o wyrozumiałość.
Mam otóż taki problem, że nie bardzo wiem jak wywołać funkcję logowania z kontrolera strony.
Wiem, że normalnie odbywa się to za pomocą akcji z tym, że ja umieściłem okna logowania w layouts/main.php gdyż chcę aby te okna były widoczne podczas przeglądania serwisu.
Użyłem modelu LoginForm.php zawartego w aplikacji demonstracyjnej.
Fragment kodu okien logowania z pliku layoutu main.php:
<?php if (Yii::app()->user->isGuest){
$model=new LoginForm;
$form=$this->beginWidget('CActiveForm', array(
'id'=>'login-form',
'enableAjaxValidation'=>true,
));?>
<div id="login"><?php echo $form->label($model,'Login');?></div>
<div id="logback1"><?php echo $form->textField($model,'username'); ?><?php echo $form->error($model,'username'); ?></div>
<div id="haslo"><?php echo $form->labelEx($model,'Haslo'); ?></div>
<div id="logback2"><?php echo $form->passwordField($model,'password'); ?></div>
<button type="submit"><img style="float: left;" src="<?php echo Yii::app()->request->baseUrl;?>/images/rp_nowa/save.png">Zaloguj</button>
<?php $this->endWidget(); ?>
<?php } ?>
W pliku modelu LoginForm.php nic nie zmieniałem.
Zastanawiam się dokładnie jak wywołać funkcję logowania z kontrolera bez wykonywania "akcji" przechodzacej na konkretna podstronę.
Próbowałem przenieść funkcje logowania do akcji index ale wtedy działa tylko kiedy jest się na stronie głównej.
Dodatkowo występuje taki błąd, że przy wpisaniu poprawnych danych i wciśnięciu "enter" okna logowania nie znikają. Dzieje się to dopiero po odświerzeniu strony. Natomiast po wciśnięciu przycisku "Zaloguj" wszystko jest ok.
Proszę o pomoc.
Z góry dziękuję i pozdrawiam.