public function getPager($addWhere = '', $addSql = '', $showMax = 20, $select = '', $key = '', $form_vars = array()) { $db = sf::getLib("db"); if ($select) { $sql = $select . " "; } else { $sql = "SELECT * FROM `" . $this->table . "` "; } $addWhere && ($sql .= "WHERE " . $addWhere . " "); $addSql && ($sql .= $addSql . " "); if (!router::get("totalnum" . $key)) { $_sql = "SELECT COUNT(*) AS NUM FROM `" . $this->table . "` "; $addWhere && ($_sql .= "WHERE " . $addWhere . " "); $addSql && ($_sql .= $addSql . " "); $row = $db->fetch_first($_sql); $total = $row['NUM']; } else { $total = router::get("totalnum" . $key); } $pager = new pager($total, $showMax, $key, $form_vars); $sql .= "LIMIT " . $pager->getStartNum() . "," . $pager->getShowNum(); $query = $db->query($sql); $pager->setField($db->result_array($query)); $pager->setObject(clone $this); return $pager; }