mirror of
				https://gitlab.com/ruany/litebans-php.git
				synced 2025-10-29 22:12:25 +00:00 
			
		
		
		
	Add pager
This commit is contained in:
		
							parent
							
								
									2d7176a06a
								
							
						
					
					
						commit
						1c25310fa3
					
				
							
								
								
									
										1
									
								
								bans.php
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								bans.php
									
									
									
									
									
								
							| @ -37,6 +37,7 @@ $page = new Page(); | |||||||
|                     </tr> |                     </tr> | ||||||
|                 <?php } ?>
 |                 <?php } ?>
 | ||||||
|             </table> |             </table> | ||||||
|  |             <?php $page->print_pager("bans.php"); ?>
 | ||||||
|         </div> |         </div> | ||||||
|     </div> |     </div> | ||||||
|     <?php $page->print_footer(); ?>
 |     <?php $page->print_footer(); ?>
 | ||||||
|  | |||||||
| @ -10,25 +10,41 @@ class Page { | |||||||
|         $this->settings = $settings; |         $this->settings = $settings; | ||||||
|         $this->uuid_name_cache = array(); |         $this->uuid_name_cache = array(); | ||||||
|         $this->time = microtime(true); |         $this->time = microtime(true); | ||||||
|     } |         $this->page = 0; | ||||||
| 
 | 
 | ||||||
|     function get_query($table) { |         if (isset($_GET['page'])) { | ||||||
|         $active_query = $this->settings->active_query; |             $page = $_GET['page']; // user input
 | ||||||
|         $limit = $this->settings->limit_per_page; |             if (filter_var($page, FILTER_VALIDATE_INT)) { | ||||||
|         return "SELECT * FROM $table $active_query GROUP BY $table.id ORDER BY time DESC LIMIT $limit"; |                 $this->page = (int)$page; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     function run_query($table) { |     function run_query($table) { | ||||||
|         try { |         try { | ||||||
|             $result = $this->conn->query($this->get_query($table)); |             $active_query = $this->settings->active_query; | ||||||
|  |             $limit = $this->settings->limit_per_page; | ||||||
|  | 
 | ||||||
|  |             $offset = 0; | ||||||
|  |             if ($this->settings->show_pager) { | ||||||
|  |                 $offset = ($limit * $this->page); | ||||||
|  |             } | ||||||
|  |             $query = "SELECT * FROM $table $active_query GROUP BY $table.id ORDER BY time DESC LIMIT :limit OFFSET :offset"; | ||||||
|  |             $st = $this->conn->prepare($query); | ||||||
|  | 
 | ||||||
|  |             $st->bindParam(':offset', $offset, PDO::PARAM_INT); | ||||||
|  |             $st->bindParam(':limit', $limit, PDO::PARAM_INT); | ||||||
|  | 
 | ||||||
|  |             $st->execute(); | ||||||
|  | 
 | ||||||
|  |             return $st; | ||||||
|         } catch (PDOException $ex) { |         } catch (PDOException $ex) { | ||||||
|             die($ex->getMessage()); |             die($ex->getMessage()); | ||||||
|         } |         } | ||||||
|         return $result; |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     function get_avatar($name) { |     function get_avatar($name) { | ||||||
|         return "<img src='https://cravatar.eu/avatar/$name/25' style='margin-bottom:5px;margin-right:5px;border-radius:2px;' />$name"; |         return "<img src='https://cravatar.eu/avatar/$name/25' style='margin-bottom:5px;margin-right:5px;border-radius:2px;'/>$name"; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     function get_name($uuid) { |     function get_name($uuid) { | ||||||
| @ -107,6 +123,19 @@ class Page { | |||||||
|          '); |          '); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     function print_pager($page) { | ||||||
|  |         if (!$this->settings->show_pager) return; | ||||||
|  |         $prev = $this->page - 1; | ||||||
|  |         $next = $this->page + 1; | ||||||
|  | 
 | ||||||
|  |         $pager_prev = "<div style=\"float:left;\"><<</div>"; | ||||||
|  |         if ($this->page > 0) { | ||||||
|  |             $pager_prev = "<a href=\"$page?page=$prev\">$pager_prev</a>";
 | ||||||
|  |         } | ||||||
|  |         $pager_next = "<a href=\"$page?page=$next\"><div style=\"float: right;\">>></div></a>"; | ||||||
|  |         echo "$pager_prev $pager_next"; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     function print_footer() { |     function print_footer() { | ||||||
|         include './includes/footer.php'; |         include './includes/footer.php'; | ||||||
|         $time = microtime(true) - $this->time; |         $time = microtime(true) - $this->time; | ||||||
|  | |||||||
| @ -18,6 +18,9 @@ final class Settings { | |||||||
|         // Show inactive bans? Removed bans will show (Unbanned), mutes will show (Unmuted), warnings will show (Expired).
 |         // Show inactive bans? Removed bans will show (Unbanned), mutes will show (Unmuted), warnings will show (Expired).
 | ||||||
|         $this->show_inactive_bans = true; |         $this->show_inactive_bans = true; | ||||||
| 
 | 
 | ||||||
|  |         // Show pager? This allows users to page through the list of bans.
 | ||||||
|  |         $this->show_pager = true; | ||||||
|  | 
 | ||||||
|         // Amount of bans/mutes/warnings to show on each page
 |         // Amount of bans/mutes/warnings to show on each page
 | ||||||
|         $this->limit_per_page = 20; |         $this->limit_per_page = 20; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -36,6 +36,7 @@ $page = new Page(); | |||||||
|                     </tr> |                     </tr> | ||||||
|                 <?php } ?>
 |                 <?php } ?>
 | ||||||
|             </table> |             </table> | ||||||
|  |             <?php $page->print_pager("mutes.php"); ?>
 | ||||||
|         </div> |         </div> | ||||||
|     </div> |     </div> | ||||||
|     <?php $page->print_footer(); ?>
 |     <?php $page->print_footer(); ?>
 | ||||||
|  | |||||||
| @ -38,6 +38,7 @@ $page = new Page(); | |||||||
|                     </tr> |                     </tr> | ||||||
|                 <?php } ?>
 |                 <?php } ?>
 | ||||||
|             </table> |             </table> | ||||||
|  |             <?php $page->print_pager("warnings.php"); ?>
 | ||||||
|         </div> |         </div> | ||||||
|     </div> |     </div> | ||||||
|     <?php $page->print_footer(); ?>
 |     <?php $page->print_footer(); ?>
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Ruan
						Ruan