/** Faz a paginação de resultados do banco de dados * @param $table * @param $page * @param $quantity * @param $order_by_column * @param $maxlinks * @param string $order_by_type * @return array */ public static function paginator($table, $page, $quantity, $order_by_column, $maxlinks, $order_by_type = 'DESC') { $start = $quantity * $page - $quantity; $result = []; $result['result'] = Database::query("SELECT * FROM {$table} ORDER BY {$order_by_column} {$order_by_type}\n LIMIT {$start},{$quantity}")->fetchAll(); $total = Database::select("SELECT * FROM {$table}")->fetchAll(); $total = count($total); $result['totalpages'] = ceil($total / $quantity); $inicio = $page - $maxlinks > 1 ? $page - $maxlinks : 1; $fim = $page + $maxlinks < $result['totalpages'] ? $page + $maxlinks : $result['totalpages']; if ($result['totalpages'] > 1 && $page <= $result['totalpages']) { for ($i = $inicio; $i <= $fim; $i++) { $result['links'][] = $i; } } $result['current'] = (int) $page; $result['prev'] = $result['current'] > 1 ? $result['current'] - 1 : $result['current']; $result['next'] = count($result['result']) >= $quantity ? $result['current'] + 1 : $result['current']; $result['maxlinks'] = (int) $maxlinks; return (object) $result; }
/** * Atualiza a nova senha do usuário * @param $password * @param $token * @return bool */ public static function updateRecover($password, $token) { return Database::query("UPDATE user as u INNER JOIN user_recovery_password as r ON u.id = r.user_id SET\n u.password = '******',r.password_change_date = NOW(),r.status = 1\n WHERE r.token = '" . $token . "'"); }