private function install_package() { /** upload file into tmp directory **/ $file = wpl_request::getVar('wpl_addon_file', '', 'FILES'); $tmp_directory = wpl_global::init_tmp_folder(); $dest = $tmp_directory . 'package.zip'; $response = wpl_global::upload($file, $dest, array('zip'), 20971520); #20MB if (trim($response['error']) != '') { $this->response($response); } $zip_file = $dest; wpl_global::zip_extract($zip_file, $tmp_directory); $script_file = $tmp_directory . 'installer.php'; if (!wpl_file::exists($script_file)) { $this->response(array('error' => __("Installer file doesn't exist!", WPL_TEXTDOMAIN), 'message' => '')); } /** including installer and run the install method **/ include $script_file; if (!class_exists('wpl_installer')) { $this->response(array('error' => __("Installer class doesn't exist!", WPL_TEXTDOMAIN), 'message' => '')); } /** run install script **/ $wpl_installer = new wpl_installer(); $wpl_installer->path = $tmp_directory; if (!$wpl_installer->run()) { $this->response(array('error' => $wpl_installer->error, 'message' => '')); } /** Trigger Event **/ wpl_global::event_handler('package_installed', array('package_id' => isset($wpl_installer->addon_id) ? $wpl_installer->addon_id : 0)); $message = $wpl_installer->message ? $wpl_installer->message : __('Package installed.', WPL_TEXTDOMAIN); $this->response(array('error' => '', 'message' => $message)); }
private function import_settings() { $file = wpl_request::getVar('wpl_import_file', '', 'FILES'); $tmp_directory = wpl_global::init_tmp_folder(); $ext = strtolower(wpl_file::getExt($file['name'])); $settings_file = $tmp_directory . 'settings.' . $ext; $response = wpl_global::upload($file, $settings_file, array('json', 'xml'), 20971520); #20MB if (trim($response['error']) != '') { echo json_encode($response); exit; } if (wpl_settings::import_settings($settings_file)) { $error = ''; $message = __('Settings have been imported successfuly!', WPL_TEXTDOMAIN); } else { $error = '1'; $message = __('Cannot import settings!', WPL_TEXTDOMAIN); } echo json_encode(array('error' => $error, 'message' => $message)); exit; }