serendipity_plugin_api::hook_event('backend_plugins_fetchplugin', $fetchplugin_data);
if ($fetchplugin_data['install']) {
+ $serendipity['debug']['pluginload'] = array();
$inst = serendipity_plugin_api::create_plugin_instance($serendipity['GET']['install_plugin'], null, (serendipity_plugin_api::is_event_plugin($serendipity['GET']['install_plugin']) ? 'event': 'right'), $authorid, serendipity_db_escape_string($serendipity['GET']['pluginPath']));
/* Load the new plugin */
$plugin = &serendipity_plugin_api::load_plugin($inst);
+ if (!is_object($plugin)) {
+ echo "DEBUG: Plugin $inst not an object: " . print_r($plugin, true) . ".<br />Input: " . print_r($serendipity['GET'], true) . ".<br /><br />\n\nPlease report this bug. This error can happen if a plugin was not properly downloaded (check your plugins directory if the requested plugin was downloaded) or the inclusion of a file failed (permissions?)<br />\n";
+ echo "Backtrace:<br />\n" . implode("<br />\n", $serendipity['debug']['pluginload']) . "<br />";
+ }
$bag = new serendipity_property_bag;
$plugin->introspect($bag);
$nextidx = 0;
}
- serendipity_db_query("INSERT INTO {$serendipity['dbPrefix']}plugins (name, sort_order, placement, authorid, path) values ('$key', $nextidx, '$default_placement', '$authorid', '$pluginPath')");
+ $serendipity['debug']['pluginload'][] = "Installing plugin: " . print_r(func_get_args(), true);
+
+ $iq = "INSERT INTO {$serendipity['dbPrefix']}plugins (name, sort_order, placement, authorid, path) values ('$key', $nextidx, '$default_placement', '$authorid', '$pluginPath')";
+ $serendipity['debug']['pluginload'][] = $iq;
+ serendipity_db_query($iq);
serendipity_plugin_api::hook_event('backend_plugins_new_instance', $key, array('default_placement' => $default_placement));
/* Check for multiple dependencies */
$plugin->register_dependencies(false, $authorid);
$plugin->install();
} else {
+ $serendipity['debug']['pluginload'][] = "Loading plugin failed painfully. File not found?";
echo ERROR . ': ' . $key . ' (' . $pluginPath . ')<br />';
}
if (!$is_internal) {
/* plugin from the plugins/ dir */
+ $serendipity['debug']['pluginload'][] = "Including plugin $class_name, $pluginPath";
$filename = serendipity_plugin_api::includePlugin($class_name, $pluginPath);
if (empty($filename) && !empty($instance_id)) {
+ $serendipity['debug']['pluginload'][] = "No valid path/filename found.";
$sql = "SELECT path from {$serendipity['dbPrefix']}plugins WHERE name = '" . $instance_id . "'";
$plugdata = serendipity_db_query($sql, true, 'both', false, false, false, true);
if (is_array($plugdata) && isset($plugdata[0])) {
$pluginPath = $class_name;
}
+ $serendipity['debug']['pluginload'][] = "Including plugin(2) $class_name, $pluginPath";
$filename = serendipity_plugin_api::includePlugin($class_name, $pluginPath);
}
if (empty($filename)) {
+ $serendipity['debug']['pluginload'][] = "No valid path/filename found. Aborting.";
return false;
}
}
+ $serendipity['debug']['pluginload'][] = "Found plugin file $filename";
return $filename;
}
if ($pluginFile === null) {
$class_name = '';
+ $serendipity['debug']['pluginload'][] = "Init probe for plugin $instance_id, $class_name, $pluginPath";
$pluginFile = serendipity_plugin_api::probePlugin($instance_id, $class_name, $pluginPath);
} else {
$is_internal = false;
+ $serendipity['debug']['pluginload'][] = "getClassByInstanceID $instance_id, $is_internal";
$class_name = serendipity_plugin_api::getClassByInstanceID($instance_id, $is_internal);
}
if (!class_exists($class_name) && !empty($pluginFile)) {
+ $serendipity['debug']['pluginload'][] = "Classname does not exist. Including $pluginFile.";
include_once($pluginFile);
}
if (!class_exists($class_name)) {
+ $serendipity['debug']['pluginload'][] = "Classname $class_name still does not exist. Aborting.";
return false;
}
+ $serendipity['debug']['pluginload'][] = "Returning new $class_name($instance_id)";
$p =& new $class_name($instance_id);
if (!is_null($authorid)) {
$p->serendipity_owner = $authorid;