Espero sue sea ésto a lo que os referís.
Gracias de nuevo y disculpad por la ignorancia.
Código PHP:
<?php
/**
* eventos actions.
*
* @package circuito
* @subpackage eventos
* @author Your name here
* @version SVN: $Id: actions.class.php 12479 2008-10-31 10:54:40Z fabien $
*/
class eventosActions extends sfActions
{
/**
* Executes index action
*
* @param sfRequest $request A request object
*/
public function executeIndex(sfWebRequest $request)
{
}
public function executeFia(sfWebRequest $request)
{
}
public function executeListado(sfWebRequest $request)
{
# Obtenemos todos los eventos
$c = new Criteria;
$c->add( EventosPeer::ESTADO_EVENTO_ID, $request->getParameter('tipo') );
$c->add( EventosPeer::VISIBLE, 1 );
$c->add( EventosPeer::TIPO_EVENTO_ID, 2 );
if( $request->getParameter('tipo') == 1 )
$c->addAscendingOrderByColumn( EventosPeer::FECHA );
else
$c->addDescendingOrderByColumn( EventosPeer::FECHA );
$this->eventos = EventosPeer::doSelect( $c );
}
public function executeDetalles(sfWebRequest $request)
{
# Si no llega el id o no llega el slug devolvemos error
$this->forward404If( $request->getParameter('id') == '' || $request->getParameter('slug') == '' || !ctype_digit( (string)$request->getParameter('id') ) );
# Obtenemos los detalles del evento
$this->evento = EventosPeer::retrieveByPk( $request->getParameter('id') );
# Si no existe el contenido o esta invisible
$this->forward404If( !$this->evento || $this->evento->getVisible() != 1 );
# Si el slug no coincide con el que llega por la url lo redirigimos
$this->redirectIf( $this->evento->getSlug() != $request->getParameter('slug'), '@detallesEvento?slug=' . $this->evento->getSlug() . '&id=' .$this->evento->getId() );
# Cambiamos el titulo de la pagina
$this->getResponse()->setTitle( 'Evento: ' . $this->evento->getTitulo() );
}
}