80 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| defined('BASEPATH') OR exit('No direct script access allowed');
 | |
| 
 | |
| class RedirectModel extends CI_Model {
 | |
| 
 | |
|     public function __construct() {
 | |
|         parent::__construct();
 | |
|         $this->load->model('blogModel', '', TRUE);
 | |
|     }
 | |
| 
 | |
|     public function insertRedirect($url, $name, $temp = false, $expireDate = null) {
 | |
|         $result1 = $this->db->query('SELECT * FROM redirects WHERE redirect = ?', [$name])->result_array();
 | |
| 
 | |
|         if(empty($result1)) {
 | |
|             $this->db->query('INSERT INTO redirects (url, redirect, temporary, expireDate) VALUES (?, ?, ?, ?)', [$url, $name, $temp, $expireDate]);
 | |
|             return ['feedback' => 'success'];
 | |
|         } else {
 | |
|             return ['feedback' => 'error', 'message' => 'Umleitungs-Code ist schon vergeben!'];
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public function editRedirect($id, $url, $name) {
 | |
|         $this->db->query('UPDATE redirects SET url = ? WHERE ID = ? AND redirect = ?', [$url, $id, $name]);
 | |
|     }
 | |
| 
 | |
|     public function removeRedirect($id) {
 | |
|         $this->db->query('DELETE FROM redirects WHERE ID = ?', [$id]);
 | |
|     }
 | |
| 
 | |
|     public function getUrl($name) {
 | |
|         $result1 = $this->db->query('SELECT * FROM redirects WHERE redirect = ?', [$name])->result_array();
 | |
| 
 | |
|         if(empty($result1)) {
 | |
|             return base_url();
 | |
|         } else {
 | |
|             $result = $result1[0];
 | |
|             return $result['url'];
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public function getItems() {
 | |
|         $result = $this->db->query('SELECT * FROM redirects')->result_array();
 | |
|         return $result;
 | |
|     }
 | |
| 
 | |
|     public function getName($url) {
 | |
|         $result = $this->db->query('SELECT * FROM redirects WHERE url = ?', [$url])->result_array();
 | |
| 
 | |
|         if(empty($result)) {
 | |
|             return '';
 | |
|         } else {
 | |
|             $result1 = $result[0];
 | |
|             return $result1['redirect'];
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public function addRandomItem($url, $temporary, $temporaryTime) {
 | |
|         $alreadyExists = $this->getName($url);
 | |
|         if($alreadyExists == '') {
 | |
|             for($i = 0; $i < 1; $i++) {
 | |
|                 $randomName = base64_encode($url);
 | |
|                 $name = '';
 | |
|                 for($j = 0; $j < 5; $j++) {
 | |
|                     $random = rand(0, strlen($randomName) - 1);
 | |
|                     $name .= $randomName[$random];
 | |
|                 }
 | |
|                 $expireDate = date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s') . ' + ' . $temporaryTime . ' hours'));
 | |
|                 if($this->insertRedirect($url, $name, $temporary, $expireDate)['feedback'] == 'success') {
 | |
|                     return $this->getName($url);
 | |
|                 } else {
 | |
|                     $i--;
 | |
|                 }
 | |
|             }
 | |
|         } else {
 | |
|             return $alreadyExists;
 | |
|         }
 | |
|     }
 | |
| 
 | |
| }
 |