first commit
This commit is contained in:
218
application/controllers/admin/Posts.php
Executable file
218
application/controllers/admin/Posts.php
Executable file
@@ -0,0 +1,218 @@
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
class Posts extends MY_Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
define("HOOSK_ADMIN", 1);
|
||||
parent::__construct();
|
||||
$this->load->model('Cmap_model');
|
||||
$this->load->helper(array('admincontrol', 'url', 'hoosk_admin', 'file', 'form'));
|
||||
$this->load->library('session');
|
||||
define('LANG', $this->data['settings']->siteLang);
|
||||
$this->lang->load('admin', LANG);
|
||||
//Define what page we are on for nav
|
||||
$this->data['current'] = $this->uri->segment(2);
|
||||
//check session exists
|
||||
Admincontrol_helper::is_logged_in($this->session->userdata('userName'));
|
||||
$this->load->helper('general');
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$this->load->library('pagination');
|
||||
$result_per_page = 15; // the number of result per page
|
||||
$config['base_url'] = BASE_URL . '/admin/posts/';
|
||||
$config['total_rows'] = $this->Cmap_model->countPosts();
|
||||
$config['per_page'] = $result_per_page;
|
||||
$config['last_link'] = false;
|
||||
$config['first_link'] = false;
|
||||
$config['suffix'] = '?term=' . getSearchTerm();
|
||||
|
||||
$this->pagination->initialize($config);
|
||||
|
||||
//Get posts from database
|
||||
$this->data['posts'] = $this->post->getPosts($result_per_page, $this->uri->segment(3))
|
||||
->select("p.*, if(u.userName = '', if(u.nickname='', u.userID, u.nickname), u.userName) userName, '' as categoryTitle, c.categorySlug, '' as pageTitle")->get()->result_array();
|
||||
$this->category->getTableCategoryTitle($this->data['posts']);
|
||||
$this->page->getTablePageTitle($this->data['posts']);
|
||||
//Load the view
|
||||
$this->data['header'] = $this->load->view('admin/header', $this->data, true);
|
||||
$this->data['footer'] = $this->load->view('admin/footer', '', true);
|
||||
$this->load->view('admin/posts', $this->data);
|
||||
}
|
||||
|
||||
public function addPost()
|
||||
{
|
||||
$this->data['categories'] = array_merge([['categoryID' => 0, 'categoryTitle' => 'Select category']], $this->Cmap_model->getCategories());
|
||||
$this->data['pages'] = array_merge([['pageID' => 0, 'pageTitle' => 'Select page']], $this->Cmap_model->getPagesAll());
|
||||
//Load the view
|
||||
$this->data['header'] = $this->load->view('admin/header', $this->data, true);
|
||||
$this->data['footer'] = $this->load->view('admin/footer', '', true);
|
||||
$this->load->view('admin/post_new', $this->data);
|
||||
}
|
||||
|
||||
public function confirm()
|
||||
{
|
||||
//Load the form validation library
|
||||
$this->load->library('form_validation');
|
||||
//Set validation rules
|
||||
// $this->form_validation->set_rules('postURL', 'post URL', 'trim|alpha_dash|required|is_unique[cm_post.postURL]');
|
||||
$this->form_validation->set_rules('postTitle', 'post title', 'trim|required');
|
||||
$this->form_validation->set_rules('postExcerpt', 'post excerpt', 'trim|required');
|
||||
|
||||
if ($this->form_validation->run() == false) {
|
||||
|
||||
//Validation failed
|
||||
$this->addPost();
|
||||
} else {
|
||||
//Validation passed
|
||||
if ($this->input->post('postImage')) {
|
||||
//path to save the image
|
||||
$path_upload = $_SERVER["DOCUMENT_ROOT"] . '/uploads/';
|
||||
$path_images = $_SERVER["DOCUMENT_ROOT"] . '/images/' . date('Y/m/d/');
|
||||
|
||||
if (!file_exists($path_images) && !mkdir($path_images, 0775, true)) {
|
||||
die('Failed to create folders...');
|
||||
}
|
||||
//moving temporary file to images folder
|
||||
rename($path_upload . $this->input->post('postImage'), $path_images . $this->input->post('postImage'));
|
||||
}
|
||||
|
||||
if ($this->input->post('postThumb') || $this->input->post('postImageExternal')) {
|
||||
//path to save the image
|
||||
$path_upload = $_SERVER["DOCUMENT_ROOT"] . '/uploads/';
|
||||
$path_images = $_SERVER["DOCUMENT_ROOT"] . '/thumbs/' . date('Y/m/d/');
|
||||
|
||||
if (!file_exists($path_images) && !mkdir($path_images, 0775, true)) {
|
||||
die('Failed to create folders...');
|
||||
}
|
||||
//moving temporary file to images folder
|
||||
if ($this->input->post('postImageExternal')) {
|
||||
$this->load->helper('string');
|
||||
$_POST['postThumb'] = random_string() . '.' . pathinfo(parse_url($this->input->post('postImageExternal'))['path'], PATHINFO_EXTENSION);
|
||||
file_put_contents(
|
||||
$path_images . $this->input->post('postThumb'),
|
||||
file_get_contents($this->input->post('postImageExternal'))
|
||||
);
|
||||
} else {
|
||||
rename($path_upload . $this->input->post('postThumb'), $path_images . $this->input->post('postThumb'));
|
||||
}
|
||||
}
|
||||
|
||||
//Add the post
|
||||
$this->load->library('Sioen');
|
||||
$this->post->save();
|
||||
//Return to post list
|
||||
redirect(BASE_URL . '/admin/posts', 'refresh');
|
||||
}
|
||||
}
|
||||
|
||||
public function editPost()
|
||||
{
|
||||
$this->data['categories'] = array_merge([['categoryID' => 0, 'categoryTitle' => 'Select category']], $this->Cmap_model->getCategories());
|
||||
$this->data['pages'] = array_merge([['pageID' => 0, 'pageTitle' => 'Select page']], $this->Cmap_model->getPagesAll());
|
||||
//Get post details from database
|
||||
$this->data['posts'] = $this->post->getPost($this->uri->segment(4))->get()->result_array();
|
||||
$this->data['posts'][0]['postTag'] = json_encode($this->post->getPostTag($this->uri->segment(4))['tag']);
|
||||
$this->category->getTableCategoryTitle($this->data['posts']);
|
||||
$this->page->getTablePageTitle($this->data['posts']);
|
||||
|
||||
$this->load->model('user_model', 'user');
|
||||
$this->data['users'] = $this->user->getAdminSiteUsers();
|
||||
//Load the view
|
||||
$this->data['header'] = $this->load->view('admin/header', $this->data, true);
|
||||
$this->data['footer'] = $this->load->view('admin/footer', '', true);
|
||||
$this->data['video'] = 0;
|
||||
if ($video = $this->post->getPostVideo($this->uri->segment(4))) {
|
||||
$this->data['video'] = 1;
|
||||
$this->data['posts'][0]['postContentHTML'] .= $this->load->view('admin/youtube-iframe', $video, true);
|
||||
}
|
||||
$this->data['posts'][0]['articleURL'] = getPostLink($this->data['posts'][0], 'church');
|
||||
$this->load->view('admin/post_edit', $this->data);
|
||||
}
|
||||
|
||||
public function edited()
|
||||
{
|
||||
//Load the form validation library
|
||||
$this->load->library('form_validation');
|
||||
//Set validation rules
|
||||
// $this->form_validation->set_rules('postURL', 'post URL', 'trim|alpha_dash|required|is_unique[cm_post.postURL.postID.'.$this->uri->segment(4).']');
|
||||
$this->form_validation->set_rules('postTitle', 'post title', 'trim|required');
|
||||
|
||||
if ($this->form_validation->run() == false) {
|
||||
//Validation failed
|
||||
$this->editPost();
|
||||
} else {
|
||||
//Validation passed
|
||||
if ($this->input->post('postImage')) {
|
||||
//path to save the image
|
||||
$path_upload = $_SERVER["DOCUMENT_ROOT"] . '/uploads/';
|
||||
$path_images = $_SERVER["DOCUMENT_ROOT"] . '/images/' . date('Y/m/d/');
|
||||
//moving temporary file to images folder
|
||||
if (file_exists($path_images) || mkdir($path_images, 0775, true)) {
|
||||
rename($path_upload . $this->input->post('postImage'), $path_images . $this->input->post('postImage'));
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->input->post('postThumb')) {
|
||||
//path to save the image
|
||||
$path_upload = $_SERVER["DOCUMENT_ROOT"] . '/uploads/';
|
||||
$path_images = $_SERVER["DOCUMENT_ROOT"] . '/thumbs/' . date('Y/m/d/');
|
||||
//moving temporary file to images folder
|
||||
if (file_exists($path_images) || mkdir($path_images, 0775, true)) {
|
||||
rename($path_upload . $this->input->post('postThumb'), $path_images . $this->input->post('postThumb'));
|
||||
}
|
||||
}
|
||||
//Update the post
|
||||
$this->load->library('Sioen');
|
||||
if($this->input->post('published') == '0') {
|
||||
$this->schedule([
|
||||
'postID' => $this->uri->segment(4),
|
||||
'run_at' => date('Y-m-d H:i:s', strtotime($this->input->post('dateReserved'))),
|
||||
'userID' => $this->session->userdata('userID')
|
||||
]);
|
||||
}
|
||||
$this->post->update($this->uri->segment(4));
|
||||
//Return to post list
|
||||
redirect(BASE_URL . '/admin/posts', 'refresh');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function delete()
|
||||
{
|
||||
if ($this->input->post('deleteid')) :
|
||||
$this->Cmap_model->removePost($this->input->post('deleteid'));
|
||||
redirect(BASE_URL . '/admin/posts');
|
||||
else :
|
||||
$this->data['form'] = $this->Cmap_model->getPost($this->uri->segment(4));
|
||||
$this->load->view('admin/post_delete.php', $this->data);
|
||||
endif;
|
||||
}
|
||||
|
||||
public function postSearch()
|
||||
{
|
||||
$this->Cmap_model->postSearch($this->input->post('term'));
|
||||
}
|
||||
|
||||
public function schedule($edit = null)
|
||||
{
|
||||
$data = is_null($edit) ? array(
|
||||
'postID' => $this->input->post('postID'),
|
||||
'run_at' => $this->input->post('run_at'),
|
||||
'userID' => $this->session->userdata('userID')
|
||||
) : $edit;
|
||||
|
||||
$this->db->where('postID', $data['postID'])->delete('cm_post_schedule');
|
||||
$this->db->insert('cm_post_schedule', $data);
|
||||
if(!$edit) {
|
||||
$this->output
|
||||
->set_status_header(200)
|
||||
->set_content_type('application/json')
|
||||
->set_output(json_encode(array('code' => 200)));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user