<?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.
}
}