Buenas estoy realizando un formulario en una ventana modal con Yii Framework.
Estoy teniendo problemas ya que estoy usando dicho formulario en una ventana modal y cuando intento llamar al login me sale un error diciendo: Undefined variable: $modal
, y no se carga ni si quiera la página.
Aquí os dejo la ventana modal con el código:
<div class="modal fade in" id="abrirAcceder" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="top: 100px;">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button><br><br>
<h5 class="modal-title" id="myModalLabel">
<i class="fa fa-user fa-lg"></i>
ACCEDE A TU CUENTA
<span class="subheader right small-link">
<a href="#" data-dismiss="modal" aria-hidden="true" data-toggle="modal" data-target="#register_panel" data-reveal-id="register_panel" id="nueva-cuenta" class="radius secondary small button">CREAR NUEVA CUENTA</a>
</span>
</h5>
</div>
<div class="modal-body">
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'login-form',
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
),
)); ?>
<div class="col-md-6">
<?php echo $form->textField($model,'username'); ?>
<?php echo $form->error($model,'username'); ?>
</div>
<div class="col-md-6">
<?php echo $form->passwordField($model,'password'); ?>
<?php echo $form->error($model,'password'); ?>
</div>
<p class="col-md-12">
<small>
<i class="fa fa-lock"></i>
Tu <a target="_blank" href="<?php echo Yii::app()->createUrl('/site/politica') ?>">privacidad</a> es importante para nosotros. Nunca venderemos tu información.
</small>
</p>
<div class="col-md-12">
<?php echo CHtml::submitButton('Login'); ?>
<a href="#" class="facebook_connect radius button facebook"><i class="fa fa-facebook-square"></i> Haz login con facebook</a>
</div>
<?php //$this->endWidget(); ?>
</div><! -- div -->
<div class="col-md-12">
<hr>
<ul class="inline-list">
<li>
<small>
<a href="#" data-dismiss="modal" aria-hidden="true" data-toggle="modal" data-target="#forgot_panel" data-reveal-id="forgot_panel">¿OLVIDASTE TU CONTRASEÑA?</a>
</small>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
Esta ventana modal se encuentra en el main del tema y dentro de ella se cargan las diferentes páginas como el index, etc, etc.
He estado viendo que ese problema se arregla con ajax pero no tengo mucha idea, si alguien sabe como hacerlo lo agradecería.
Dejo también el código del SiteController:
public function actionLogin()
{
$model=new LoginForm;
// if it is ajax validation request
if(isset($_POST['ajax']) && $_POST['ajax']==='login-form')
{
echo CActiveForm::validate($model);
Yii::app()->end();
}
// collect user input data
if(isset($_POST['LoginForm']))
{
$model->attributes=$_POST['LoginForm'];
// validate user input and redirect to the previous page if valid
if($model->validate() && $model->login())
$this->redirect("index.php");
}
// display the login form
$this->render('login',array('model'=>$model));
}
El modelo del LoginForm es el básico que te crea Yii por defecto.
Y el UserIdentity igual, creo que el problema estará en esos 2 trozos de código.