Location: PHPKode > projects > Chalange > com_chalange/administrator/controllers/race.php
<?php
/**
 * @version		$Id: application.php 13243 2009-10-20 04:01:04Z ian $
 * @package		Joomla
 * @subpackage	Config
 * @copyright	Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
 * @license		GNU/GPL, see LICENSE.php
 * Joomla! is free software. This version may have been modified pursuant to the
 * GNU General Public License, and as distributed it includes or is derivative
 * of works licensed under the GNU General Public License or other free or open
 * source software licenses. See COPYRIGHT.php for copyright notices and
 * details.
 */

// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

require_once( JPATH_COMPONENT.DS.'views'.DS.'raceadmin'.DS.'view.html.php' );

/**
 * @package		Joomla
 * @subpackage	Config
 */
class ChalangeAdminControllerRace extends ChalangeAdminController
{
		//Guardamos y nos quedamos en la pantalla actual
		function apply(){
 			//recuperamos los valores y los guardamos en la tabla
  			JTable::addIncludePath(JPATH_COMPONENT.DS.'tables');  		
   			$row=& JTable::getInstance('Races','Table');
   			   			
   			if(!$row->bindU(JRequest::get('post'),JRequest::getVar('raceResults', null, 'files', 'array'))){
   				echo "<script>alert('".$row->getError()."');
   				window.history.go(-1);</script>\n";
   				exit();
   			}
   			if(!$row->store()){
   				echo "<script>alert('".$row->getError()."');
   				window.history.go(-1);</script>\n";	
   				exit();
   			}
   			//almacenamos las categorías
   			$model=$this->getModel('raceAdmin');
   			$chalangeId=JRequest::getCmd('chalangeId');
   			$id=JRequest::getCmd('id');
   			if(empty($id)){ //si es una nueva carera
   				$id=$model->getLastId();
   				if(!empty($chalangeId))$model->asignRaceToChalange($id,$chalangeId);//Si se da de alta desde una chalange asociamos la carrera a la chalange
   			}
   			$categories=& $model->getCategories($id);
   			foreach($categories as &$v){//actualizamos el array de categorías con los valores retornados del formulario
   				$aux=JRequest::getCmd($v['name']);
   				$v['checked']=!empty($aux);
   					//echo $v['name']." ".$v['checked']; 
   			}
   			$model->setCategoriesToRace($id,$categories);//guardams los cambios de categorías en DB
  			$this->setRedirect('index.php?option=com_chalange&view=RaceAdmin&task=edit&cid[]='.$id.'&chalangeId='.$chalangeId); //recargamos la página
  			$this->setMessage(JText::_('LA CARRERA HA SIDO CORRECTAMENTE MODIFICADA'));	 //mostramos mensaje de confirmación.
		}
		//guardamos y salimos al listado general
		function save(){
 			//recuperamos los valores y los guardamos en la tabla
  			JTable::addIncludePath(JPATH_COMPONENT.DS.'tables');  		
   			$row=& JTable::getInstance('Races','Table');
   			if(!$row->bindU(JRequest::get('post'),JRequest::getVar('raceResults', null, 'files', 'array'))){
   				echo "<script>alert('".$row->getError()."');
   				window.history.go(-1);</script>\n";
   				exit();
   			}
   			if(!$row->store()){
   				echo "<script>alert('".$row->getError()."');
   				window.history.go(-1);</script>\n";	
   				exit();
   			}
   			//almacenamos las categorías
   			$model=$this->getModel('raceAdmin');

   			$chalangeId=JRequest::getCmd('chalangeId');
   			$id=JRequest::getCmd('id');
   			if(empty($id)){ //si es una nueva carera
   				$id=$model->getLastId();
   				if(!empty($chalangeId))$model->asignRaceToChalange($id,$chalangeId);//Si se da de alta desde una chalange asociamos la carrera a la chalange	
   			}
   			$categories=& $model->getCategories($id);
   			foreach($categories as &$v){ //actualizamos el array de categorías con los valores retornados del formulario
   				$aux=JRequest::getCmd($v['name']);
   				$v['checked']=!empty($aux);
   			}
   			$model->setCategoriesToRace($id,$categories);//guardams los cambios de categorías en DB
  			if (empty ($chalangeId)){ //si la llamada se hace desde una carrera editada directamente del listado de carreras regresamos al listado general
  				$this->setRedirect('index.php?option=com_chalange&view=racesAdmin'); //volvemos al listado general
  			}else{ //si la llamada se hace desde una carrera editada desde una chalange, regreseamos a la chalange
  				$this->setRedirect('index.php?option=com_chalange&view=chalangeAdmin&task=edit&cid[]='.$chalangeId); //volvemos a la chalange
  			} 
   			
		}  	
  		function cancel(){
  			$chalangeId=JRequest::getCmd('chalangeId');
  			if (empty ($chalangeId)){ //si la llamada se hace desde una carrera editada directamente del listado de carreras regresamos al listado general
  				JRequest::setVar('view','racesAdmin');
  			}else{ //si la llamada se hace desde una carrera editada desde una chalange, regreseamos a la chalange
  				JRequest::setVar('view','chalangeAdmin');
  				JRequest::setVar('cid',$chalangeId);
  				JRequest::setVar('task','edit');
  			} 
  			parent::display();
  		}	  		
  		/*Descarga los preincritos en formato hoja de calculo*/
  		function download(){
  			require_once( JPATH_COMPONENT_SITE.DS.'helpers'.DS.'excel_writer.php' );
  			$model=& $this->getModel('raceAdmin');
			$idCarrera=JRequest::getCmd('id');
			$raceName=$model->getRaceName($idCarrera);
			$registered=$model->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