/** * Load the contents of the schema into the database and then alter it based on what has been input during the installation */ function load_schema($mode, $sub) { global $cache, $gallery_config, $phpbb_root_path, $phpEx, $template, $user; include $phpbb_root_path . 'includes/acp/auth.' . $phpEx; $this->page_title = $user->lang['STAGE_CREATE_TABLE']; $s_hidden_fields = ''; $dbms_data = get_dbms_infos(); $db_schema = $dbms_data['db_schema']; $delimiter = $dbms_data['delimiter']; // Create the tables nv_create_table('phpbb_gallery_albums', $dbms_data); nv_create_table('phpbb_gallery_albums_track', $dbms_data); nv_create_table('phpbb_gallery_comments', $dbms_data); nv_create_table('phpbb_gallery_config', $dbms_data); nv_create_table('phpbb_gallery_contests', $dbms_data); nv_create_table('phpbb_gallery_favorites', $dbms_data); nv_create_table('phpbb_gallery_images', $dbms_data); nv_create_table('phpbb_gallery_modscache', $dbms_data); nv_create_table('phpbb_gallery_permissions', $dbms_data); nv_create_table('phpbb_gallery_rates', $dbms_data); nv_create_table('phpbb_gallery_reports', $dbms_data); nv_create_table('phpbb_gallery_roles', $dbms_data); nv_create_table('phpbb_gallery_users', $dbms_data); nv_create_table('phpbb_gallery_watch', $dbms_data); // Create columns nv_add_column(SESSIONS_TABLE, 'session_album_id', array('UINT', 0)); nv_add_column(LOG_TABLE, 'album_id', array('UINT', 0)); nv_add_column(LOG_TABLE, 'image_id', array('UINT', 0)); nv_add_index(GALLERY_USERS_TABLE, 'pg_palbum_id', array('personal_album_id')); nv_add_index(SESSIONS_TABLE, 'session_aid', array('session_album_id')); // Set default config set_default_config(); $auth_admin = new auth_admin(); $auth_admin->acl_add_option(array('local' => array(), 'global' => array('a_gallery_manage', 'a_gallery_albums', 'a_gallery_import', 'a_gallery_cleanup'))); $cache->destroy('acl_options'); $template->assign_vars(array('BODY' => $user->lang['STAGE_CREATE_TABLE_EXPLAIN'], 'L_SUBMIT' => $user->lang['NEXT_STEP'], 'S_HIDDEN' => '', 'U_ACTION' => append_sid("{$phpbb_root_path}install/index.{$phpEx}", "mode={$mode}&sub=in_progress"))); }
/** * Add some Tables, Columns and Index to the database-schema */ function update_db_schema($mode, $sub) { global $db, $user, $template, $table_prefix; global $phpbb_root_path, $phpEx; $this->page_title = $user->lang['STAGE_UPDATE_DB']; $phpbb_gallery_version = get_gallery_version(); phpbb_gallery_config::set('version', $phpbb_gallery_version); $dbms_data = get_dbms_infos(); $db_schema = $dbms_data['db_schema']; $delimiter = $dbms_data['delimiter']; switch (phpbb_gallery_config::get('version')) { case '0.1.2': case '0.1.3': case '0.2.0': case '0.2.1': case '0.2.2': case '0.2.3': case '0.3.0': case '0.3.1': case '0.3.2-RC1': case '0.3.2-RC2': case '0.4.0-RC1': case '0.4.0-RC2': case '0.4.0-RC3': case '0.4.0': trigger_error('VERSION_NOT_SUPPORTED', E_USER_ERROR); break; case '0.4.1': nv_add_column(GALLERY_ALBUMS_TABLE, 'album_contest', array('UINT', 0)); nv_add_column(GALLERY_IMAGES_TABLE, 'filesize_upload', array('UINT:20', 0)); nv_add_column(GALLERY_IMAGES_TABLE, 'filesize_medium', array('UINT:20', 0)); nv_add_column(GALLERY_IMAGES_TABLE, 'filesize_cache', array('UINT:20', 0)); nv_add_column(GALLERY_IMAGES_TABLE, 'image_contest', array('UINT:1', 0)); nv_add_column(GALLERY_IMAGES_TABLE, 'image_exif_data', array('TEXT', '')); nv_change_column(GALLERY_PERMISSIONS_TABLE, 'perm_system', array('INT:3', 0)); nv_create_table('phpbb_gallery_contests', $dbms_data); case '0.5.0': nv_add_column(GALLERY_ALBUMS_TABLE, 'album_status', array('UINT:1', 0)); nv_add_column(GALLERY_ALBUMS_TABLE, 'display_in_rrc', array('UINT:1', 1)); nv_add_column(GALLERY_IMAGES_TABLE, 'image_contest_end', array('TIMESTAMP', 0)); nv_add_column(GALLERY_IMAGES_TABLE, 'image_contest_rank', array('UINT:3', 0)); case '0.5.1': case '0.5.2': nv_create_table('phpbb_gallery_albums_track', $dbms_data); nv_add_column(GALLERY_USERS_TABLE, 'user_lastmark', array('TIMESTAMP', 0)); case '0.5.3': nv_add_column(LOG_TABLE, 'album_id', array('UINT', 0)); nv_add_column(LOG_TABLE, 'image_id', array('UINT', 0)); case '0.5.4': case '1.0.0-dev': nv_add_column(GALLERY_ROLES_TABLE, 'i_unlimited', array('UINT:3', 0)); nv_add_column(GALLERY_ROLES_TABLE, 'album_unlimited', array('UINT:3', 0)); case '1.0.0-RC1': case '1.0.0-RC2': case '1.0.0': case '1.0.1-dev': nv_add_column(GALLERY_IMAGES_TABLE, 'image_name_clean', array('VCHAR:255', '')); nv_add_column(GALLERY_IMAGES_TABLE, 'image_username_clean', array('VCHAR:255', '')); case '1.0.1': case '1.0.2-dev': case '1.0.2-RC1': case '1.0.2': case '1.0.3-RC1': case '1.0.3-RC2': case '1.0.3': case '1.0.4': nv_add_column(GALLERY_ALBUMS_TABLE, 'album_watermark', array('UINT:1', 1)); nv_add_column(GALLERY_ALBUMS_TABLE, 'album_sort_key', array('VCHAR:8', '')); nv_add_column(GALLERY_ALBUMS_TABLE, 'album_sort_dir', array('VCHAR:8', '')); nv_add_column(GALLERY_USERS_TABLE, 'user_viewexif', array('UINT:1', 0)); case '1.0.5-RC1': // Only allow update from 1.0.5 trigger_error('VERSION_NOT_SUPPORTED', E_USER_ERROR); break; case '1.0.5': nv_add_column(GALLERY_USERS_TABLE, 'user_permissions', array('MTEXT', '')); nv_add_column(GALLERY_USERS_TABLE, 'user_last_update', array('TIMESTAMP', 0)); break; } $template->assign_vars(array('BODY' => $user->lang['STAGE_CREATE_TABLE_EXPLAIN'], 'L_SUBMIT' => $user->lang['NEXT_STEP'], 'S_HIDDEN' => '', 'U_ACTION' => append_sid("{$phpbb_root_path}install/index.{$phpEx}", "mode={$mode}&sub=update_db&step=2"))); }