better handle get_link() enabled plugins crashing on load

This commit is contained in:
Andrew Dolgov 2013-04-19 17:20:03 +04:00
parent 68cccafcad
commit 726bd48e8c

View file

@ -10,6 +10,7 @@ class PluginHost {
private $api_methods = array(); private $api_methods = array();
private $owner_uid; private $owner_uid;
private $debug; private $debug;
private $last_registered;
private static $instance; private static $instance;
const HOOK_ARTICLE_BUTTON = 1; const HOOK_ARTICLE_BUTTON = 1;
@ -59,6 +60,17 @@ class PluginHost {
$this->plugins[$name] = $plugin; $this->plugins[$name] = $plugin;
} }
function get_link() {
header("Content-type: text/plain");
print "One of the plugins called obsolete host method get_link(). This plugin needs to be updated or removed.\n\n";
print "List of plugins loaded: " . join(" ,", array_keys($this->plugins)) . "\n\n";
print "Last plugin initialized (possible culprit): " . $this->last_registered . "\n";
die;
}
function get_dbh() { function get_dbh() {
return $this->dbh; return $this->dbh;
} }
@ -125,6 +137,8 @@ class PluginHost {
if (class_exists($class) && is_subclass_of($class, "Plugin")) { if (class_exists($class) && is_subclass_of($class, "Plugin")) {
$plugin = new $class($this); $plugin = new $class($this);
$this->last_registered = $class;
switch ($kind) { switch ($kind) {
case $this::KIND_SYSTEM: case $this::KIND_SYSTEM:
if ($this->is_system($plugin)) { if ($this->is_system($plugin)) {