multisite = function_exists('is_multisite') && is_multisite(); if ($this->multisite) { $this->blog_ids = $this->get_blog_ids(); // get Id of 1st (main) blog $this->main_blog_id = $this->get_main_site(); } $this->init_options($options_id); } // end of __construct() public function get($property_name) { if (!property_exists($this, $property_name)) { syslog(LOG_ERR, 'Lib class does not have such property '. $property_name); } return $this->$property_name; } // end of get_property() public function set($property_name, $property_value) { if (!property_exists($this, $property_name)) { syslog(LOG_ERR, 'Lib class does not have such property '. $property_name); } $this->$property_name = $property_value; } // end of get_property() public function get_main_site() { global $current_site; return $current_site->blog_id; } // end of get_main_site() /** * Returns the array of multisite WP blogs IDs * @global wpdb $wpdb * @return array */ protected function get_blog_ids() { global $wpdb; $blog_ids = $wpdb->get_col("select blog_id from $wpdb->blogs order by blog_id asc"); return $blog_ids; } // end of get_blog_ids() /** * get current options for this plugin */ protected function init_options($options_id) { $this->options_id = $options_id; $this->options = get_option($options_id); } // end of init_options() /** * Return HTML formatted message * * @param string $message message text * @param string $error_style message div CSS style */ public function show_message($message, $error_style = false) { if ($message) { if ($error_style) { echo '
'; } else { echo '
'; } echo $message . '
'; } } // end of show_message() /** * Returns value by name from GET/POST/REQUEST. Minimal type checking is provided * * @param string $var_name Variable name to return * @param string $request_type type of request to process get/post/request (default) * @param string $var_type variable type to provide value checking * @return mix variable value from request */ public function get_request_var($var_name, $request_type = 'request', $var_type = 'string') { $result = 0; if ($request_type == 'get') { if (isset($_GET[$var_name])) { $result = filter_var($_GET[$var_name], FILTER_SANITIZE_STRING); } } else if ($request_type == 'post') { if (isset($_POST[$var_name])) { if ($var_type != 'checkbox') { $result = filter_var($_POST[$var_name], FILTER_SANITIZE_STRING);; } else { $result = 1; } } } else { if (isset($_REQUEST[$var_name])) { $result = filter_var($_REQUEST[$var_name], FILTER_SANITIZE_STRING); } } if ($result) { if ($var_type == 'int' && !is_numeric($result)) { $result = 0; } if ($var_type != 'int') { $result = esc_attr($result); } } return $result; } // end of get_request_var() /** * returns option value for option with name in $option_name */ public function get_option($option_name, $default = false) { if (isset($this->options[$option_name])) { return $this->options[$option_name]; } else { return $default; } } // end of get_option() /** * puts option value according to $option_name option name into options array property */ public function put_option($option_name, $option_value, $flush_options = false) { $this->options[$option_name] = $option_value; if ($flush_options) { $this->flush_options(); } } // end of put_option() /** * Delete URE option with name option_name * @param string $option_name * @param bool $flush_options */ public function delete_option($option_name, $flush_options = false) { if (array_key_exists($option_name, $this->options)) { unset($this->options[$option_name]); if ($flush_options) { $this->flush_options(); } } } // end of delete_option() /** * saves options array into WordPress database wp_options table */ public function flush_options() { update_option($this->options_id, $this->options); } // end of flush_options() /** * Check product versrion and stop execution if product version is not compatible * @param type $must_have_version * @param type $version_to_check * @param type $error_message * @return type */ public static function check_version($must_have_version, $version_to_check, $error_message, $plugin_file_name) { if (version_compare($must_have_version, $version_to_check, '<')) { if (is_admin() && (!defined('DOING_AJAX') || !DOING_AJAX )) { require_once ABSPATH . '/wp-admin/includes/plugin.php'; deactivate_plugins($plugin_file_name); wp_die($error_message); } else { return; } } } // end of check_version() public function get_current_url() { global $wp; $current_url = esc_url_raw(add_query_arg($wp->query_string, '', home_url($wp->request))); return $current_url; } // end of get_current_url() /** * Returns comma separated list from the first $items_count element of $full_list array * * @param array $full_list * @param int $items_count * @return string */ public function get_short_list_str($full_list, $items_count=3) { $short_list = array(); $i = 0; foreach($full_list as $key=>$item) { if ($i>=$items_count) { break; } $short_list[] = $item; $i++; } $str = implode(', ', $short_list); if ($items_count