$mod_dir = basename(dirname(__FILE__)); require WB_PATH . '/modules/' . $mod_dir . '/info.php'; // include module.functions.php include_once WB_PATH . '/framework/module.functions.php'; // load outputfilter-functions require_once dirname(__FILE__) . "/functions.php"; opf_io_mkdir(__OPF_UPLOAD_DIRNAME); opf_io_mkdir(WB_PATH . MEDIA_DIRECTORY . '/opf_plugins'); opf_io_unlink($mod_dir . '/debug_config.php'); opf_io_unlink($mod_dir . '/config_init.php'); opf_io_unlink($mod_dir . '/precheck.php'); if (file_exists(WB_PATH . '/modules/practical_module_functions/pmf.php')) { // load Practical Module Functions include_once WB_PATH . '/modules/practical_module_functions/pmf.php'; $opf = pmf_init(0, basename(dirname(__FILE__))); // unregister this module since we do not use pmf anymore pmf_mod_unregister($opf, basename(dirname(__FILE__))); } opf_db_run_query("DROP TABLE IF EXISTS `" . TABLE_PREFIX . "mod_outputfilter_dashboard_settings`"); opf_io_rmdir(dirname(__FILE__) . '/naturaldocs_txt'); // install or upgrade example plugins $install_file = '/plugin_install.php'; $info_file = 'plugin_info.php'; $install_dir = dirname(__FILE__) . '/plugins/'; $plugins = array('cachecontrol', 'correct_date_format'); foreach ($plugins as $plugin_dir) { // run install-script if (file_exists($install_dir . $plugin_dir . $install_file)) { require $install_dir . $plugin_dir . $install_file; } }
@unlink($temp_dir . $temp_file); return; } // Check version if (file_exists($install_dir . $plugin_directory)) { $old_version = opf_plugin_info_read($install_dir . $plugin_directory . '/' . $info_file, 'plugin_version'); $new_version = opf_plugin_info_read($temp_unzip . $info_file, 'plugin_version'); if (version_compare($old_version, $new_version, '>')) { $upload_message = sprintf($text_failed, $LANG['MOD_OPF']['TXT_ALREADY_INSTALLED']); opf_io_rmdir($temp_unzip); @unlink($temp_dir . $temp_file); return; } } // Cleanup temp opf_io_rmdir($temp_unzip); $plugin_dir = $install_dir . $plugin_directory . '/'; opf_io_mkdir($plugin_dir); // unzip plugin directly to $plugin_dir $list = $archive->extract(PCLZIP_OPT_PATH, $plugin_dir); if (!$list) { $upload_message = sprintf($text_failed, $LANG['MOD_OPF']['TXT_UNZIP_FAILED']); @unlink($temp_dir . $temp_file); return; } // delete archive @unlink($temp_dir . $temp_file); // chmod new files foreach (opf_io_filelist($plugin_dir) as $file) { opf_io_chmod($file); }
function opf_unregister_filter($name) { if (!function_exists('opf_unregister_call_uninstall')) { function opf_unregister_call_uninstall($file) { include $file; } } static $old_name = FALSE; $now = time(); $name = opf_check_name($name); if (!$name) { return FALSE; } if ($old_name == $name) { return FALSE; } // prevent usage of opf_unregister_filter() in plugin_uninstall.php $old_name = $name; // check whether $name is in DB if (opf_is_registered($name)) { $pos = opf_get_position($name); $type = opf_get_type($name); // delete plugin-dir if present if ($plugin_dir = opf_db_query_vars("SELECT `plugin` FROM `" . TABLE_PREFIX . "mod_outputfilter_dashboard` WHERE `name`='%s'", $name)) { if ($plugin_dir && file_exists(WB_PATH . '/modules/outputfilter_dashboard/plugins/' . $plugin_dir)) { // uninstall.php present? include it if (file_exists(WB_PATH . '/modules/outputfilter_dashboard/plugins/' . $plugin_dir . '/plugin_uninstall.php')) { opf_unregister_call_uninstall(WB_PATH . '/modules/outputfilter_dashboard/plugins/' . $plugin_dir . '/plugin_uninstall.php'); } opf_io_rmdir(WB_PATH . '/modules/outputfilter_dashboard/plugins/' . $plugin_dir); } } $res = opf_db_run_query("DELETE FROM `" . TABLE_PREFIX . "mod_outputfilter_dashboard` WHERE `name`='%s'", $name); if ($res) { if (opf_db_run_query("UPDATE `" . TABLE_PREFIX . "mod_outputfilter_dashboard` SET `position`=`position`-1\n WHERE `type`='%s' AND `position`>%d", $type, $pos)) { return TRUE; } } } return FALSE; }
* the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * OutputFilter-Dashboard is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with OutputFilter-Dashboard. If not, see <http://www.gnu.org/licenses/>. * **/ // prevent this file from being accessed directly if (!defined('WB_PATH')) { die(header('Location: ../index.php')); } // obtain module directory $mod_dir = basename(dirname(__FILE__)); require WB_PATH . '/modules/' . $mod_dir . '/info.php'; // include module.functions.php include_once WB_PATH . '/framework/module.functions.php'; // include the module language file depending on the backend language of the current user if (!(include get_module_language_file($mod_dir))) { return; } // load outputfilter-functions require_once dirname(__FILE__) . '/functions.php'; // delete media-dir opf_io_rmdir(WB_PATH . MEDIA_DIRECTORY . '/opf_plugins'); opf_db_run_query("DROP TABLE IF EXISTS `" . TABLE_PREFIX . "mod_outputfilter_dashboard`"); opf_db_run_query("DROP TABLE IF EXISTS `" . TABLE_PREFIX . "mod_outputfilter_dashboard_settings`");
function opf_io_rmdir($dir) { $res = TRUE; if (!file_exists($dir)) { return FALSE; } if (is_file($dir) || is_link($dir)) { return unlink($dir); } $dh = opendir($dir); while ($file = readdir($dh)) { if ($file == '.' || $file == '..') { continue; } is_dir($dir . '/' . $file) ? $res = opf_io_rmdir($dir . '/' . $file) : ($res = unlink($dir . '/' . $file)); if ($res == FALSE) { break; } } closedir($dh); if ($res == TRUE) { $res = rmdir($dir); } return $res; }