CAFPE Docs
  • Class

Classes

  • Article_model
  • Articles
  • Auth
  • Auth_controller
  • Bcrypt
  • Hierarchical_controllers
  • Ion_auth
  • Ion_auth_model
  • MY_Controller
  • MY_Lang
  • MY_Model
  • Pages
  • Private_pages
  • Public_controller
  • Seeder
  • Slug
  • User_sessions
  • Users

Functions

  • action_result
  • actions_widget
  • admin_area_buttons
  • base64_current_url_encode
  • base64_url_decode
  • base64_url_encode
  • current_lang
  • jscript_tag
  • lang_switcher
  • logged_in
  • redirect_lang
  • site_url_lang
  • style_tag
  1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 
<?php defined('BASEPATH') or exit('No direct script access allowed');

/*
 * Base controller with common functionality for all of them
 */
class MY_Controller extends CI_Controller
{
    /**
    * Data that wil be passed to views
    *
    * @var array
    */
    protected $data = array();
    // View that will be loaded by default: controller/method path inside views folder
    protected $default_view;
    // requested action status
    public $status = [];

    public function __construct($template)
    {
        parent::__construct();

        // load ionauth library
        $this->load->add_package_path(APPPATH.'libraries/ionauth/');
        $this->load->library('ion_auth');

        // set common data for all controllers
        $this->data['pagetitle'] = 'CAFPE - Centro Andaluz de Física de Partículas Elementales';
        $this->data['template'] = $template;
        $this->default_view = $this->router->fetch_class() . '/' . $this->router->fetch_method();

        // check if app is in maintenance mode
        $this->_maintenance_mode_check();
    }


    /**
    * Renders passed view
    * @param string $view view name
    * @param bool $return render image directly or return as string
    */
    public function render($view, $return = false)
    {
        if (! $this->_valid_view($view)) {
            show_404();
        }

        $this->data['view'] = (is_null($view)) ? '' : $view;
        return $this->parser->parse('main.php', $this->data, $return);
    }

    /**
    * Override _ouput Ouput class method to allow implicit view rendering
    * @param string $output
    */
    public function _output($output)
    {
        if ($output) {
            echo $output;
        } else {
            // nothing was rendered from controller, render default view
            echo $this->render($this->default_view, true);
        }
    }

    /**
    * Saves controller action status, if it has not been set before
     * @param string $action Name of performed action (create, edit, delete...)
     * @param string $class ok or error
     * @return  bool
     */
    public function status($class, $redirect = false , $custom_message = '')
    {
        $action = $this->router->fetch_method();
        $message = $custom_message ? $custom_message : $this->lang->line($action.'_'.$class, FALSE);
        if(!empty($this->status) && ($class !== 'ok' && $class !== 'error') || !$message) {
            return false;
        }
        $status = $this->status = array(
            'message' => $message,
            'class' => $class
        );

        if($redirect) {
            $_SESSION['status'] = $status;
            $this->session->mark_as_flash('status');
        } else {
            $this->status = $status;
        }

        return true;
    }

    /**
    * Check if site is in maintenance mode. In that case, load
    * maintenance view and stop CI execution
    */
    private function _maintenance_mode_check()
    {
        if ($this->config->item('site_under_maintenance') === true) {
            $this->data['view'] = 'maintenance';
            die($this->parser->parse('templates/public', $this->data));
        }
    }

    /**
    * Checks if view file exists in views folder
    * @param string $view view name
    * @return   bool
    */
    private function _valid_view($view)
    {
        $view_file = VIEWPATH . $view.'.php';
        return file_exists($view_file);
    }
}
CAFPE Docs API documentation generated by ApiGen