Example #1
0
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;
}
Example #2
0
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;
         }