builtin_views = '_boilerplate'; $this->load->helper( array('language', 'form') ); if( defined('NTS_DEVELOPMENT') ) { if( ! ($this->input->is_ajax_request() OR $this->is_module()) ) { $this->output->enable_profiler(TRUE); } } if( ! isset($this->conf) ) $this->conf = array(); if( ! isset($this->conf['path']) ) $this->conf['path'] = ''; $this->load->database(); $this->load->helper( array('url') ); $skip_setup = array('setup', 'demo'); if( ( ! in_array($this->router->fetch_class(), $skip_setup)) AND ( ! $this->is_setup() ) ){ $setup_redirect = 'setup'; $remote_integration = $this->remote_integration(); if( $remote_integration ) $setup_redirect = $remote_integration . '/setup'; ci_redirect( $setup_redirect ); exit; } $this->load->helper( array('hitcode') ); $this->load->library( array('form_validation', 'session', 'hc_bootstrap') ); $this->load->library( 'hc_modules' ); $this->load->library( 'conf/app_conf' ); /* add module models paths for autoloading */ $modules = $this->config->item('modules'); $modules_locations = $this->config->item('modules_locations'); if( is_array($modules) ) { reset($modules); foreach( $modules as $module ) { reset( $modules_locations ); foreach( $modules_locations as $ml ) { $mod_dir = $ml . $module; if( file_exists($mod_dir) ) { Datamapper::add_model_path( $mod_dir ); $this->load->add_package_path( $mod_dir ); } } } } /* reload config paths */ $this->app_conf->init(); $this->load->library( 'hc_modules' ); /* events and notifiers */ $this->load->library( array('hc_events', 'hc_notifier', 'hc_email') ); $this->hc_email->from = $this->app_conf->get('email_from'); $this->hc_email->fromName = $this->app_conf->get('email_from_name'); $this->form_validation->set_error_delimiters('
', '
'); // table $this->load->library('table'); $table_tmpl = array ( 'table_open' => '', ); $this->table->set_template( $table_tmpl ); // pagination $this->load->library('pagination'); // conf $this->load->library( 'hc_auth', NULL, 'auth' ); $this->data = array(); $this->data['page_title'] = $this->config->item('nts_app_title'); $this->data['message'] = $this->session->flashdata('message'); $this->data['error'] = $this->session->flashdata('error'); $this->session->set_flashdata('referrer', current_url()); $this->set_include( '' ); $this->set_layout(); } function check_level( $require_level ) { if( ! ( $this->auth && $this->auth->user() && ($this->auth->user()->level >= $require_level) ) ) { $this->session->set_flashdata('error', 'You are not allowed to access this page'); ci_redirect(''); exit; } } function set_layout() { if( $this->input->is_ajax_request() ) $this->template = '_layout/index_ajax'; elseif( $this->is_module() ) $this->template = '_layout/index_module'; else $this->template = '_layout/index'; } function is_module() { return $this->is_module; } function set_include( $view, $path = '' ) { $include = ''; $include_submenu = ''; $include_tabs = ''; $include_header = ''; if( $path ) { } else { $path = $this->conf['path']; } $view_dirname = hc_dirname($view); $current_view = hc_basename($view); $include = $this->get_view( $view, $path ); if( $this->input->is_ajax_request() OR $this->is_module() ) { // no submenu or tabs for ajax calls and inline modules } else { /* header */ $file = $view_dirname ? $view_dirname . '/_header' : '_header'; $my = $path . '/' . $file; $builtin = $this->builtin_views . '/' . $file; if( $this->load->view_exists($my) ) $include_header = $my; elseif( $this->load->view_exists($builtin) ) $include_header = $builtin; /* submenu */ // $no_submenu = $path . '/' . $view . '_nomenu'; $no_submenu = $path . '/_nomenu'; if( ! $this->load->view_exists($no_submenu) ) { $file = $view_dirname ? $view_dirname . '/_menu' : '_menu'; $my = $path . '/' . $file; $builtin = $this->builtin_views . '/' . $file; if( $this->load->view_exists($my) ) $include_submenu = $my; elseif( $this->load->view_exists($builtin) ) $include_submenu = $builtin; $my_tabs = $path . '/' . $view . '_tabs'; $builtin_tabs = $this->builtin_views . '/' . $view . '_tabs'; if( $this->load->view_exists($my_tabs) ) $include_tabs = $my_tabs; elseif( $this->load->view_exists($builtin_tabs) ) $include_tabs = $builtin_tabs; } } $this->data['include'] = $include; $this->data['include_submenu'] = $include_submenu; $this->data['include_tabs'] = $include_tabs; $this->data['include_header'] = $include_header; $this->data['current_view'] = $current_view; } function get_view( $view, $path = '' ) { $include = ''; $view_before = $view . '_before'; $force_builtin = FALSE; if( isset($this->data[$view_before]) && $this->data[$view_before] ) { // $force_builtin = TRUE; } if( ! $path ) $path = $this->conf['path']; $my_view = $this->fix_path($path) . '/' . $view; $module_view = $this->fix_path($path) . '/' . $view; $builtin_view = $this->builtin_views . '/' . $view; if( (! $force_builtin) && $this->load->view_exists($my_view) ) $include = $my_view; elseif( $this->load->view_exists($builtin_view) ) $include = $builtin_view; return $include; } function is_setup() { $return = TRUE; if( $this->db->table_exists('conf') ){ $return = TRUE; } else { $return = FALSE; } return $return; } function fix_path( $path ) { $return = str_replace( '-', '_', $path ); return $return; } function redirect( $to ) { if( $this->input->is_ajax_request() ) { // if( $this->input->post() ) // { // clear flash $this->session->set_flashdata( 'message', NULL ); $this->session->set_flashdata( 'error', NULL ); // } $to = ci_site_url($to); $out = array( 'redirect' => $to, ); $this->output->set_content_type('application/json'); $this->output->enable_profiler(FALSE); echo json_encode($out); hc_ci_before_exit(); exit; // return; } else { ci_redirect($to); return; } return; } } include_once( dirname(__FILE__) . '/Front_controller.php' ); include_once( dirname(__FILE__) . '/Backend_controller.php' ); include_once( dirname(__FILE__) . '/Backend_controller_crud.php' );