+setThisExtensionVersion('0.0.1');
+
+// Version history array (add more with , '0.0.1' and so on)
+setExtensionVersionHistory(array('0.0.0', '0.0.1'));
+
+// Check extension load-mode
+switch (getExtensionMode()) {
+ case 'setup': // Do stuff when installation is running
+ // Configuration entries
+ addConfigAddSql('booking_page_count', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 10');
+ addConfigAddSql('booking_purge', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 3));
+
+ // Drop/create table for user bookings
+ addDropTableSql('user_booking');
+ addCreateTableSql('user_booking', "
+`booking_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
+`userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+`subject` VARCHAR(255) NOT NULL DEFAULT 'missing',
+`points_mode` ENUM('ADD','SUB') NOT NULL DEFAULT 'ADD',
+`points_account_type` VARCHAR(255) NOT NULL DEFAULT 'INVALID',
+`points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.0000,
+`comments` TINYTEXT NULL DEFAULT NULL,
+`recorded` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+PRIMARY KEY (`booking_id`),
+INDEX (`userid`)",
+ 'Member points booking table');
+
+ // Admin menu
+ addAdminMenuSql('setup','config_booking','Kontoauszug','Einstellungen am Kontoauszug für Mitglieder vornehmen.', 14);
+ addAdminMenuSql('user','list_booking','Kontoauszüge','Kontoauszüge aller Ihrer Mitglieder oder eines einzelnen Mitgliedes anzeigen.',10);
+
+ // Member menu
+ addMemberMenuSql('main', 'booking', '{OPEN_CONFIG}POINTS{CLOSE_CONFIG}-Kontoauszug', 5);
+
+ // Add the filters
+ registerFilter(__FILE__, __LINE__, 'post_add_points', 'ADD_BOOKING_RECORD', FALSE, TRUE, isExtensionDryRun());
+ registerFilter(__FILE__, __LINE__, 'post_sub_points', 'ADD_BOOKING_RECORD', FALSE, TRUE, isExtensionDryRun());
+ registerFilter(__FILE__, __LINE__, 'member_admin_actions', 'ADD_BOOKING_MEMBER_ACTION', FALSE, TRUE, isExtensionDryRun());
+ break;