Formularios y modulos

[font="Arial"][/font][size="2"][font="Arial Black"]Hola! He instalado un modulo nuevo que existe, Cruge, para el control de roles de usuario, registro, login, y si bien es fácil de usarlo, me he encontrado con la siguiente duda/problematica:

He hecho un renderpartial de una vista de un formulario de este modulo, del formulario de registro, que esta en la carpeta protected/modules/cruge/views/ui/ en una vista normal de mi aplicación, en index… bien, al ejecutar el formulario, obviamente no llega al controlador del modulo, que se encuentra en protected/modules/cruge/controllers/UiController.php para que vaya al metodo actionRegiter que aquí se encuentra… alguna idea??? Gracias de antemano![/font][/size]

Saludos.

Primero que todo, creo que si hay algún error o algo más de información sería bueno para poder determinar las causas.Por otro lado, creo que esta solicitud se resolvería con mayor velocidad en la página yiiframeworkenespanol.org, porque allí está el desarrollador de la extensión y algunos desarrolladores de habla hispana.

Saludos.

Ya lo he solucionado! era un problema de conexión con el action del controlador, he usado el action de la vista que renderizo con el renderPartial, y ya funciona perfectamente, pero sin ajax…

mi formulario lo tengo así:


<?php 

Yii::app()->clientScript->registerCoreScript('yiiactiveform');//para añadir el yiiactiveform.js

$form = $this->beginWidget('CActiveForm', array(

		'id'=>'registration-form',

		'enableAjaxValidation'=>true,

		'enableClientValidation'=>true,

		'clientOptions'=>array(

			'validateOnChange'=>true,

			'validateOnSubmit'=>true)

	));


 ?>

y mi controlador:




if(isset($_POST['ajax']) && $_POST['ajax']==='registration-form')

		{

			echo CActiveForm::validate($model);

			Yii::app()->end();

		}

		

		if(isset($_POST[CrugeUtil::config()->postNameMappings['CrugeStoredUser']]))

		{

			$model->attributes=$_POST[CrugeUtil::config()->postNameMappings['CrugeStoredUser']];

			if($model->validate()){

                         ....

				



He imprimido la variable $POST y no me aparece ningún atributo ajax ni nada parecido…

Porque podría ser???

hola de nuevo,

he contado varios posts de tu parte acerca de que estas "renderizado parcialmente" a las vistas de cruge, lo cual desaconsejo enormemente porque se esta pasando por encima del sistema a la ligera, en fin es tu aplicacion y si se daña es tu responsabilidad pero mi intencion es "ayudar a que cruge ayude como mejor se pueda" y esto que has posteado varias veces no ayuda sino que enreda a otros usuarios, considerando que hay una buena mayoría que bajo entornos muy duros, entre ellos yo, hemos probado Cruge en situaciones bastante adversas sin siquiera modificar ni media linea del core.

Entendiendo finalmente que lo que quieres es simplificar el formulario de login, que de por si ya bastante simplificado esta, además que como la documentacion en README dice: en config puedes decir como quieres hacer login: "con usuario e email" o "solo usuario o solo email". entonces: si quieres hacer tu propio form de login, deberás copiar el form original y redirigir el action al UiController de cruge para que puedas aprovechar la programacion y filtros incluidos, sino, estarás subutilizando a cruge.

finalmente, entiendo que tu asunto es mas que todo estético, pues te he contado en otras partes que Cruge dispone de un API para usuarios, para UI y para RBAC, accesibles desde: Yii::app()->user->um, Yii::app()->user->ui, Yii::app()->user->rbac respectivamente.

que es lo que quieres realmente hacer ?

sigo sin entender para qué estas haciendo esto, es totalmente innecesario, ya cruge trae todo eso, solo necesitas comprender bien el uso de Layouts en Yii.

Como ya te comente, lo solucioné, el asunto de ajax.

Perdón si lio a algún usuario, pero lo que estaba haciendo no era ninguna locura, simplemente un renderPartial de una vista en otra, el problema era incompatibilidades entre librerías js, mías y del propio yii, y que no se especifican mucho en los manuales que hay de yii.

La configuración mía era correcta, y la de cruge también, probe cruge en un proyecto también y en menos de 15 minutos, como bien dices, lo tenía todo. Y es buenísimo.

Pero como también dices, yo necesito adaptarlo a mis necesidades, que no son exactamente las que cruge tiene por defecto. Ni mejores ni peores, ni más sencillas ni menos, simplemente otras.

Creo que en ningún momento he hablado malamente de cruge, todo lo contrario, era mi problema personal, por tener un template propio, que hace el trabajo más rcomplicado, y no puedo usar layout así como así, ya que me cargo otras vistas…

En fin, muchas gracias Christian por tu trabajo! eres el mejor!!!

Porqué registras


Yii::app()->clientScript->registerCoreScript('yiiactiveform');//para añadir el yiiactiveform.js

, eso es totalmente automatico.

Si es por el uso de renderPartial, asegúrate de procesar el output (con true en uno de sus parámetros) y ya está.