title = __("Update plugin", "dagsopt"); $this->pluginname = $ns->pluginname; $this->file = $ns->file; $this->ns = $ns; $this->status = ""; $this->possible = false; } function start() { register_activation_hook(plugin_basename($this->file), array(&$this, 'activatePlugin')); register_deactivation_hook(plugin_basename($this->file), array(&$this, 'deactivatePlugin')); add_action($this->pluginname . 'UpdateCheck', array(&$this, 'check_update')); add_filter('http_request_args', array(&$this, 'updates_exclude'), 5, 2); if (isset($_REQUEST["checkforupdates"])) { $this->check_update(); } } function activatePlugin() { wp_schedule_event(time(), 'hourly', $this->pluginname . 'UpdateCheck'); } function deactivatePlugin() { wp_clear_scheduled_hook($this->pluginname . 'UpdateCheck'); } /*SELF UPDATE*/ function check_update() { global $wp_version; $plugin_folder = plugin_basename(dirname($this->file)); $plugin_file = basename(($this->file)); if (defined('WP_INSTALLING')) { return false; } $response = wp_remote_get($this->ns->update_check_url); list($version) = explode('|', $response['body']); $version = trim($version); $urlx = "https://git.tum.dk/tum.dk/dagsplug/archive/" . $version . ".zip"; $this->status = 'Remote version: ' . $version . " URL: " . $urlx . ":::"; $this->possible = false; if ($this->plugin_get("Version") == $version) { return false; } $this->possible = true; $plugin_transient = get_site_transient('update_plugins'); $a = array( 'slug' => $plugin_folder, 'new_version' => $version, 'url' => $this->plugin_get("AuthorURI"), 'package' => $urlx, ); $o = (object) $a; $plugin_transient->response[$plugin_folder . '/' . $plugin_file] = $o; set_site_transient('update_plugins', $plugin_transient); } function updates_exclude($r, $url) { if (0 !== strpos($url, 'http://api.wordpress.org/plugins/update-check')) { return $r; } // Not a plugin update request. Bail immediately. $plugins = unserialize($r['body']['plugins']); unset($plugins->plugins[plugin_basename($this->file)]); unset($plugins->active[array_search(plugin_basename($this->file), $plugins->active)]); $r['body']['plugins'] = serialize($plugins); return $r; } function plugin_get($i) { if (!function_exists('get_plugins')) { require_once ABSPATH . 'wp-admin/includes/plugin.php'; } $plugin_folder = get_plugins('/' . plugin_basename(dirname($this->file))); $plugin_file = basename(($this->file)); return $plugin_folder[$plugin_file][$i]; } function admin_line() { ?>
status); ?> possible) { $url = wp_nonce_url(self_admin_url('update.php?action=upgrade-plugin&plugin=' . $this->ns->filename), 'upgrade-plugin_' . $this->ns->filename); echo ('' . __("Update", "dagsopt") . ''); } ?> dagsopt['plug_update_plugin'] = $plug_update_plugin; }