Location: PHPKode > projects > Chalange > com_chalange/controller.php
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );


jimport( 'joomla.application.component.controller' );

 /**
  * Chalange Component Controller
  *
  * @package Chalange
  */

  class ChalangeController extends JController
  {
		/**
		 * Method to show a mycomponent view
		 */
		function display()
		{
			 // Set a default view (carreras) if none exists
			 if ( ! JRequest::getCmd( 'view' ) ) {
					JRequest::setVar('view', 'carreras' );
			 }
 			parent::display();
  		}
  		
  		function licenceValidation(){
  			$model=& $this->getModel('licenceForm');
  			$post=JRequest::get('post');
  			$licence=JRequest::getCmd('licence');
  			$idCarrera=JRequest::getCmd( 'idCarrera' );
  			$option=JRequest::getCmd('option');
  			if ($licence==''){
  				$this->setRedirect("index.php?option=$option&view=registered&idCarrera=$idCarrera");
  				$this->setMessage($name." ".JText::_('LICENCE NUMBER NOT VALID'));	
  			}else{
	  			if ($model->isRegistered($post)){ //si el corredor ya se había inscrito para la cerrara
	  				$this->setRedirect("index.php?option=$option&view=registered&idCarrera=$idCarrera");
	  				$aux=$model->getPlayer($post);
	  				$name=$aux->name." ".$aux->surname;
	  				$this->setMessage($name." ".JText::_('IS ALREADY REGISTERED'));	
	  			} else { //si no estaba inscrito
	  				$player=$model->getPlayer(JRequest::get('post'));
	  				if (empty($player)){ //no existe el corredor en la BBDD
	  					$licenceId=JRequest::getCmd('licence');
	  					$this->setRedirect("index.php?option=$option&view=playerForm&idCarrera=$idCarrera&licenceId=$licenceId");
	  				} else { //el corredor existe en la BBDD
	  					$licenceId=$player->id;
	  					$this->setRedirect("index.php?option=$option&view=player&licenceId=$licenceId&idCarrera=$idCarrera");
	  				}
	  			}
  			}
  		}
  		
  		function registerAndRecord(){//Insertamos un corredor que no estaba almacenado en gcd_players con anterioridad
  			$option=JRequest::getCmd('option');
  			$playerModel=& $this->getModel('player');
  			$registerModel=& $this->getModel('register');
  			$idCarrera=JRequest::getCmd( 'idCarrera' );  			
			$idPlayer=$playerModel->store(JRequest::get('post'));//almacenamos el nuevo corredor y recuperamos su id
			if($idPlayer>0){	//si el id devuelto es mayor que 0 es que ha sido almacenado correctamente
  				$player=$playerModel->getPlayer($idPlayer);
  				if($registerModel->store($idPlayer,$player,$idCarrera)){ //inscribimos al corredor en la carera
  				//si se inscribe con éxito
  					$this->setRedirect("index.php?option=$option&view=registered&idCarrera=$idCarrera"); //volvemos a la vista de inscritos de la prueba
  					$this->setMessage($name." ".JText::_('IS REGISTERED'));	 //mostramos mensaje de confirmación.
  				}
  			}			
  		}
  		
  		function registerModificado(){
  			$option=JRequest::getCmd('option');
  			$registerModel=& $this->getModel('register');
  			//$playerModel=& $this->getModel('player');
  			//$playerModel->getPlayer(JRequest::getCmd( 'idPlayer' ));
  			$idCarrera=JRequest::getCmd( 'idCarrera' );
  			$aux=JRequest::get('post');
  			//echo $aux['name'];
  			$this->setRedirect("index.php?option=$option&view=registered&idCarrera=$idCarrera");
  			if($registerModel->modifyAndStore(JRequest::getCmd( 'idPlayer' ),JRequest::get('post'),$idCarrera)){
  					//si se inscribe con éxito
  					$this->setMessage($name." ".JText::_('IS REGISTERED'));	
  			} else{
  					$this->setMessage($name." ".JText::_('IS ALREADY REGISTERED'));	
  			}
  		}
  		
  		function register(){ //insertamos un corredor ya almacenado en gcd_registered sin modificaciones
  			$mainframe =& JFactory::getApplication(); 
			$chalangeId= $mainframe->getUserState("$option.chalange_variable");
  			$option=JRequest::getCmd('option');
  			$registerModel=& $this->getModel('register');
  			$playerModel=& $this->getModel('player');
  			$player=$playerModel->getPlayer(JRequest::getCmd( 'idPlayer' ));  			
  			$dorsal=$playerModel->getDorsal(JRequest::getCmd( 'idPlayer' ),$chalangeId);
  			$player->dorsal=$dorsal;
  			$idCarrera=JRequest::getCmd( 'idCarrera' );
  			$this->setRedirect("index.php?option=$option&view=registered&idCarrera=$idCarrera");
  			if($registerModel->store(JRequest::getCmd( 'idPlayer' ),$player,$idCarrera)){
  					//si se inscribe con éxito
  				$this->setMessage($name." ".JText::_('IS REGISTERED'));	
  			} else {
  				$this->setMessage($name." ".JText::_('IS ALREADY REGISTERED'));
  			}
  		}
  		
		//tarea download: Descarga el fichero excell con los incritos para una carrera
  		function download(){
			require_once( JPATH_COMPONENT.DS.'helpers'.DS.'excel_writer.php' );
  			$registeredModel=& $this->getModel('registered');
			$idCarrera=JRequest::getCmd( 'idCarrera' );
			$raceModel=& $this->getModel('licenceform');
			$raceName=$raceModel->getRaceName($idCarrera);
			$registered=$registeredModel->getRegistereds($idCarrera);		
			writeExcel::createRegisteredSheet($raceName."_".JText::_('REGISTERED SHEET'),$registered);	
  			exit; //importante para que se descarge el fichero y temrine el stream binario.
		}
  		
  		
  }
?>
Return current item: Chalange