Archived
1
0
This repository has been archived on 2020-12-10. You can view files and clone it, but cannot push or open issues or pull requests.
old/application/models/RedirectModel.php
2018-10-16 18:28:42 +02:00

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;
}
}
}