require(SM_PATH . 'functions/global.php');
require(SM_PATH . 'functions/strings.php');
+/**
+ * get_location starts session and must be run before output is started.
+ */
+$test_location = get_location();
+
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
do_err('You have enabled the <i>'.$plugin.'</i> plugin, which causes problems with this version of SquirrelMail. Please check the ReleaseNotes or other documentation for more information.', false);
}
}
- echo $IND . "Plugins OK.<br />\n";
+ // load plugin functions
+ include_once(SM_PATH . 'functions/plugin.php');
+ // turn on output buffering in order to prevent output of new lines
+ ob_start();
+ foreach ($plugins as $name) {
+ use_plugin($name);
+ }
+ // get output and remove whitespace
+ $output = trim(ob_get_contents());
+ ob_end_clean();
+ // if plugins output more than newlines and spacing, stop script execution.
+ if (!empty($output)) {
+ $plugin_load_error = 'Some output is produced when plugins are loaded.'
+ .' Usually it means error. Output said: '.htmlspecialchars($output);
+ do_err($plugin_load_error);
+ }
+ /**
+ * Hook is added in 1.5.2. Plugins should print error message and return true
+ * if there is an error in plugin.
+ */
+ $plugin_err = boolean_hook_function('configtest');
+ if($plugin_err) {
+ do_err('Some plugin tests failed.');
+ } else {
+ echo $IND . "Plugins OK.<br />\n";
+ }
} else {
echo $IND . "Plugins are not enabled in config.<br />\n";
}
echo $IND . "Default language OK.<br />\n";
}
-echo $IND . "Base URL detected as: <tt>" . htmlspecialchars(get_location()) . "</tt><br />\n";
+echo $IND . "Base URL detected as: <tt>" . htmlspecialchars($test_location) . "</tt><br />\n";
/* check minimal requirements for other security options */