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