ok
Direktori : /home2/selectio/www/application/core/ |
Current File : /home2/selectio/www/application/core/Core_Controller.php |
<?php defined('BASEPATH') or exit('No direct script access allowed'); class Core_Controller extends CI_Controller { public function __construct() { parent::__construct(); //general settings $this->general_settings = $this->config->item('general_settings'); //set timezone date_default_timezone_set($this->general_settings->timezone); //routes $this->routes = $this->config->item('routes'); //languages $this->languages = $this->config->item('languages'); //site lang $this->site_lang = $this->language_model->get_site_language($this->languages); //selected lang $this->selected_lang = $this->site_lang; //language base url $this->lang_base_url = base_url(); //set language $this->lang_segment = ""; $lang_segment = $this->uri->segment(1); foreach ($this->languages as $lang) { if ($lang_segment == $lang->short_form) { if ($this->general_settings->multilingual_system == 1): $this->selected_lang = $lang; $this->lang_segment = $lang->short_form; else: redirect(base_url()); endif; } } //set lang base url if ($this->general_settings->site_lang == $this->selected_lang->id) { $this->lang_base_url = base_url(); } else { $this->lang_base_url = base_url() . $this->selected_lang->short_form . "/"; } //rtl $this->rtl = false; if ($this->selected_lang->text_direction == "rtl") { $this->rtl = true; } //cache system $this->cache_static = $this->general_settings->static_content_cache_system == 1 ? 1 : 0; $this->cache_product = $this->general_settings->product_cache_system == 1 ? 1 : 0; if ($this->cache_static == 1 || $this->cache_product == 1) { $this->load->driver('cache', array('adapter' => 'apc', 'backup' => 'file')); } //storage settings $this->storage_settings = $this->settings_model->get_storage_settings(); //product settings $this->product_settings = $this->settings_model->get_product_settings(); //payment settings $this->payment_settings = $this->settings_model->get_payment_settings(); //language translations $this->language_translations = $this->get_translation_array($this->selected_lang->id); //currencies $this->currencies = $this->currency_model->get_currencies_array(); $this->default_currency = $this->currency_model->get_default_currency($this->currencies, $this->payment_settings); //countries $this->countries = $this->location_model->get_active_countries(); //check auth $this->auth_check = auth_check(); if ($this->auth_check) { $this->auth_user = user(); } //settings $this->settings = $this->settings_model->get_settings($this->selected_lang->id); //get site fonts $this->fonts = $this->settings_model->get_selected_fonts(); //application name $this->app_name = $this->general_settings->application_name; //aws base url $this->aws_base_url = $this->storage_settings->aws_base_url . $this->storage_settings->aws_bucket . "/"; if (empty($this->storage_settings->aws_bucket)) { $this->aws_base_url = $this->storage_settings->aws_base_url; } //variables $this->username_maxlength = 40; $this->thousands_separator = '.'; $this->input_initial_price = '0.00'; if ($this->default_currency->currency_format == 'european') { $this->thousands_separator = ','; $this->input_initial_price = '0,00'; } //default location $this->default_location = $this->location_model->get_default_location(); //update last seen time $this->auth_model->update_last_seen(); $this->product_per_page = 24; //is sale active $this->is_sale_active = false; if ($this->general_settings->marketplace_system == 1 || $this->general_settings->bidding_system == 1) { $this->is_sale_active = true; } //check cron if (check_cron_time() == true) { //update currency rates if ($this->payment_settings->auto_update_exchange_rates == 1) { $this->currency_model->update_currency_rates(); } //check promoted products $this->product_model->check_promoted_products(); //check users membership plans $this->membership_model->check_membership_plans_expired(); $this->db->where('id', 1)->update('general_settings', ['last_cron_update' => date('Y-m-d H:i:s')]); } } public function get_translation_array($land_id) { $array = get_cached_data($this, "language_translations_lang_" . $land_id, "st"); if (empty($array)) { $translations = $this->language_model->get_language_translations($land_id); $array = array(); if (!empty($translations)) { foreach ($translations as $translation) { $array[$translation->label] = $translation->translation; } } set_cache_data($this, "language_translations_lang_" . $land_id, $array, "st"); } //set custom error messages if (isset($array["form_validation_required"])) { $this->form_validation->set_message('required', $array["form_validation_required"]); } else { $this->settings_model->add_validation_translations(); } if (isset($array["form_validation_min_length"])) { $this->form_validation->set_message('min_length', $array["form_validation_min_length"]); } if (isset($array["form_validation_max_length"])) { $this->form_validation->set_message('max_length', $array["form_validation_max_length"]); } if (isset($array["form_validation_matches"])) { $this->form_validation->set_message('matches', $array["form_validation_matches"]); } if (isset($array["form_validation_is_unique"])) { $this->form_validation->set_message('is_unique', $array["form_validation_is_unique"]); } return $array; } } class Home_Core_Controller extends Core_Controller { public function __construct() { parent::__construct(); //maintenance mode if ($this->general_settings->maintenance_mode_status == 1) { if (!is_admin()) { $this->maintenance_mode(); } } if ($this->input->method() == "post") { //set post language $lang_id = $this->input->post('sys_lang_id', true); if (!empty($lang_id)) { $this->selected_lang = $this->language_model->get_language($lang_id); $this->language_translations = $this->get_translation_array($lang_id); if ($this->general_settings->site_lang == $lang_id) { $this->lang_base_url = base_url(); } else { $this->lang_base_url = base_url() . $this->selected_lang->short_form . "/"; } } } //set selected currency $this->selected_currency = $this->currency_model->get_selected_currency($this->default_currency); $this->menu_links = $this->page_model->get_menu_links($this->selected_lang->id); $this->categories_array = $this->category_model->get_categories_array(); $this->parent_categories = $this->category_model->get_parent_categories($this->categories_array); $this->default_location_input = $this->location_model->get_default_location_input(); $this->ad_spaces = $this->ad_model->get_ads(); //recaptcha status $global_data['recaptcha_status'] = true; if (empty($this->general_settings->recaptcha_site_key) || empty($this->general_settings->recaptcha_secret_key)) { $global_data['recaptcha_status'] = false; } $this->recaptcha_status = $global_data['recaptcha_status']; if ($this->auth_check) { $global_data['unread_message_count'] = get_unread_conversations_count($this->auth_user->id); } else { $global_data['unread_message_count'] = 0; } $this->load->vars($global_data); } //maintenance mode public function maintenance_mode() { $this->load->view('maintenance'); } //verify recaptcha public function recaptcha_verify_request() { if (!$this->recaptcha_status) { return true; } $this->load->library('recaptcha'); $recaptcha = $this->input->post('g-recaptcha-response'); if (!empty($recaptcha)) { $response = $this->recaptcha->verifyResponse($recaptcha); if (isset($response['success']) && $response['success'] === true) { return true; } } return false; } public function paginate($url, $total_rows, $per_page) { //initialize pagination $page = $this->security->xss_clean($this->input->get('page')); $page = clean_number($page); if (empty($page) || $page <= 0) { $page = 0; } if ($page != 0) { $page = $page - 1; } $config['num_links'] = 4; $config['base_url'] = $url; $config['total_rows'] = $total_rows; $config['per_page'] = $per_page; $config['reuse_query_string'] = true; $this->pagination->initialize($config); $per_page = clean_number($per_page); return array('per_page' => $per_page, 'offset' => $page * $per_page, 'current_page' => $page + 1); } } class Admin_Core_Controller extends Core_Controller { public function __construct() { parent::__construct(); if (!is_admin()) { redirect(admin_url() . 'login'); exit(); } //set control panel lang $this->control_panel_lang = $this->selected_lang; if (!empty($this->session->userdata('mds_control_panel_lang'))) { $this->control_panel_lang = $this->session->userdata('mds_control_panel_lang'); //language translations $this->language_translations = $this->get_translation_array($this->control_panel_lang->id); } //check long cron if (check_cron_time_long() == true) { //delete old sessions $this->settings_model->delete_old_sessions(); //add last update $this->db->where('id', 1)->update('general_settings', ['last_cron_update_long' => date('Y-m-d H:i:s')]); } } public function paginate($url, $total_rows) { //initialize pagination $page = $this->security->xss_clean($this->input->get('page')); $per_page = $this->input->get('show', true); $page = clean_number($page); if (empty($page) || $page <= 0) { $page = 0; } if ($page != 0) { $page = $page - 1; } if (empty($per_page)) { $per_page = 15; } $config['num_links'] = 4; $config['base_url'] = $url; $config['total_rows'] = $total_rows; $config['per_page'] = $per_page; $config['reuse_query_string'] = true; $this->pagination->initialize($config); return array('per_page' => $per_page, 'offset' => $page * $per_page); } }