info = $info; $this->values = $values; $this->options = $options; $this->hook_name = $info['plugin_name']; add_filter('berocket_addons_active_'.$this->hook_name, array($this, 'active_addons')); add_filter('brfr_'.$this->hook_name.'_addons', array($this, 'section'), 10, 4); add_filter('berocket_addons_info_'.$this->hook_name, array($this, 'sort_deprecated_addons'), 9001, 1); add_filter('berocket_addons_info_'.$this->hook_name, array($this, 'sort_paid_addons'), 9000, 1); $this->load_addons(); new BeRocket_framework_libraries(array('tooltip'), $info, $values, $options); add_action( 'admin_init', array( $this, 'admin_init' ) ); } function admin_init() { add_filter( 'BeRocket_style_addon_library_additional_html_' . $this->hook_name, array( $this, 'paid_only_sign' ), 10, 2 ); } function load_addons() { if( ! empty($this->options['addons']) && is_array($this->options['addons']) ) { foreach($this->options['addons'] as $addon) { if( file_exists($this->info['plugin_dir'].'/addons'.$addon) ) { include_once($this->info['plugin_dir'].'/addons'.$addon); } } } } function get_addons() { $addon_files = array(); if( is_dir($this->info['plugin_dir'].'/addons/') ) { foreach (glob($this->info['plugin_dir'].'/addons/*.php') as $filename) { $addon_files[] = str_replace($this->info['plugin_dir'].'/addons', '', $filename); } foreach(glob($this->info['plugin_dir'].'/addons/*', GLOB_ONLYDIR ) as $path) { $dir_name = basename($path); $filename = $path.'/'.$dir_name.'.php'; if( file_exists($filename) ) { $addon_files[] = str_replace($this->info['plugin_dir'].'/addons', '', $filename); } } } return $addon_files; } function get_addons_info() { $addons = $this->get_addons(); foreach($addons as $addon) { if( file_exists($this->info['plugin_dir'].'/addons/'.$addon) ) { include_once($this->info['plugin_dir'].'/addons/'.$addon); } } $addon_info = apply_filters('berocket_addons_info_'.$this->hook_name, array()); return $addon_info; } function sort_paid_addons($addon_info) { $plugin_version_capability = apply_filters( 'brfr_get_plugin_version_capability_' . $this->hook_name, 0 ); if ( empty( $plugin_version_capability ) || $plugin_version_capability < 10 ) { $sorted_addon_info = array(); foreach ( $addon_info as $addon_i => $addon ) { if ( ! empty( $addon[ 'paid' ] ) ) { $sorted_addon_info[] = $addon; unset( $addon_info[ $addon_i ] ); } } $addon_info = array_merge( $addon_info, $sorted_addon_info ); } return $addon_info; } function sort_deprecated_addons($addon_info) { $sorted_addon_info = array(); foreach($addon_info as $addon_i => $addon) { if( ! empty($addon['deprecated']) ) { $sorted_addon_info[] = $addon; unset($addon_info[$addon_i]); } } $addon_info = array_merge($addon_info, $sorted_addon_info); $addon_info = array_values($addon_info); return $addon_info; } function active_addons($addons = array()) { if( ! empty($this->options['addons']) && is_array($this->options['addons']) ) { $addons = array_merge($addons, $this->options['addons']); } return $addons; } function section($html, $item, $options, $settings_name) { $addons = $this->get_addons(); $addons_info = $this->get_addons_info(); $html .= '