Ejemplo n.º 1
0
 /**
  * run_update
  * This function actually updates the db.
  * it goes through versions and finds the ones
  * that need to be run. Checking to make sure
  * the function exists first.
  */
 public static function run_update()
 {
     /* Nuke All Active session before we start the mojo */
     $sql = "TRUNCATE session";
     Dba::write($sql);
     // Prevent the script from timing out, which could be bad
     set_time_limit(0);
     $current_version = self::get_version();
     // Run a check to make sure that they don't try to upgrade from a version that
     // won't work.
     if ($current_version < '340002') {
         echo "<p align=\"center\">Database version too old, please upgrade to <a href=\"http://ampache.org/downloads/ampache-3.3.3.5.tar.gz\">Ampache-3.3.3.5</a> first</p>";
         return false;
     }
     $methods = get_class_methods('Update');
     if (!is_array(self::$versions)) {
         self::$versions = self::populate_version();
     }
     foreach (self::$versions as $version) {
         // If it's newer than our current version let's see if a function
         // exists and run the bugger.
         if ($version['version'] > $current_version) {
             $update_function = "update_" . $version['version'];
             if (in_array($update_function, $methods)) {
                 $success = call_user_func(array('Update', $update_function));
                 // If the update fails drop out
                 if ($success) {
                     self::set_version('db_version', $version['version']);
                 } else {
                     AmpError::display('update');
                     return false;
                 }
             }
         }
     }
     // end foreach version
     // Once we've run all of the updates let's re-sync the character set as
     // the user can change this between updates and cause mis-matches on any
     // new tables.
     Dba::reset_db_charset();
     // Let's also clean up the preferences unconditionally
     User::rebuild_all_preferences();
 }
Ejemplo n.º 2
0
UI::show_header();
/* Switch on action boys */
switch ($_REQUEST['action']) {
    /* This re-generates the config file comparing
     * /config/ampache.cfg to .cfg.dist
     */
    case 'generate_config':
        ob_end_clean();
        $current = parse_ini_file(AmpConfig::get('prefix') . '/config/ampache.cfg.php');
        $final = generate_config($current);
        $browser = new Horde_Browser();
        $browser->downloadHeaders('ampache.cfg.php', 'text/plain', false, filesize(AmpConfig::get('prefix') . '/config/ampache.cfg.php.dist'));
        echo $final;
        exit;
    case 'reset_db_charset':
        Dba::reset_db_charset();
        show_confirmation(T_('Database Charset Updated'), T_('Your Database and associated tables have been updated to match your currently configured charset'), AmpConfig::get('web_path') . '/admin/system.php?action=show_debug');
        break;
    case 'show_debug':
        $configuration = AmpConfig::get_all();
        if ($_REQUEST['autoupdate'] == 'force') {
            $version = AutoUpdate::get_latest_version(true);
        }
        require_once AmpConfig::get('prefix') . '/templates/show_debug.inc.php';
        break;
    default:
        // Rien a faire
        break;
}
// end switch
UI::show_footer();