/** * resume skin object * @param array $config: skin config */ static function resume_skin($config = array()) { HW_HOANGWEB::load_class('HW_File_Directory'); if (is_string($config)) { $config = self::decrypt($config); } global $wp_registered_widgets; //turn widget obj from their id $widget_inst = null; if (isset($config['widget']) && isset($wp_registered_widgets[$config['widget']])) { $widget_obj = $wp_registered_widgets[$config['widget']]; if (is_array($widget_obj['callback'])) { $widget_inst = $widget_obj['callback'][0]; } elseif (isset($widget_obj['callback_wl_redirect'][0])) { //modify by widget_logic plugin $widget_inst = $widget_obj['callback_wl_redirect'][0]; } } if (isset($config['apply_current_path'])) { $apply_current_path = $config['apply_current_path']; if (!file_exists($apply_current_path)) { //alway start from hw-hoangweb plugin $apply_current_path = HW_File_Directory::generate_path(HW_HOANGWEB_PATH, $apply_current_path); } } else { return; } if (isset($config['plugin_url'])) { $plugin_url = $config['plugin_url']; if (!HW_URL::valid_url($plugin_url)) { $plugin_url = HW_File_Directory::generate_url(HW_HOANGWEB_URL, $plugin_url); } } else { return; } $external_skins_folder = isset($config['skin_folder']) ? $config['skin_folder'] : $config['other_folder']; //two alias if (isset($config['skin_name'])) { $skin_name = $config['skin_name']; } else { return; } if (isset($config['default_skin_path'])) { $default_skin_path = $config['default_skin_path']; } else { $config['default_skin_path'] = 'skins'; } $group = isset($config['group']) ? $config['group'] : ''; $enable_external_callback = $config['enable_external_callback']; /** * start createn new HW_SKIN instance */ $skin = new self($widget_inst, $apply_current_path, $external_skins_folder, $skin_name, $default_skin_path); $skin->plugin_url = $plugin_url; $skin->enable_external_callback = $enable_external_callback; if ($group) { $skin->set_group($group); } if (isset($config['allows_skin_name'])) { $skin->add_skin_name_list($config['allows_skin_name']); } //set other properties if (isset($config['properties']) && is_array($config['properties'])) { foreach ($config['properties'] as $name => $value) { $skin->{$name} = $value; } } //update options if (isset($config['options'])) { $skin->_options = $config['options']; } //$skin->init(); return $skin; }