function flip_extensions($type, $extensions) { global $forum_db; //First disable dependend extensions $query = array('UPDATE' => 'extensions', 'SET' => 'disabled = \'' . $type . '\'', 'WHERE' => 'id IN (\'' . implode('\',\'', $extensions) . '\')'); $forum_db->query_build($query) or error(__FILE__, __LINE__); // Regenerate the hooks cache require_once FORUM_ROOT . 'include/cache.php'; generate_hooks_cache(); }
if (!isset($base_url)) { // Make an educated guess regarding base_url $base_url_guess = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' ? 'https://' : 'http://') . preg_replace('/:80$/', '', $_SERVER['HTTP_HOST']) . str_replace('\\', '/', dirname($_SERVER['SCRIPT_NAME'])); if (substr($base_url_guess, -1) == '/') { $base_url_guess = substr($base_url_guess, 0, -1); } $base_url = $base_url_guess; } // Verify that we are running the proper database schema revision if (defined('PUN') || !isset($forum_config['o_database_revision']) || $forum_config['o_database_revision'] < FORUM_DB_REVISION || version_compare($forum_config['o_cur_version'], FORUM_VERSION, '<')) { error('Your PunBB database is out-of-date and must be upgraded in order to continue.<br />Please run <a href="' . $base_url . '/admin/db_update.php">db_update.php</a> in order to complete the upgrade process.'); } // Load hooks if (file_exists(FORUM_CACHE_DIR . 'cache_hooks.php')) { include FORUM_CACHE_DIR . 'cache_hooks.php'; } if (!defined('FORUM_HOOKS_LOADED')) { if (!defined('FORUM_CACHE_FUNCTIONS_LOADED')) { require FORUM_ROOT . 'include/cache.php'; } generate_hooks_cache(); require FORUM_CACHE_DIR . 'cache_hooks.php'; } require FORUM_ROOT . 'include/flash_messenger.php'; $forum_flash = new FlashMessenger(); // A good place to add common functions for your extension ($hook = get_hook('es_essentials')) ? eval($hook) : null; if (!defined('FORUM_MAX_POSTSIZE_BYTES')) { define('FORUM_MAX_POSTSIZE_BYTES', 65535); } define('FORUM_ESSENTIALS_LOADED', 1);
function uninstall_extension($folder_name) { global $db, $settings; // Get the uninstall code and run it $query = array('SELECT' => 'uninstall', 'FROM' => 'extensions', 'WHERE' => 'id="' . $db->escape($folder_name) . '"'); ($hook = get_hook('functions_uninstall_extension_sql_select_extensions')) ? eval($hook) : null; $result = $db->query_build($query) or error('Unable to fetch extension', __FILE__, __LINE__); if (!$db->num_rows($result)) { error("No row", __FILE__, __LINE__); } eval($db->result($result)); // Now delete the extension and its hooks from the db $query = array('DELETE' => 'extension_hooks', 'WHERE' => 'extension_id="' . $db->escape($folder_name) . '"'); ($hook = get_hook('functions_uninstall_extension_sql_delete_extension_hooks')) ? eval($hook) : null; $db->query_build($query) or error('Unable to delete extension hooks', __FILE__, __LINE__); $query = array('DELETE' => 'extensions', 'WHERE' => 'id="' . $db->escape($folder_name) . '"'); ($hook = get_hook('functions_uninstall_extension_sql_delete_extensions')) ? eval($hook) : null; $db->query_build($query) or error('Unable to delete extension', __FILE__, __LINE__); generate_hooks_cache(); }