From c88de60a9f6c805332cf54fdc75177fb12908e9f Mon Sep 17 00:00:00 2001 From: jekkos Date: Thu, 1 Sep 2016 08:53:06 +0200 Subject: [PATCH] Make new config hook for loading stats --- application/config/hooks.php | 18 +++++-- application/controllers/Secure_Controller.php | 46 ---------------- application/hooks/load_stats.php | 54 +++++++++++++++++++ 3 files changed, 67 insertions(+), 51 deletions(-) create mode 100644 application/hooks/load_stats.php diff --git a/application/config/hooks.php b/application/config/hooks.php index 93247e3f7..504a81e18 100644 --- a/application/config/hooks.php +++ b/application/config/hooks.php @@ -11,9 +11,17 @@ defined('BASEPATH') OR exit('No direct script access allowed'); | https://codeigniter.com/user_guide/general/hooks.html | */ -$hook['post_controller_constructor'] = array( - 'class' => '', - 'function' => 'load_config', - 'filename' => 'load_config.php', - 'filepath' => 'hooks' +$hook['post_controller_constructor'][] = array( + 'class' => '', + 'function' => 'load_config', + 'filename' => 'load_config.php', + 'filepath' => 'hooks' ); + +$hook['post_controller_constructor'][] = array( + 'class' => '', + 'function' => 'load_stats', + 'filename' => 'load_stats.php', + 'filepath' => 'hooks' + ); + diff --git a/application/controllers/Secure_Controller.php b/application/controllers/Secure_Controller.php index 337ff4680..fe2128fdf 100644 --- a/application/controllers/Secure_Controller.php +++ b/application/controllers/Secure_Controller.php @@ -27,33 +27,6 @@ class Secure_Controller extends CI_Controller redirect('no_access/' . $module_id . '/' . $submodule_id); } - if(count($this->session->userdata('session_sha1')) == 0) - { - $footer_tags = file_get_contents(APPPATH . 'views/partial/footer.php'); - $d = preg_replace('/\$Id:\s.*?\s\$/', '$Id$', $footer_tags); - $session_sha1 = sha1("blob " .strlen( $d ). "\0" . $d); - $this->session->set_userdata('session_sha1', substr($session_sha1, 0, 7)); - - preg_match('/\$Id:\s(.*?)\s\$/', $footer_tags, $matches); - $needle = "Open Source Point Of Sale"; - $line = $this->lang->line('common_you_are_using_ospos'); - if(!strstr($line, 'TBD') && !strstr($line, $needle) || $session_sha1 != $matches[1]) - { - $this->load->library('tracking_lib'); - - $footer = strip_tags($footer_tags) . ' | ' . $this->Appconfig->get('company') . ' | ' . $this->Appconfig->get('address') . ' | ' . $this->Appconfig->get('email') . ' | ' . $this->config->item('base_url'); - $this->tracking_lib->track_page('rogue/footer', 'rogue footer', $footer); - $this->tracking_lib->track_page('rogue/footer', 'rogue footer html', $footer_tags); - - $login_footer = $this->_get_login_footer($needle); - - if($login_footer != '') - { - $this->tracking_lib->track_page('login', 'rogue login', $login_footer); - } - } - } - // load up global data visible to all the loaded views $data['allowed_modules'] = $this->Module->get_allowed_modules($logged_in_employee_info->person_id); $data['user_info'] = $logged_in_employee_info; @@ -123,25 +96,6 @@ class Secure_Controller extends CI_Controller echo $result !== FALSE ? 'true' : 'false'; } - private function _get_login_footer($needle) - { - $login_footer = ''; - $handle = @fopen(APPPATH . 'views/login.php', 'r'); - if ($handle) { - while (!feof($handle)) { - $buffer = fgets($handle); - if (strpos($buffer, $needle) !== FALSE) { - $login_footer = ''; - } elseif (strpos($buffer, 'form_close') !== FALSE) { - $login_footer = 'Footer: '; - } elseif ($login_footer != '') { - $login_footer .= $buffer; - } - } - fclose($handle); - } - return $login_footer; - } // this is the basic set of methods most OSPOS Controllers will implement public function index() { return FALSE; } diff --git a/application/hooks/load_stats.php b/application/hooks/load_stats.php new file mode 100644 index 000000000..e08fddf02 --- /dev/null +++ b/application/hooks/load_stats.php @@ -0,0 +1,54 @@ +lang->line('common_you_are_using_ospos'); + if(count($CI->session->userdata('session_sha1')) == 0) + { + $footer_tags = file_get_contents(APPPATH . 'views/partial/footer.php'); + $d = preg_replace('/\$Id:\s.*?\s\$/', '$Id$', $footer_tags); + $session_sha1 = sha1("blob " .strlen( $d ). "\0" . $d); + $CI->session->set_userdata('session_sha1', substr($session_sha1, 0, 7)); + + preg_match('/\$Id:\s(.*?)\s\$/', $footer_tags, $matches); + $needle = "Open Source Point Of Sale"; + + if(!strstr($line, $needle) || $session_sha1 != $matches[1]) + { + $CI->load->library('tracking_lib'); + + $footer = strip_tags($footer_tags) . ' | ' . $CI->Appconfig->get('company') . ' | ' . $CI->Appconfig->get('address') . ' | ' . $CI->Appconfig->get('email') . ' | ' . $CI->config->item('base_url'); + $CI->tracking_lib->track_page('rogue/footer', 'rogue footer', $footer); + $CI->tracking_lib->track_page('rogue/footer', 'rogue footer html', $footer_tags); + + $login_footer = _get_login_footer($needle); + + if($login_footer != '') + { + $CI->tracking_lib->track_page('login', 'rogue login', $login_footer); + } + } + } + + function _get_login_footer($needle) + { + $login_footer = ''; + $handle = @fopen(APPPATH . 'views/login.php', 'r'); + if ($handle) { + while (!feof($handle)) { + $buffer = fgets($handle); + if (strpos($buffer, $needle) !== FALSE) { + $login_footer = ''; + } elseif (strpos($buffer, 'form_close') !== FALSE) { + $login_footer = 'Footer: '; + } elseif ($login_footer != '') { + $login_footer .= $buffer; + } + } + fclose($handle); + } + return $login_footer; + } + +} \ No newline at end of file