]> git.llucax.com Git - z.facultad/75.43/tp1.git/blob - src/lib/listador.php
be6915362a9d64bde8489be74bd42a3073223b78
[z.facultad/75.43/tp1.git] / src / lib / listador.php
1 <?php
2 // vim: set binary noeol et sw=4 sts=4 :
3 // Grupo 10
4 //
5 // Lucarella, Schein, Arena
6 //
7 // Creado: Leandro Lucarella (lun may  2 15:36:09 ART 2005)
8 //
9 // $Id$
10
11 function printfl()
12 {
13     $args = func_get_args();
14     $args[0] .= "\n";
15     call_user_func_array('printf', $args);
16 }
17
18 /**
19  * Listador genérico de ítems. Usa las variables de GET lista_from.
20  */
21 function listar($item, $link = '', $caption = null, $summary = null, $cant = 15)
22 {
23     // Calculo posiciones
24     $total = $item->getTotal();
25     if (!$total)
26     {
27         echo error('No se encontraron ' . $item->getObjNamePl());
28         return;
29     }
30     $from = intval(@$_GET["lista_from"]);
31     $c = min($total - $from, $cant);
32     $item->seek($from);
33     if (is_null($summary)) $summary = 'Listado de ' . $item->getObjNamePl();
34     if (is_null($caption)) $caption = $summary;
35     printfl('<table border="1" summary="%s">', $summary);
36     if ($caption) printfl('    <caption>%s</caption>', $caption);
37     printfl('    <thead>');
38     printfl('    <tr>');
39     foreach ($item->getHeaderArray() as $header)
40         printfl('        <th>%s</th>', $header);
41     printfl('    </tr>');
42     printfl('    </thead>');
43     printfl('    <tbody>');
44     while ($item->next() and $c--)
45     {
46         printfl('    <tr>');
47         foreach ($item->asArray() as $i) printfl('        <td>%s</td>', $i);
48         printfl('    </tr>');
49     }
50     printfl('    </tbody>');
51     printfl('</table>');
52     printfl('<table summary="Paginador" border="0"><tr>');
53     $pags = ceil($total / $cant);
54     if ($pags == 1) return; // Si tengo una sóla página, para qué el paginador?
55     for ($i = 0; $i < $pags; ++$i)
56     {
57         printfl('<td><a href="%s?lista_from=%d">%s</a></td>', $link, $i * $cant, $i + 1);
58     }
59     printfl('</tr></table>');
60 }
61
62 ?>