function getPluginData($plugin, $load = true) { global $pluginpages, $pluginbuckets, $plugintemplates, $misc, $abxd_version; if (!is_dir(__DIR__ . "/../plugins/" . $plugin)) { throw new BadPluginException("Plugin folder is gone"); } $plugindata = array(); $plugindata['dir'] = $plugin; if (!file_exists(__DIR__ . "/../plugins/" . $plugin . "/plugin.settings")) { throw new BadPluginException(__("Plugin folder doesn't contain plugin.settings")); } $minver = 220; //we introduced these plugins in 2.2.0 so assume this. $settingsFile = file_get_contents(__DIR__ . "/../plugins/" . $plugin . "/plugin.settings"); $settings = explode("\n", $settingsFile); foreach ($settings as $setting) { $setting = trim($setting); if ($setting == "") { continue; } $setting = explode("=", $setting); $setting[0] = trim($setting[0]); $setting[1] = trim($setting[1]); if ($setting[0][0] == "#") { continue; } if ($setting[0][0] == "\$") { registerSetting(substr($setting[0], 1), $setting[1]); } else { $plugindata[$setting[0]] = $setting[1]; } if ($setting[0] == "minversion") { $minver = (int) $setting[1]; } } // where the f**k is $abxd_version supposed to be set //if($minver > $abxd_version) // throw new BadPluginException(__("Plugin meant for a later version")); $plugindata['buckets'] = array(); $plugindata['pages'] = array(); $plugindata['templates'] = array(); $dir = __DIR__ . "/../plugins/" . $plugindata['dir']; $pdir = @opendir($dir); while ($f = readdir($pdir)) { if (substr($f, -4) == ".php") { $bucketname = substr($f, 0, -4); $plugindata['buckets'][] = $bucketname; if ($load) { $pluginbuckets[$bucketname][] = $plugindata['dir']; } } } closedir($pdir); if (is_dir($dir . '/pages')) { $pdir = @opendir($dir . '/pages'); while ($f = readdir($pdir)) { if (substr($f, -4) == ".php") { $pagename = substr($f, 0, -4); $plugindata['pages'][] = $pagename; if ($load) { $pluginpages[$pagename] = $plugindata['dir']; } } } closedir($pdir); } if (is_dir($dir . '/templates')) { $pdir = @opendir($dir . '/templates'); while ($f = readdir($pdir)) { if (substr($f, -4) == ".tpl") { $tplname = substr($f, 0, -4); $plugindata['templates'][] = $tplname; if ($load) { $plugintemplates[$tplname] = $plugindata['dir']; } } } closedir($pdir); } return $plugindata; }
function getPluginData($plugin, $load = true) { global $pluginpages, $pluginbuckets, $misc, $abxd_version; if (!is_dir("./plugins/" . $plugin)) { throw new BadPluginException("Plugin folder is gone"); } $plugindata = array(); $plugindata['dir'] = $plugin; if (!file_exists("./plugins/" . $plugin . "/plugin.settings")) { throw new BadPluginException(_("Plugin folder doesn't contain plugin.settings")); } $minver = 220; //we introduced these plugins in 2.2.0 so assume this. $settingsFile = file_get_contents("./plugins/" . $plugin . "/plugin.settings"); $settings = explode("\n", $settingsFile); foreach ($settings as $setting) { $setting = trim($setting); if ($setting == "") { continue; } $setting = explode("=", $setting); $setting[0] = trim($setting[0]); $setting[1] = trim($setting[1]); if ($setting[0][0] == "#") { continue; } if ($setting[0][0] == "\$") { registerSetting(substr($setting[0], 1), $setting[1]); } else { $plugindata[$setting[0]] = $setting[1]; } if ($setting[0] == "minversion") { $minver = (int) $setting[1]; } } if ($minver > $abxd_version) { throw new BadPluginException(_("Plugin meant for a later version")); } $plugindata["buckets"] = array(); $plugindata["pages"] = array(); $dir = "./plugins/" . $plugindata['dir']; $pdir = @opendir($dir); while ($f = readdir($pdir)) { if (substr($f, strlen($f) - 4, 4) == ".php") { if (substr($f, 0, 5) == "page_") { $pagename = substr($f, 5, strlen($f) - 4 - 5); $plugindata["pages"][] = $pagename; if ($load) { $pluginpages[$pagename] = $plugindata['dir']; } } else { $bucketname = substr($f, 0, strlen($f) - 4); $plugindata["buckets"][] = $bucketname; if ($load) { $pluginbuckets[$bucketname][] = $plugindata['dir']; } } } } return $plugindata; }
if ($plugin == "." || $plugin == "..") { continue; } if (is_dir("./plugins/" . $plugin)) { $plugins[$plugin] = array(); $plugins[$plugin]['dir'] = $plugin; if (file_exists("./plugins/" . $plugin . "/plugin.settings")) { $settingsFile = file_get_contents("./plugins/" . $plugin . "/plugin.settings"); $settings = explode("\n", $settingsFile); foreach ($settings as $setting) { $setting = explode("=", $setting); if ($setting[0][0] == "#") { continue; } if ($setting[0][0] == "\$") { registerSetting(substr($setting[0], 1), $setting[1]); } else { $plugins[$plugin][$setting[0]] = $setting[1]; } $minver = 220; //we introduced these plugins in 2.2.0 so assume this. if ($setting[0] == "minversion") { $minver = (int) $setting[1]; } } if ($minver > $misc['version']) { Report(Format("Disabled plugin \"{0}\" -- meant for a later version.", $plugin), 1); rename("./plugins/" . $plugin . "/plugin.settings", "./plugins/" . $plugin . "/plugin.disabled"); unset($plugins[$plugin]); continue; }