Los archivos son:
indexSuccess.php
Código PHP:
<?php
slot(
'title',
sprintf('> Proyectos > Todos'))
?>
<h1>Proyectos</h1>
<h4>Buscar</h4>
<form action="<?php echo url_for('proyecto/filtrar'); ?>" method="post">
<table border="1" cellpadding="1" cellspacing="1" class="tabla">
<tbody>
<?php
echo $filtro;
?>
</tbody>
</table>
<input type="submit" value="Buscar" name="filtrar"/>
<input class="button" type="reset" name="limpias" value="Limpiar"/>
</form>
<table border="1" cellpadding="1" cellspacing="1" class="tabla">
<thead>
<tr class="modo1">
<th>Codigo identificador</th>
<th>Nombre</th>
<th>Fecha inicio</th>
<th>Fecha fin estimada</th>
<th>Fecha fin real</th>
<th>Hs oficina calculada</th>
<th>Hs proyecto calculada</th>
<th>Hs proyecto cotizada</th>
<th>Costo estimado</th>
<th>Costo total</th>
<th>Encargado</th>
<th>Tipo Proyecto</th>
<th>Contacto</th>
<th>Usuarios Afectados </th>
<th>Imagen</th>
<th>PDF</th>
</tr>
</thead>
<tbody>
<?php
$proyectos = $pager->getResults();
?>
<?php foreach ($proyectos as $proyecto): ?>
<tr class="modo2">
<td><a href="<?php echo url_for('proyecto/show?id=' . $proyecto->getId()) ?>">
<?php if ($proyecto->getCodigoIdentificador() == null) : ?>
<?php echo $proyecto->getContacto()->getClienteCiudad()->getCliente()->getCodigoIdentificador() . '-' . $proyecto->getContacto()->getClienteCiudad()->getCodigoSede() . '-' . $proyecto->getTipoProyecto()->getCodigoTipo() . '-' . $proyecto->codigoIdentificador($proyecto->getTipoProyecto()->getId(), $proyecto->getId()) ?>
<?php else :
echo $proyecto->getCodigoIdentificador() ?>
<?php endif ?>
</a>
</td>
<td><a href="<?php echo url_for('proyecto/show?id=' . $proyecto->getId()) ?>"><?php echo $proyecto->getNombre() ?></a></td>
<td><?php
if ($proyecto->getFechaInicio() != null):
echo date("d/m/Y", strtotime($proyecto->getFechaInicio()));
else:
echo "fecha no definida";
endif
?></td>
<td><?php
if ($proyecto->getFechaFinEstimada() != null):
echo date("d/m/Y", strtotime($proyecto->getFechaFinEstimada()));
else:
echo "fecha no definida";
endif
?></td>
<td><?php
if ($proyecto->getFechaFinReal() != null):
echo date("d/m/Y", strtotime($proyecto->getFechaFinReal()));
else:
echo "fecha no definida";
endif
?></td>
<td><?php echo $proyecto->getHsOficinaCalculada() ?></td>
<td><?php echo $proyecto->getHsProyectoCalculada() ?></td>
<td><?php echo $proyecto->getHsProyectoCotizada() ?></td>
<td><?php echo $proyecto->getCostoEstimado() ?></td>
<td><?php echo $proyecto->getCostoTotal() ?></td>
<td><?php echo $proyecto->getSfGuardUser() ?></td>
<td><?php echo $proyecto->getTipoProyecto() ?></td>
<td><?php echo $proyecto->getContacto() ?></td>
<td><?php
$usuarios = $proyecto->getUsuariosProyecto();
foreach ($usuarios as $i => $usuario):
echo $usuario . '<br>';
endforeach
?>
</td>
<td> <?php echo image_tag('/uploads/images/thumbs/' . $proyecto->getFilename(), array('alt' =>
$proyecto->getCodigoIdentificador())); ?></td>
<td><a href="<?php echo url_for('proyecto/pdf?id=' . $proyecto->getId()) ?>">Ver PDF</a></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php include_partial('proyecto/paginas', array('pager' => $pager)) ?>
<a href="<?php echo url_for('proyecto/iniciados') ?>">Iniciados</a> | <a href="<?php echo url_for('proyecto/finalizados') ?>">Finalizados</a> | <a href="<?php echo url_for('proyecto/solpe') ?>">Con Solped</a> | <a href="<?php echo url_for('proyecto/facturados') ?>">Facturados</a> | <a href="<?php echo url_for('proyecto/cobrados') ?>">Cobrados</a><br>
<a href="<?php echo url_for('proyecto/new') ?>">Registrar</a>
Código PHP:
public function executeIndex(sfWebRequest $request) {
$this->proyectos = Doctrine_Core::getTable('Proyecto')
->createQuery('a')
->execute();
if (sfConfig::has('app_max_registros')) {
$nro = sfConfig::get('app_max_registros');
} else {
$nro = 10;
}
$this->pager = new sfDoctrinePager(
'proyecto',
$nro
);
$this->pager->setQuery(Doctrine::getTable('Proyecto')->createQuery('a'));
$this->pager->setPage($request->getParameter('page', 1));
$this->pager->init();
$this->filtro = new ProyectoFormFilter();
}
public function executeFiltrar(sfWebRequest $request) {
$this->filtro = new ProyectoFormFilter();
$this->filtro->bind($request->getParameter('proyecto_filters'));
if ($this->filtro->isValid()) {
//$this->consulta = $this->filtro->buildQuery($this->filtro->getValues());
//$this->proyectos = $this->consulta->execute();
$query = $this->filtro->buildQuery($this->filtro->getValues());
if (sfConfig::has('app_max_registros')) {
$nro = sfConfig::get('app_max_registros');
} else {
$nro = 10;
}
$this->pager = new sfDoctrinePager('proyecto', $nro);
$this->pager->setQuery($query);
//$this->pager->getQuery();
$this->pager->setPage($this->getRequestParameter('page', 1));
$this->pager->init();
//var_dump($this->consulta);die;
}
$this->setTemplate('index');
}
Código PHP:
<?php if ($pager->haveToPaginate()): ?>
<div class="pagination">
<a href="?page=1">
<img src="/images/first.png" alt="Primera Página" />
</a>
<a href="?page=<?php echo $pager->getPreviousPage() ?>">
<img src="/images/previous.png" alt="Previous page" title="Página Anterior" />
</a>
<?php foreach ($pager->getLinks() as $page): ?>
<?php if ($page == $pager->getPage()): ?>
<?php echo '<strong>'.$page.'</strong>' ?>
<?php else: ?>
<a href="?page=<?php echo $page ?>"><?php echo $page ?></a>
<?php endif; ?>
<?php endforeach; ?>
<a href="?page=<?php echo $pager->getNextPage() ?>">
<img src="/images/next.png" alt="Next page" title="Proxima Página" />
</a>
<a href="?page=<?php echo $pager->getLastPage() ?>">
<img src="/images/last.png" alt="Last page" title="Última Página" />
</a>
</div>
<?php endif; ?>