Files
cm-web/application/controllers/admin/Admin.php
2020-06-10 06:21:34 +09:00

185 lines
6.6 KiB
PHP
Executable File

<?php if (!defined('BASEPATH')) {
exit('No direct script access allowed');
}
class Admin extends CI_Controller
{
public function __construct()
{
parent::__construct();
define("HOOSK_ADMIN", 1);
$this->load->helper(array('admincontrol', 'url', 'hoosk_admin', 'form'));
$this->load->library('session');
$this->load->model('Hoosk_model');
define('LANG', $this->Hoosk_model->getLang());
$this->lang->load('admin', LANG);
define('SITE_NAME', $this->Hoosk_model->getSiteName());
define('THEME', $this->Hoosk_model->getTheme());
define('THEME_FOLDER', BASE_URL . '/theme/' . THEME);
}
public function index()
{
Admincontrol_helper::is_logged_in($this->session->userdata('userName'));
$this->data['current'] = $this->uri->segment(2);
$this->data['recenltyUpdated'] = $this->Hoosk_model->getUpdatedPages();
if (RSS_FEED) {
$this->load->library('rssparser');
$this->rssparser->set_feed_url('http://hoosk.org/feed/rss');
$this->rssparser->set_cache_life(30);
$this->data['hooskFeed'] = $this->rssparser->getFeed(3);
}
$this->data['maintenaceActive'] = $this->Hoosk_model->checkMaintenance();
$this->data['header'] = $this->load->view('admin/header', $this->data, true);
$this->data['footer'] = $this->load->view('admin/footer', '', true);
$this->load->view('admin/home', $this->data);
}
public function upload()
{
Admincontrol_helper::is_logged_in($this->session->userdata('userName'));
$attachment = $this->input->post('attachment');
$uploadedFile = $_FILES['attachment']['tmp_name']['file'];
$path = $_SERVER["DOCUMENT_ROOT"] . '/images';
$url = BASE_URL . '/images';
// create an image name
$fileName = $attachment['name'];
// upload the image
move_uploaded_file($uploadedFile, $path . '/' . $fileName);
$this->output->set_output(
json_encode(array('file' => array(
'url' => $url . '/' . $fileName,
'filename' => $fileName
))),
200,
array('Content-Type' => 'application/json')
);
}
public function login()
{
$this->data['header'] = $this->load->view('admin/headerlog', '', true);
$this->data['footer'] = $this->load->view('admin/footer', '', true);
$this->load->view('admin/login', $this->data);
}
public function loginCheck()
{
$username = $this->input->post('username');
$password = md5($this->input->post('password') . SALT);
$result = $this->Hoosk_model->login($username, $password);
if ($result) {
redirect(BASE_URL . '/admin', 'refresh');
} else {
$this->data['error'] = "1";
$this->login();
}
}
public function ajaxLogin()
{
$username = $this->input->post('username');
$password = md5($this->input->post('password') . SALT);
$result = $this->Hoosk_model->login($username, $password);
if ($result) {
echo 1;
} else {
echo 0;
}
}
public function logout()
{
$data = array(
'userID' => '',
'userName' => '',
'logged_in' => false,
);
$this->session->unset_userdata($data);
$this->session->sess_destroy();
$this->login();
}
public function settings()
{
Admincontrol_helper::is_logged_in($this->session->userdata('userName'));
$this->load->helper('directory');
$this->data['themesdir'] = directory_map($_SERVER["DOCUMENT_ROOT"] . '/theme/', 1);
$this->data['langdir'] = directory_map(APPPATH . '/language/', 1);
$this->data['settings'] = $this->Hoosk_model->getSettings();
$this->data['current'] = $this->uri->segment(2);
$this->data['header'] = $this->load->view('admin/header', $this->data, true);
$this->data['footer'] = $this->load->view('admin/footer', '', true);
$this->load->view('admin/settings', $this->data);
}
public function updateSettings()
{
Admincontrol_helper::is_logged_in($this->session->userdata('userName'));
$path_upload = $_SERVER["DOCUMENT_ROOT"] . '/uploads/';
$path_images = $_SERVER["DOCUMENT_ROOT"] . '/images/';
if ($this->input->post('siteLogo') != "") {
rename($path_upload . $this->input->post('siteLogo'), $path_images . $this->input->post('siteLogo'));
}
if ($this->input->post('siteFavicon') != "") {
rename($path_upload . $this->input->post('siteFavicon'), $path_images . $this->input->post('siteFavicon'));
}
$this->Hoosk_model->updateSettings();
redirect(BASE_URL . '/admin', 'refresh');
}
public function uploadLogo()
{
Admincontrol_helper::is_logged_in($this->session->userdata('userName'));
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$this->load->library('upload', $config);
foreach ($_FILES as $key => $value) {
if (!$this->upload->do_upload($key)) {
$error = array('error' => $this->upload->display_errors());
echo 0;
} else {
echo '"' . $this->upload->data('file_name') . '"';
}
}
}
public function social()
{
Admincontrol_helper::is_logged_in($this->session->userdata('userName'));
$this->data['social'] = $this->Hoosk_model->getSocial();
$this->data['current'] = $this->uri->segment(2);
$this->data['header'] = $this->load->view('admin/header', $this->data, true);
$this->data['footer'] = $this->load->view('admin/footer', '', true);
$this->load->view('admin/social', $this->data);
}
public function updateSocial()
{
Admincontrol_helper::is_logged_in($this->session->userdata('userName'));
$this->Hoosk_model->updateSocial();
redirect(BASE_URL . '/admin', 'refresh');
}
public function checkSession()
{
if (!$this->session->userdata('logged_in')) {
echo 0;
} else {
echo 1;
}
}
public function complete()
{
unlink(FCPATH . "install/hoosk.sql");
unlink(FCPATH . "install/index.php");
redirect(BASE_URL . '/admin', 'refresh');
}
}