/** * Cette fonction permet d'afficher les données d'une table * @param string $table : Le nom de la table afficher * @param mixed $orderBy : Le numero ou le nom du champs par lequel on veux trier (par défaut 1) * @param int $orderDesc : Si on doit trier par ordre ascendant ou descendant (par défaut ascendant = 0) * @param int $page : Non obligatoire, par défaut 1, le numéro de page à afficher (on sort 25 resultat par page) * @param int $nbDelete : Non obligatoire, par défaut null, le nombre de ligne supprimé s'il y a lieu */ public function liste($table, $orderBy = 1, $orderDesc = 0, $page = 1) { global $db; //On s'assure que la page est minimum à 1, et entier $page = $page < 1 ? 1 : (int) $page; //On gère l'initialisation via la session $_SESSION['admin-liste-' . $table] = array('orderBy' => $orderBy, 'orderDesc' => $orderDesc, 'page' => $page); $fields = $db->describeTable($table); $lignes = $db->getFromTableWhere($table, null, $orderBy, $orderDesc, 25, 25 * ($page - 1)); #On get sans conditions en paginant //On renvoie sur l'accueil si ya pas de ligne (ca se presente par exemple sur des tables qui n'existes pas if (!$lignes) { return header('Location: ' . $this->generateUrl('admin')); } //Je prépare les données de la pagination $totalLignes = $db->countTable($table); $pagination = \internalTools::generatePagination($totalLignes, 25, $page, $this->generateUrl('admin', 'liste', array($table, $orderBy, $orderDesc))); $this->render('DescartesAdministrator/admin/liste', array('fields' => $fields, 'lignes' => $lignes, 'pagination' => $pagination, 'table' => $table)); }