| 
									
										
										
										
											2020-12-13 06:03:42 +08:00
										 |  |  | <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');  | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  | 	Controls the interaction with the QRZ.com Subscription based XML API. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class OptionsLib { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function __construct() | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  |         // Make Codeigniter functions available to library
 | 
					
						
							|  |  |  |         $CI =& get_instance(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-13 18:42:44 +08:00
										 |  |  | 	// Force Migration to run on every page load
 | 
					
						
							|  |  |  |     	$CI->load->library('Migration'); | 
					
						
							| 
									
										
										
										
											2021-01-31 21:25:44 +08:00
										 |  |  | 	    $CI->migration->current(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-13 06:03:42 +08:00
										 |  |  |         //Load the options model
 | 
					
						
							|  |  |  |         $CI->load->model('options_model'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // Store returned array of autoload options
 | 
					
						
							|  |  |  |         $options_result = $CI->options_model->get_autoloads(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // If results are greater than one
 | 
					
						
							|  |  |  |         if($options_result->num_rows() > 0) { | 
					
						
							|  |  |  |             // Loop through the array
 | 
					
						
							|  |  |  |             foreach ($options_result->result() as $item) | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |                 /* | 
					
						
							|  |  |  |                 * Add option to the config system dynamicly option_name is prefixed by option_ | 
					
						
							|  |  |  |                 * you can then call $this->config->item('option_<option_name>') to get the item. | 
					
						
							|  |  |  |                 */ | 
					
						
							| 
									
										
										
										
											2021-01-31 21:25:44 +08:00
										 |  |  |                 if($item->option_name == "language") { | 
					
						
							|  |  |  |                     // language is a global internal config item there for we dont want to prefix it as an option
 | 
					
						
							| 
									
										
										
										
											2021-02-10 01:55:51 +08:00
										 |  |  |                     //$CI->config->set_item($item->option_name, $item->option_value);
 | 
					
						
							| 
									
										
										
										
											2021-01-31 21:25:44 +08:00
										 |  |  |                 } else { | 
					
						
							|  |  |  |                     $CI->config->set_item('option_'.$item->option_name, $item->option_value); | 
					
						
							|  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2022-10-11 21:26:46 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |                 // if version 2 mirgation has not been run then run it
 | 
					
						
							|  |  |  |                 if($item->option_name == "version2_trigger") { | 
					
						
							|  |  |  |                     if($item->option_value == "false") { | 
					
						
							|  |  |  |                         redirect('welcome'); | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2020-12-13 06:03:42 +08:00
										 |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // This returns a options value based on its name
 | 
					
						
							|  |  |  |     function get_option($option_name) { | 
					
						
							|  |  |  |         // Make Codeigniter functions available to library
 | 
					
						
							|  |  |  |         $CI =& get_instance(); | 
					
						
							| 
									
										
										
										
											2022-03-26 00:14:51 +08:00
										 |  |  |         if (strpos($option_name, 'option_') !== false) {  | 
					
						
							|  |  |  |             if(!$CI->config->item($option_name)) { | 
					
						
							|  |  |  |                  //Load the options model
 | 
					
						
							| 
									
										
										
										
											2022-02-17 06:59:59 +08:00
										 |  |  |                 $CI->load->model('options_model'); | 
					
						
							| 
									
										
										
										
											2022-03-26 00:14:51 +08:00
										 |  |  |                 $removed_options_tag = trim($option_name, 'option_'); | 
					
						
							| 
									
										
										
										
											2022-02-17 06:59:59 +08:00
										 |  |  |                 // call library function to get options value
 | 
					
						
							| 
									
										
										
										
											2022-03-26 00:14:51 +08:00
										 |  |  |                 $options_result = $CI->options_model->item($removed_options_tag); | 
					
						
							|  |  |  |                      | 
					
						
							| 
									
										
										
										
											2022-02-17 06:59:59 +08:00
										 |  |  |                 // return option_value as a string
 | 
					
						
							|  |  |  |                 return $options_result; | 
					
						
							|  |  |  |             } else { | 
					
						
							|  |  |  |                 return $CI->config->item($option_name); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } else { | 
					
						
							| 
									
										
										
										
											2022-03-26 00:14:51 +08:00
										 |  |  |             if(!$CI->config->item($option_name)) { | 
					
						
							|  |  |  |                 //Load the options model
 | 
					
						
							|  |  |  |                $CI->load->model('options_model'); | 
					
						
							|  |  |  |                // call library function to get options value
 | 
					
						
							|  |  |  |                $options_result = $CI->options_model->item($option_name); | 
					
						
							|  |  |  |                     | 
					
						
							|  |  |  |                // return option_value as a string
 | 
					
						
							|  |  |  |                return $options_result; | 
					
						
							|  |  |  |            } else { | 
					
						
							| 
									
										
										
										
											2022-02-17 06:59:59 +08:00
										 |  |  |                 return $CI->config->item($option_name); | 
					
						
							| 
									
										
										
										
											2022-03-26 00:14:51 +08:00
										 |  |  |            } | 
					
						
							| 
									
										
										
										
											2022-02-17 06:59:59 +08:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2020-12-13 06:03:42 +08:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-14 00:55:10 +08:00
										 |  |  |     // Function to save new option to options table
 | 
					
						
							|  |  |  |     function save($option_name, $option_value, $autoload) { | 
					
						
							|  |  |  |         // Make Codeigniter functions available to library
 | 
					
						
							|  |  |  |         $CI =& get_instance(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         //Load the options model
 | 
					
						
							|  |  |  |         $CI->load->model('options_model'); | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         // call library function to save update
 | 
					
						
							|  |  |  |         $result = $CI->options_model->save($option_name, $option_value, $autoload); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // return True or False on whether its completed.
 | 
					
						
							|  |  |  |         return $result; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Function to update options within the options table
 | 
					
						
							| 
									
										
										
										
											2022-01-19 22:26:36 +08:00
										 |  |  |     function update($option_name, $option_value, $auto_load = NULL) { | 
					
						
							| 
									
										
										
										
											2020-12-14 00:55:10 +08:00
										 |  |  |         // Make Codeigniter functions available to library
 | 
					
						
							|  |  |  |         $CI =& get_instance(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         //Load the options model
 | 
					
						
							|  |  |  |         $CI->load->model('options_model'); | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         // call library function to save update
 | 
					
						
							| 
									
										
										
										
											2022-01-19 22:26:36 +08:00
										 |  |  |         $result = $CI->options_model->update($option_name, $option_value, $auto_load); | 
					
						
							| 
									
										
										
										
											2020-12-14 00:55:10 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         // return True or False on whether its completed.
 | 
					
						
							|  |  |  |         return $result; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-13 06:03:42 +08:00
										 |  |  |     // This returns the global theme or the theme stored in the logged in users session data.
 | 
					
						
							|  |  |  |     function get_theme() { | 
					
						
							|  |  |  |         // Make Codeigniter functions available to library
 | 
					
						
							|  |  |  |         $CI =& get_instance(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // If session data for stylesheet is set return choice
 | 
					
						
							|  |  |  |         if($CI->session->userdata('user_stylesheet')) { | 
					
						
							|  |  |  |             return $CI->session->userdata('user_stylesheet'); | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             // Return the global choice.
 | 
					
						
							|  |  |  |             return $CI->config->item('option_theme'); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2020-12-13 18:42:44 +08:00
										 |  |  | } |