Seditio Source
Root |
./othercms/b2evolution_7.2.3/install/_functions_delete.php
<?php
/**
 * This file implements deletion of DB tables
 *
 * b2evolution - {@link http://b2evolution.net/}
 * Released under GNU GPL License - {@link http://b2evolution.net/about/gnu-gpl-license}
 * @copyright (c)2003-2020 by Francois Planque - {@link http://fplanque.com/}
 *
 * @package install
 */
if( !defined('EVO_MAIN_INIT') ) die( 'Please, do not access this page directly.' );

/**
 * db_delete(-)
 */
function db_delete()
{
    global
$DB, $db_config, $tableprefix;

    echo
get_install_format_text_and_log( "Disabling foreign key checks...<br />\n", 'br' );
   
$DB->query( 'SET FOREIGN_KEY_CHECKS=0' );

    foreach(
$db_config['aliases'] as $alias => $tablename )
    {
        echo
get_install_format_text_and_log( "Dropping $tablename table...<br />\n", 'br' );
       
evo_flush();
       
$DB->query( 'DROP TABLE IF EXISTS '.$tablename );
    }

   
// Get remaining tables with the same prefix and delete them as well. Probably these tables are some b2evolution plugins tables.
   
$remaining_tables = $DB->get_col( 'SHOW TABLES FROM `'.$db_config['name'].'` LIKE "'.$tableprefix.'%"' );
    foreach(
$remaining_tables as $tablename )
    {
        echo
get_install_format_text_and_log( "Dropping $tablename table...<br />\n", 'br' );
       
evo_flush();
       
$DB->query( 'DROP TABLE IF EXISTS '.$tablename );
    }
}


/**
 * Uninstall b2evolution: Delete DB & Cache files
 */
function uninstall_b2evolution()
{
    global
$DB;

   
/* REMOVE PAGE CACHE */
   
load_class( '_core/model/_pagecache.class.php', 'PageCache' );

   
// Remove general page cache
   
$PageCache = new PageCache( NULL );
   
$PageCache->cache_delete();

   
// Skip if T_blogs table is already deleted. Note that db_delete() will not throw any errors on missing tables.
   
if( $DB->query( 'SHOW TABLES LIKE "T_blogs"' ) )
    {
// Get all blogs
       
$blogs_SQL = new SQL( 'Get all collections' );
       
$blogs_SQL->SELECT( 'blog_ID' );
       
$blogs_SQL->FROM( 'T_blogs' );
       
$blogs = $DB->get_col( $blogs_SQL );

       
$BlogCache = & get_BlogCache( 'blog_ID' );
        foreach(
$blogs as $blog_ID )
        {
           
$Collection = $Blog = $BlogCache->get_by_ID( $blog_ID );

           
// Remove page cache of current blog
           
$PageCache = new PageCache( $Blog );
           
$PageCache->cache_delete();
        }
       
// Clear cache in order to avoid unexpected errors on install new collections right after uninstall:
       
$BlogCache->clear();
    }

   
/* REMOVE DATABASE */
   
db_delete();

    echo
get_install_format_text_and_log( '<p>'.T_('Reset done!').'</p>', 'p' );
}
?>