imagecms/ImageCMS

View on GitHub
application/modules/found_less_expensive/admin.php

Summary

Maintainability
A
2 hrs
Test Coverage
<?php

use CMSFactory\assetManager;

if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}

/**
 * Image CMS
 * Comments admin
 * @property Found_less_expensive_model found_less_expensive_model
 */
class Admin extends BaseAdminController
{

    private $per_page = 12;

    public function __construct() {
        parent::__construct();
    }

    /**
     * Init
     */
    private function init() {
        assetManager::create()
                ->registerScript('scripts');
        $this->load->model('found_less_expensive_model');
        $lang = new MY_Lang();
        $lang->load('found_less_expensive');
    }

    /**
     * Show list of notifications about found less expensive
     */
    public function index() {
        $this->init();
        $status = $this->uri->segment(7);
        $off_set = $this->uri->segment(8);

        //Prepare data
        switch ($status) {
            case 'all':
                $status_all = [
                               '0',
                               '1',
                              ];
                break;

            case 'new':
                $status_all = '0';
                break;

            case 'approved':
                $status_all = '1';
                break;

            default:
                $status_all = [
                               '0',
                               '1',
                              ];

                break;
        }
        $data = $this->found_less_expensive_model->allByStatus($this->per_page, $off_set, $status_all);
        $total = $this->found_less_expensive_model->getCountAll($status_all);

        //Pagination
        if ($total > $this->per_page) {
            $this->load->library('pagination');

            $config['base_url'] = site_url('admin/components/cp/found_less_expensive/index/status/' . $status . '/');
            $config['total_rows'] = $total;
            $config['per_page'] = $this->per_page;
            $config['uri_segment'] = $this->uri->total_segments();

            $config['separate_controls'] = true;
            $config['full_tag_open'] = '<div class="pagination pull-left"><ul>';
            $config['full_tag_close'] = '</ul></div>';
            $config['controls_tag_open'] = '<div class="pagination pull-right"><ul>';
            $config['controls_tag_close'] = '</ul></div>';
            $config['next_link'] = lang('Next', 'admin') . '&nbsp;&gt;';
            $config['prev_link'] = '&lt;&nbsp;' . lang('Prev', 'admin');
            $config['cur_tag_open'] = '<li class="btn-primary active"><span>';
            $config['cur_tag_close'] = '</span></li>';
            $config['prev_tag_open'] = '<li>';
            $config['prev_tag_close'] = '</li>';
            $config['next_tag_open'] = '<li>';
            $config['next_tag_close'] = '</li>';
            $config['num_tag_close'] = '</li>';
            $config['num_tag_open'] = '<li>';
            $config['num_tag_close'] = '</li>';

            $this->pagination->num_links = 5;
            $this->pagination->initialize($config);
            $pagination = $this->pagination->create_links_ajax();
        }
        // End pagination

        assetManager::create()
            ->setData(
                [
                 'data'          => $data,
                 'pagination'    => $pagination,
                 'status'        => $status,
                 'countAll'      => $this->found_less_expensive_model->getCountAll([0, 1]),
                 'countNew'      => $this->found_less_expensive_model->getCountAll([0]),
                 'countAccepted' => $this->found_less_expensive_model->getCountAll([1]),
                ]
            )
            ->renderAdmin('list');
    }

    /**
     * Delete comment
     */
    public function ajax_delete() {
        $id = $this->input->post('id');

        $this->db->delete('mod_found_less_expensive', ['id' => $id]);
        showMessage(lang('Successfully deleted', 'found_less_expensive'));
    }

    /**
     * Change status
     */
    public function ajax_change_status() {
        $id = $this->input->post('id');
        $status = $this->input->post('status');
        $this->db->where('id', $id)->update('mod_found_less_expensive', ['status' => $status]);
        showMessage(lang('Status changed', 'found_less_expensive'));
    }
}