/** * Hilfsfunktion zum Auslesen aller noch "unerledigten" Updates * @param string $update_dir absoluter Pfad zum Updates-Verzeichnis * @param DbPdo $db eine offene Datenbankverbindung * @return array list of filenames */ function get_updates_to_do($update_dir, $db) { $filenames = array(); // get all available updates from updates directory $update_dir_handle = opendir($update_dir); if ($update_dir_handle) { $filenames['update_files'] = array(); while ($update_file = readdir($update_dir_handle)) { if ($update_file != "update.css" && !is_dir($update_file) && $update_file[0] != ".") { $filenames['update_files'][] = $update_file; } } } unset($update_file); closedir($update_dir_handle); // set defaults for backwards compatibility $filenames['migrations_done'] = array(); $filenames['updates_to_do'] = $filenames['update_files']; if ($db->table_exists("migrations")) { $sql = "SELECT * FROM " . PREFIX . "migrations"; $result = $db->prepare_and_execute($sql); $filenames['migrations_done'] = array(); foreach ($result as $migration_done) { $filenames['migrations_done'][] = $migration_done['filename']; } $filenames['updates_to_do'] = array_diff($filenames['update_files'], $filenames['migrations_done']); } sort($filenames['updates_to_do']); sort($filenames['update_files']); sort($filenames['migrations_done']); return $filenames; }