Hệ thống quản lý học tập trong Php
1 <?php
2 if (!defined('BASEPATH'))
3 exit('No direct script access allowed');
4
5 /*
6 * @author : Creativeitem
7 * date : 7 October, 2018
8 * Academy
9 * http://codecanyon.net/user/Creativeitem
10 * http://support.creativeitem.com
11 */
12
13 class Updater extends CI_Controller
14 {
15
16
17 function __construct()
18 {
19 parent::__construct();
20 $this->load->database();
21 $this->load->library('session');
22
23 /*cache control*/
24 $this->output->set_header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
25 $this->output->set_header('Pragma: no-cache');
26
27 }
28
29 /***default functin, redirects to login page if no admin logged in yet***/
30 public function index()
31 {
32 if ($this->session->userdata('admin_login') != 1)
33 redirect(site_url('login'), 'refresh');
34 if ($this->session->userdata('admin_login') == 1)
35 redirect(site_url('admin/dashboard'), 'refresh');
36 }
37
38 /***** UPDATE PRODUCT *****/
39
40 function update($task = '', $purchase_code = '')
41 {
42
43 if ($this->session->userdata('admin_login') != 1)
44 redirect(base_url(), 'refresh');
45
46 // Create update directory.
47 $dir = 'update';
48 if (!is_dir($dir))
49 mkdir($dir, 0777, true);
50
51 $zipped_file_name = $_FILES["file_name"]["name"];
52 $path = 'update/' . $zipped_file_name;
53
54 move_uploaded_file($_FILES["file_name"]["tmp_name"], $path);
55
56 // Unzip uploaded update file and remove zip file.
57 $zip = new ZipArchive;
58 $res = $zip->open($path);
59 if ($res === TRUE) {
60 $zip->extractTo('update');
61 $zip->close();
62 unlink($path);
63 }
64
65 $unzipped_file_name = substr($zipped_file_name, 0, -4);
66 $str = file_get_contents('./update/' . $unzipped_file_name . '/update_config.json');
67 $json = json_decode($str, true);
68
69
70 // Run php modifications
71 require './update/' . $unzipped_file_name . '/update_script.php';
72
73 // Create new directories.
74 if (!empty($json['directory'])) {
75 foreach ($json['directory'] as $directory) {
76 if (!is_dir($directory['name']))
77 mkdir($directory['name'], 0777, true);
78 }
79 }
80
81 // Create/Replace new files.
82 if (!empty($json['files'])) {
83 foreach ($json['files'] as $file)
84 copy($file['root_directory'], $file['update_directory']);
85 }
86
87 $this->session->set_flashdata('flash_message', get_phrase('product_updated_successfully'));
88 redirect(site_url('admin/system_settings'));
89 }
90
91 }