Update install.php
All checks were successful
Deploy Workshop-Wahlen (DEV / PROD) / deploy (push) Successful in 15s

This commit is contained in:
2026-02-06 18:45:45 +00:00
parent bbfa923c9d
commit 82f2af7e7a

View File

@@ -1,139 +1,140 @@
<?php <?php
if (!defined('ABSPATH')) exit; if (!defined('ABSPATH')) exit;
/** /**
* Create plugin database tables on activation and remove them on deactivation. * Create plugin database tables on activation and remove them on deactivation.
*/
function kc_install_tables() { */
global $wpdb; function kc_install_tables() {
$prefix = $wpdb->prefix; global $wpdb;
$charset_collate = $wpdb->get_charset_collate(); $prefix = $wpdb->prefix;
$charset_collate = $wpdb->get_charset_collate();
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
// Tables definitions
$tables_sql = []; // Tables definitions
$tables_sql = [];
$tables_sql[] = "CREATE TABLE {$prefix}kc_wahlen (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT, $tables_sql[] = "CREATE TABLE {$prefix}kc_wahlen (
name varchar(191) NOT NULL, id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
beschreibung text DEFAULT NULL, name varchar(191) NOT NULL,
anzahl_einheiten tinyint NOT NULL DEFAULT 1, beschreibung text DEFAULT NULL,
min_kapazitaet int NOT NULL DEFAULT 0, anzahl_einheiten tinyint NOT NULL DEFAULT 1,
max_kapazitaet int NOT NULL DEFAULT 0, min_kapazitaet int NOT NULL DEFAULT 0,
freigegeben tinyint(1) NOT NULL DEFAULT 0, max_kapazitaet int NOT NULL DEFAULT 0,
deleted tinyint(1) NOT NULL DEFAULT 0, freigegeben tinyint(1) NOT NULL DEFAULT 0,
PRIMARY KEY (id) deleted tinyint(1) NOT NULL DEFAULT 0,
) $charset_collate"; PRIMARY KEY (id)
) $charset_collate";
$tables_sql[] = "CREATE TABLE {$prefix}kc_workshops (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT, $tables_sql[] = "CREATE TABLE {$prefix}kc_workshops (
name varchar(191) NOT NULL, id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
beschreibung text DEFAULT NULL, name varchar(191) NOT NULL,
max_teilnehmer int NOT NULL DEFAULT 0, beschreibung text DEFAULT NULL,
min_teilnehmer int NOT NULL DEFAULT 0, max_teilnehmer int NOT NULL DEFAULT 0,
PRIMARY KEY (id) min_teilnehmer int NOT NULL DEFAULT 0,
) $charset_collate"; PRIMARY KEY (id)
) $charset_collate";
$tables_sql[] = "CREATE TABLE {$prefix}kc_teamer (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT, $tables_sql[] = "CREATE TABLE {$prefix}kc_teamer (
vorname varchar(191) DEFAULT NULL, id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
nachname varchar(191) DEFAULT NULL, vorname varchar(191) DEFAULT NULL,
PRIMARY KEY (id) nachname varchar(191) DEFAULT NULL,
) $charset_collate"; PRIMARY KEY (id)
) $charset_collate";
$tables_sql[] = "CREATE TABLE {$prefix}kc_teilnehmer (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT, $tables_sql[] = "CREATE TABLE {$prefix}kc_teilnehmer (
vorname varchar(191) DEFAULT NULL, id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
nachname varchar(191) DEFAULT NULL, vorname varchar(191) DEFAULT NULL,
wahl_id bigint(20) unsigned NOT NULL DEFAULT 0, nachname varchar(191) DEFAULT NULL,
phase tinyint NOT NULL DEFAULT 1, wahl_id bigint(20) unsigned NOT NULL DEFAULT 0,
wunsch1 bigint(20) unsigned DEFAULT NULL, phase tinyint NOT NULL DEFAULT 1,
wunsch2 bigint(20) unsigned DEFAULT NULL, wunsch1 bigint(20) unsigned DEFAULT NULL,
wunsch3 bigint(20) unsigned DEFAULT NULL, wunsch2 bigint(20) unsigned DEFAULT NULL,
deleted tinyint(1) NOT NULL DEFAULT 0, wunsch3 bigint(20) unsigned DEFAULT NULL,
PRIMARY KEY (id) deleted tinyint(1) NOT NULL DEFAULT 0,
) $charset_collate"; PRIMARY KEY (id)
) $charset_collate";
$tables_sql[] = "CREATE TABLE {$prefix}kc_wahl_workshops (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT, $tables_sql[] = "CREATE TABLE {$prefix}kc_wahl_workshops (
wahl_id bigint(20) unsigned NOT NULL DEFAULT 0, id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
workshop_id bigint(20) unsigned NOT NULL DEFAULT 0, wahl_id bigint(20) unsigned NOT NULL DEFAULT 0,
phase tinyint NOT NULL DEFAULT 1, workshop_id bigint(20) unsigned NOT NULL DEFAULT 0,
PRIMARY KEY (id) phase tinyint NOT NULL DEFAULT 1,
) $charset_collate"; PRIMARY KEY (id)
) $charset_collate";
$tables_sql[] = "CREATE TABLE {$prefix}kc_force_zuteilung (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT, $tables_sql[] = "CREATE TABLE {$prefix}kc_force_zuteilung (
teilnehmer_id bigint(20) unsigned NOT NULL DEFAULT 0, id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
wahl_id bigint(20) unsigned NOT NULL DEFAULT 0, teilnehmer_id bigint(20) unsigned NOT NULL DEFAULT 0,
phase tinyint NOT NULL DEFAULT 1, wahl_id bigint(20) unsigned NOT NULL DEFAULT 0,
workshop_id bigint(20) unsigned DEFAULT NULL, phase tinyint NOT NULL DEFAULT 1,
kommentar text DEFAULT NULL, workshop_id bigint(20) unsigned DEFAULT NULL,
PRIMARY KEY (id) kommentar text DEFAULT NULL,
) $charset_collate"; PRIMARY KEY (id)
) $charset_collate";
$tables_sql[] = "CREATE TABLE {$prefix}kc_zuteilung (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT, $tables_sql[] = "CREATE TABLE {$prefix}kc_zuteilung (
teilnehmer_id bigint(20) unsigned NOT NULL DEFAULT 0, id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
vorname varchar(191) DEFAULT NULL, teilnehmer_id bigint(20) unsigned NOT NULL DEFAULT 0,
nachname varchar(191) DEFAULT NULL, vorname varchar(191) DEFAULT NULL,
wahl_id bigint(20) unsigned NOT NULL DEFAULT 0, nachname varchar(191) DEFAULT NULL,
phase tinyint NOT NULL DEFAULT 1, wahl_id bigint(20) unsigned NOT NULL DEFAULT 0,
workshop_id bigint(20) unsigned DEFAULT NULL, phase tinyint NOT NULL DEFAULT 1,
wunsch_rang tinyint DEFAULT NULL, workshop_id bigint(20) unsigned DEFAULT NULL,
PRIMARY KEY (id) wunsch_rang tinyint DEFAULT NULL,
) $charset_collate"; PRIMARY KEY (id)
) $charset_collate";
$tables_sql[] = "CREATE TABLE {$prefix}kc_workshop_teamer (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT, $tables_sql[] = "CREATE TABLE {$prefix}kc_workshop_teamer (
workshop_id bigint(20) unsigned DEFAULT NULL, id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
teamer_id bigint(20) unsigned DEFAULT NULL, workshop_id bigint(20) unsigned DEFAULT NULL,
PRIMARY KEY (id) teamer_id bigint(20) unsigned DEFAULT NULL,
) $charset_collate"; PRIMARY KEY (id)
) $charset_collate";
foreach ($tables_sql as $sql) {
dbDelta($sql); foreach ($tables_sql as $sql) {
} dbDelta($sql);
}
// Post-creation migration guard: ensure min_teilnehmer exists for older installs
$col = $wpdb->get_var($wpdb->prepare("SHOW COLUMNS FROM {$prefix}kc_workshops LIKE %s", 'min_teilnehmer')); // Post-creation migration guard: ensure min_teilnehmer exists for older installs
if (empty($col)) { $col = $wpdb->get_var($wpdb->prepare("SHOW COLUMNS FROM {$prefix}kc_workshops LIKE %s", 'min_teilnehmer'));
// try to add the column (no-op on newer installs) if (empty($col)) {
$wpdb->query("ALTER TABLE {$prefix}kc_workshops ADD COLUMN min_teilnehmer INT NOT NULL DEFAULT 0"); // try to add the column (no-op on newer installs)
} $wpdb->query("ALTER TABLE {$prefix}kc_workshops ADD COLUMN min_teilnehmer INT NOT NULL DEFAULT 0");
}
// Optionally store plugin version
add_option('kc_workshopwahl_db_version', '1.0'); // Optionally store plugin version
} add_option('kc_workshopwahl_db_version', '1.0');
}
function kc_uninstall_tables() {
global $wpdb; function kc_uninstall_tables() {
$prefix = $wpdb->prefix; global $wpdb;
$prefix = $wpdb->prefix;
$tables = [
"{$prefix}kc_zuteilung", $tables = [
"{$prefix}kc_force_zuteilung", "{$prefix}kc_zuteilung",
"{$prefix}kc_wahl_workshops", "{$prefix}kc_force_zuteilung",
"{$prefix}kc_teilnehmer", "{$prefix}kc_wahl_workshops",
"{$prefix}kc_teamer", "{$prefix}kc_teilnehmer",
"{$prefix}kc_workshops", "{$prefix}kc_teamer",
"{$prefix}kc_wahlen", "{$prefix}kc_workshops",
"{$prefix}kc_workshop_teamer" "{$prefix}kc_wahlen",
]; "{$prefix}kc_workshop_teamer"
];
foreach ($tables as $t) {
$wpdb->query("DROP TABLE IF EXISTS $t"); foreach ($tables as $t) {
} $wpdb->query("DROP TABLE IF EXISTS $t");
}
delete_option('kc_workshopwahl_db_version');
} delete_option('kc_workshopwahl_db_version');
}
// Backwards-compat wrapper for register_activation_hook usage
if (!function_exists('kc_register_hooks_internal')) { // Backwards-compat wrapper for register_activation_hook usage
function kc_register_hooks_internal() { if (!function_exists('kc_register_hooks_internal')) {
// intentionally left blank function kc_register_hooks_internal() {
} // intentionally left blank
} }
}
?>
?>