Пример #1
0
 /**
  * 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));
 }