Yii Framework Forum: Actualizar modelo usando onclick o ajaxLink - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Actualizar modelo usando onclick o ajaxLink Como contar los clicks en un gestor de banners Rate Topic: -----

#1 User is offline   netbur 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 42
  • Joined: 03-June 09

Posted 30 April 2010 - 07:18 AM

Saludos :

He creado un gestor de banners para mi aplicación, ya se encuentra operativo. He pensado que sería bueno contar los clicks que recibe cada banner, así que he pensado en como hacerlo y aunque se me ocurren 2 maneras no encuentro la solución y no se si es buena idea.

La primera es hacerlo con ajaxLink :
<?php echo CHtml::ajaxLink(CHtml::image(Yii::app()->baseUrl."/images/banners/".$banner->imagen, $banner->nombre, array('class'=>'noborder', 'height'=>100, 'width'=>300)) , '/banner/click/id/'.$banner->id);?>


Pero esto se supone que actualiza una capa, pero lo que tengo que hacer es redireccionar a la url del banner, no se si en la función puedo hacer algo, pero a mi no me funciona :

public function actionClick()
	{
				
		if($id!==null || isset($_GET['id']))
			$model=banner::model()->findbyPk($_GET['id']);
			
		if($model===null)
				throw new CHttpException(500,'Se ha producido un error.');
						
		$model->clicks = $model->clicks + 1;
		
		if($model->save())
			$this->redirect(($model->url);
			
	}


La otra manera sería hacerlo con un onclik pero todavía no he mirado como hacerlo.

¿Es alguna de estas la manera más optima o se os ocurre otra mejor?, gracias
0

#2 User is offline   PoL 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 506
  • Joined: 05-November 08
  • Location:Buenos Aires, Argentina

Posted 30 April 2010 - 07:49 AM

Los banners redireccionan a algun controlador/accion de yii... o son enlaces externos.

En el primero de los casos podes agregar un una variable get al link, suponete contar=1
Despues en la accion, preguntas por el parámetro y si es uno, actualizas el contador (que imagino que almacenarás en algun lugar de la base)
Esto de contar=1 es porque eso lo pones solo en los banners (que es lo que queres contar) si otra parte de la aplicacion tambien hacer referencia a ese controlador/accion pero no debe ser contado, directamente no agregas nada (o sea no tenes que buscar todos los enlaces para agregarles la variable get)


Si son externos vas a tener que seguir por la via que venís me parece.
Don't say what you think, think what you say
The problem is communication! Excess of communication!
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users