_enabledlist = CONFIG_DIR . 'plugins.conf.php'; parent::__construct(); } function _checkFile($directory, $file) { $f = "$directory/$file"; if (is_dir($f) && file_exists("$f/plugin.$file.php")) { array_push($this->_list, $file); } return 0; } /* * * @param $checkonly bool if false will load all the plugins, * if true will check if the plugin exist */ function getEnableds($checkonly) { $lang = & $GLOBALS ['lang']; $errors = array(); if (!file_exists($this->_enabledlist)) return false; include ($this->_enabledlist); $var = $this->_varname; $this->enabledlist = $$var; foreach ($$var as $plugin) { $e = plugin_load($plugin, $checkonly); if ($e) $errors [] = $e; } return $errors; } } function plugin_loadall($check = false) { // this is done during init process // all the plugin are loaded $pluginlister = new plugin_indexer(); $enab = $pluginlister->getEnableds($check); include_once (INCLUDES_DIR . 'core.wp-pluggable-funcs.php'); return $enab; } function plugin_get($id = null) { $pluginlister = new plugin_indexer(); return $pluginlister->getList(); } function plugin_loaded($id) { if (file_exists(PLUGINS_DIR . $id . '/plugin.' . $id . ".php")) { return true; } return false; } function plugin_load($plugin, $checkonly = true, $langload = true) { global $lang; $errno = 0; $errors = false; if (file_exists($f = PLUGINS_DIR . "$plugin/plugin.$plugin.php")) { $errno = 1; // 1 means exists } elseif (file_exists($f = PLUGINS_DIR . "$plugin/$plugin.php")) { $errno = 2; // 2 means exists but filename is oldstyle } if ($errno > 0) { ob_start(); include_once ($f); ob_end_clean(); } if ($langload) @lang_load("plugin:{$plugin}"); if ($checkonly) { $func = "plugin_{$plugin}_setup"; if (is_callable($func)) { $errno = $func(); } if ($errno <= 0) { if (isset($lang ['plugin'] [$plugin] ['errors'] [$errno])) { $errors = "[{$plugin}] {$lang['plugin'][$plugin]['errors'][$errno]}"; } elseif ($errno < 0) { $errors = "[$plugin] " . sprintf($lang ['admin'] ['plugin'] ['errors'] ['generic'], $errno); } else { $errors = "[$plugin] " . $lang ['admin'] ['plugin'] ['errors'] ['notfound']; } } } return $errors; } function plugin_exists($id) { return file_exists($f = PLUGINS_DIR . $id . '/plugin.' . $id . ".php"); } function plugin_do($id, $type = null) { $entry = null; if (file_exists($f = PLUGINS_DIR . 'plugin.' . $id . ".php")) { include_once ($f); } else return false; } function plugin_require($id) { return !plugin_loaded($id); /* * global $_FP_SMARTY; * $_FP_SMARTY->trigger_error("A plugin required $id to be loaded to work properly, but $id ". * "does not appear to be loaded. Maybe the plugins have been loaded in the wrong sequence. ". * "Check your plugin config in the control panel"); */ } function plugin_getdir($id) { return PLUGINS_DIR . $id . '/'; } function plugin_geturl($id) { return BLOG_BASEURL . PLUGINS_DIR . $id . '/'; } /* * * plugin options system might * change * */ function plugin_getoptions($plugin, $key = null) { global $fp_config; if ($key && isset($fp_config ['plugins'] [$plugin] [$key])) return $fp_config ['plugins'] [$plugin] [$key]; return isset($fp_config ['plugins'] [$plugin]) ? $fp_config ['plugins'] [$plugin] : null; } function plugin_addoption($plugin, $key, $val) { global $fp_config; if (!isset($fp_config ['plugins'])) $fp_config ['plugins'] = array(); if (!isset($fp_config ['plugins'] [$plugin])) $fp_config ['plugins'] [$plugin] = array(); return $fp_config ['plugins'] [$plugin] [$key] = $val; } function plugin_saveoptions($null = null) { return config_save(); } function smarty_function_plugin_getdir($params, &$smarty) { if (!isset($params ['plugin'])) // todo complete here $smarty->trigger_error('You must set plugin= parameter to a valid id!'); return plugin_getdir($id); } function plugin_getinfo($plugin) { $plugin_data = io_load_file(plugin_getdir($plugin) . "plugin.$plugin.php"); preg_match("|Plugin Name:(.*)|i", $plugin_data, $plugin_name); preg_match("|Plugin URI:(.*)|i", $plugin_data, $plugin_uri); preg_match("|Description:(.*)|i", $plugin_data, $description); preg_match("|Author:(.*)|i", $plugin_data, $author_name); preg_match("|Author URI:(.*)|i", $plugin_data, $author_uri); if (preg_match("|Version:(.*)|i", $plugin_data, $version)) $version = trim($version [1]); else $version = ''; $description = wptexturize(trim($description [1])); $name = $plugin_name [1]; $name = trim($name); $plugin = $name; if ('' != $plugin_uri [1] && '' != $name) { // '" title="'.__('Visit plugin homepage').'">'. $plugin = '' . trim($author_name [1]) . ''; } global $smarty; $smarty->assign(array( 'name' => $name, 'title' => $plugin, 'description' => $description, 'author' => $author, 'version' => $version )); } $_FP_SMARTY->registerPlugin('function', 'plugin_getdir', 'smarty_function_plugin_getdir'); ?>