324 lines
13 KiB
PHP
324 lines
13 KiB
PHP
<?php
|
|
$SQL = array();
|
|
|
|
/* Clean up from previous versions */
|
|
if ( \IPS\Db::i()->checkForTable( 'gallery_albums' ) AND \IPS\Db::i()->checkForTable( 'gallery_albums_main' ) )
|
|
{
|
|
$SQL[] = "DROP TABLE gallery_albums;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForTable( 'gallery_albums_temp' ) )
|
|
{
|
|
$SQL[] = "DROP TABLE gallery_albums_temp;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForTable( 'gallery_categories' ) )
|
|
{
|
|
$SQL[] = "DROP TABLE gallery_categories;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForTable( 'gallery_ecardlog' ) )
|
|
{
|
|
$SQL[] = "DROP TABLE gallery_ecardlog;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForTable( 'gallery_favorites' ) )
|
|
{
|
|
$SQL[] = "DROP TABLE gallery_favorites;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForTable( 'gallery_subscriptions' ) )
|
|
{
|
|
$SQL[] = "DROP TABLE gallery_subscriptions;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForTable( 'gallery_upgrade_history' ) )
|
|
{
|
|
$SQL[] = "DROP TABLE gallery_upgrade_history;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForColumn( 'gallery_images', 'category_id' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE gallery_images DROP category_id;";
|
|
}
|
|
|
|
/* This old index laying around? */
|
|
if( \IPS\Db::i()->checkForIndex( 'gallery_bandwidth', 'date' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE gallery_bandwidth DROP INDEX `date`;";
|
|
}
|
|
|
|
/* Old settings potentially still around */
|
|
$SQL[] = "DELETE FROM core_sys_conf_settings WHERE conf_key IN ( 'gallery_display_category', 'gallery_display_album', 'gallery_default_view', 'gallery_enable_both_views',
|
|
'gallery_full_image', 'gallery_display_block_row', 'gallery_web_accessible', 'gallery_display_photostrip', 'gallery_last_updated', 'gallery_show_lastpic',
|
|
'gallery_display_subcats', 'gallery_dir_images', 'gallery_cache_albums', 'gallery_stats_where', 'gallery_images_per_block', 'gallery_last5_images',
|
|
'gallery_random_images', 'gallery_stats', 'gallery_feature_image', 'gallery_thumbnail_link', 'gallery_thumb_width', 'gallery_thumb_height', 'gallery_allowed_domains',
|
|
'gallery_antileech_image', 'gallery_use_rate', 'gallery_rate_display', 'gallery_bandwidth_thumbs', 'gallery_use_ecards', 'display_hotlinking', 'gallery_guests_ecards',
|
|
'gallery_comment_order', 'gallery_allow_usercopyright', 'gallery_copyright_default', 'gallery_exif', 'gallery_iptc', 'gallery_exif_sections', 'gallery_notices_cat',
|
|
'gallery_notices_album', 'gallery_notices_img', 'gallery_idx_num_col', 'gallery_idx_num_row', 'gallery_stats_col', 'gallery_stats_row', 'gallery_stats_cols', 'gallery_stats_rows' );";
|
|
|
|
/* Convert ratings table (easy) */
|
|
if ( \IPS\Db::i()->checkForColumn( 'gallery_ratings', 'id' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE gallery_ratings CHANGE id rate_id BIGINT NOT NULL AUTO_INCREMENT,
|
|
CHANGE member_id rate_member_id INT NOT NULL DEFAULT 0,
|
|
CHANGE rating_where rate_type VARCHAR(32) NOT NULL DEFAULT 'image',
|
|
CHANGE rating_foreign_id rate_type_id BIGINT NOT NULL DEFAULT 0,
|
|
CHANGE rdate rate_date INT NOT NULL DEFAULT 0,
|
|
CHANGE rate rate_rate INT NOT NULL DEFAULT 0,
|
|
DROP INDEX rating_find_me,
|
|
ADD INDEX rating_find_me ( rate_member_id, rate_type, rate_type_id );";
|
|
}
|
|
|
|
/* Convert comments table (easy) - we used to use ignore keyword to prevent warnings about truncating the edit time, but now we need to do this
|
|
the long way since alter ignore table has been removed */
|
|
if ( \IPS\Db::i()->checkForColumn( 'gallery_comments', 'pid' ) )
|
|
{
|
|
/* Note that we have to manually set the prefix for some of these because the auto-replacement regex doesn't look for them */
|
|
$SQL[] = "CREATE TABLE gallery_comments_temp LIKE " . \IPS\Db::i()->prefix . "gallery_comments;";
|
|
$SQL[] = "ALTER TABLE gallery_comments_temp CHANGE pid comment_id INT NOT NULL AUTO_INCREMENT,
|
|
CHANGE edit_time comment_edit_time INT NOT NULL DEFAULT 0,
|
|
CHANGE author_id comment_author_id INT NOT NULL DEFAULT 0,
|
|
CHANGE author_name comment_author_name VARCHAR(255) NULL DEFAULT NULL,
|
|
CHANGE ip_address comment_ip_address VARCHAR(46) NULL DEFAULT NULL,
|
|
CHANGE post_date comment_post_date INT NOT NULL DEFAULT 0,
|
|
CHANGE comment comment_text TEXT NULL DEFAULT NULL,
|
|
CHANGE approved comment_approved TINYINT NOT NULL DEFAULT 0,
|
|
CHANGE img_id comment_img_id BIGINT NOT NULL DEFAULT 0,
|
|
ADD INDEX (comment_ip_address),
|
|
DROP INDEX img_id,
|
|
ADD INDEX img_id (comment_img_id,comment_post_date);";
|
|
$SQL[] = "INSERT IGNORE INTO " . \IPS\Db::i()->prefix . "gallery_comments_temp SELECT * FROM " . \IPS\Db::i()->prefix . "gallery_comments;";
|
|
$SQL[] = "DROP TABLE gallery_comments;";
|
|
$SQL[] = "RENAME TABLE gallery_comments_temp TO gallery_comments;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForColumn( 'gallery_comments', 'use_sig' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE gallery_comments DROP use_sig;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForColumn( 'gallery_comments', 'use_emo' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE gallery_comments DROP use_emo;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForColumn( 'gallery_comments', 'edit_name' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE gallery_comments DROP edit_name;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForColumn( 'gallery_comments', 'append_edit' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE gallery_comments DROP append_edit;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForIndex( 'gallery_comments', 'img_id_2' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE gallery_comments DROP INDEX img_id_2;";
|
|
}
|
|
|
|
/* Add new column to temp uploads table (easy) */
|
|
if ( !\IPS\Db::i()->checkForColumn( 'gallery_images_uploads', 'upload_category_id' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE gallery_images_uploads ADD upload_category_id INT NOT NULL DEFAULT 0 AFTER upload_album_id;";
|
|
}
|
|
|
|
/* And then convert images - not too difficult */
|
|
if ( \IPS\Db::i()->checkForIndex( 'gallery_images', 'album_id' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE gallery_images DROP INDEX album_id;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForIndex( 'gallery_images', 'approved' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE gallery_images DROP INDEX approved;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForIndex( 'gallery_images', 'album_id_2' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE gallery_images DROP INDEX album_id_2;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForIndex( 'gallery_images', 'gb_select' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE gallery_images DROP INDEX gb_select;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForIndex( 'gallery_images', 'image_feature_flag' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE gallery_images DROP INDEX image_feature_flag;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForIndex( 'gallery_images', 'lastcomment' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE gallery_images DROP INDEX lastcomment;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForIndex( 'gallery_images', 'rnd_lookup' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE gallery_images DROP INDEX rnd_lookup;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForColumn( 'gallery_images', 'id' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE gallery_images CHANGE id image_id BIGINT NOT NULL AUTO_INCREMENT,
|
|
CHANGE member_id image_member_id INT NOT NULL DEFAULT 0,
|
|
ADD image_category_id INT NOT NULL DEFAULT 0 AFTER image_member_id,
|
|
CHANGE img_album_id image_album_id BIGINT NOT NULL DEFAULT 0,
|
|
CHANGE caption image_caption VARCHAR(255) NOT NULL,
|
|
CHANGE description image_description TEXT NULL DEFAULT NULL,
|
|
CHANGE directory image_directory VARCHAR(255) NULL DEFAULT NULL,
|
|
CHANGE masked_file_name image_masked_file_name VARCHAR(255) NULL DEFAULT NULL,
|
|
CHANGE file_name image_file_name VARCHAR(255) NULL DEFAULT NULL,
|
|
CHANGE medium_file_name image_medium_file_name VARCHAR(255) NULL DEFAULT NULL,
|
|
CHANGE original_file_name image_original_file_name VARCHAR(255) NULL DEFAULT NULL,
|
|
CHANGE file_size image_file_size INT NOT NULL DEFAULT 0,
|
|
CHANGE file_type image_file_type VARCHAR(50) NULL DEFAULT NULL,
|
|
CHANGE approved image_approved TINYINT NOT NULL DEFAULT 0,
|
|
CHANGE thumbnail image_thumbnail TINYINT NOT NULL DEFAULT 0,
|
|
CHANGE views image_views INT NOT NULL DEFAULT 0,
|
|
CHANGE comments image_comments INT NOT NULL DEFAULT 0,
|
|
CHANGE comments_queued image_comments_queued INT NOT NULL DEFAULT 0,
|
|
CHANGE idate image_date INT NOT NULL DEFAULT 0,
|
|
CHANGE ratings_total image_ratings_total INT NOT NULL DEFAULT 0,
|
|
CHANGE ratings_count image_ratings_count INT NOT NULL DEFAULT 0,
|
|
CHANGE rating image_rating INT NOT NULL DEFAULT 0,
|
|
CHANGE lastcomment image_last_comment INT NOT NULL DEFAULT 0,
|
|
CHANGE pinned image_pinned TINYINT NOT NULL DEFAULT 0,
|
|
CHANGE media image_media TINYINT NOT NULL DEFAULT 0,
|
|
CHANGE credit_info image_credit_info TEXT NULL DEFAULT NULL,
|
|
CHANGE copyright image_copyright VARCHAR(255) NULL DEFAULT NULL,
|
|
CHANGE metadata image_metadata TEXT NULL DEFAULT NULL,
|
|
CHANGE media_thumb image_media_thumb VARCHAR(255) NULL DEFAULT NULL,
|
|
CHANGE caption_seo image_caption_seo VARCHAR(255) NOT NULL,
|
|
CHANGE image_feature_flag image_feature_flag TINYINT NOT NULL DEFAULT 0,
|
|
CHANGE image_gps_show image_gps_show TINYINT NOT NULL DEFAULT 0,
|
|
ADD INDEX album_id (image_album_id, image_approved, image_date),
|
|
ADD INDEX image_feature_flag (image_feature_flag, image_date),
|
|
ADD INDEX gb_select (image_approved, image_parent_permission, image_date),
|
|
ADD INDEX lastcomment (image_last_comment, image_date);";
|
|
}
|
|
|
|
/* Add our new tables */
|
|
$SQL[] = "CREATE TABLE gallery_categories (
|
|
category_id int(11) NOT NULL AUTO_INCREMENT,
|
|
category_parent_id int(11) NOT NULL DEFAULT '0',
|
|
category_name varchar(255) DEFAULT NULL,
|
|
category_name_seo varchar(255) DEFAULT NULL,
|
|
category_description text,
|
|
category_count_imgs int(11) NOT NULL DEFAULT '0',
|
|
category_count_comments int(11) NOT NULL DEFAULT '0',
|
|
category_count_imgs_hidden int(11) NOT NULL DEFAULT '0',
|
|
category_count_comments_hidden int(11) NOT NULL DEFAULT '0',
|
|
category_cover_img_id bigint(20) NOT NULL DEFAULT '0',
|
|
category_last_img_id bigint(20) NOT NULL DEFAULT '0',
|
|
category_last_img_date int(11) NOT NULL DEFAULT '0',
|
|
category_type int(11) NOT NULL DEFAULT '0',
|
|
category_sort_options text,
|
|
category_allow_comments tinyint(4) NOT NULL DEFAULT '0',
|
|
category_allow_rating tinyint(4) NOT NULL DEFAULT '0',
|
|
category_approve_img tinyint(4) NOT NULL DEFAULT '0',
|
|
category_approve_com tinyint(4) NOT NULL DEFAULT '0',
|
|
category_rules mediumtext,
|
|
category_rating_aggregate int(11) NOT NULL DEFAULT '0',
|
|
category_rating_count int(11) NOT NULL DEFAULT '0',
|
|
category_rating_total int(11) NOT NULL DEFAULT '0',
|
|
category_after_forum_id int(11) NOT NULL DEFAULT '0',
|
|
category_watermark tinyint(4) NOT NULL DEFAULT '0',
|
|
category_position int(11) NOT NULL DEFAULT '0',
|
|
category_can_tag tinyint(4) NOT NULL DEFAULT '0',
|
|
category_preset_tags text,
|
|
category_public_albums int(11) NOT NULL DEFAULT '0',
|
|
category_nonpublic_albums int(11) NOT NULL DEFAULT '0',
|
|
PRIMARY KEY (category_id),
|
|
KEY category_last_img_id (category_last_img_id)
|
|
);";
|
|
|
|
|
|
if( !\IPS\Db::i()->checkForTable( 'gallery_moderators' ) )
|
|
{
|
|
$SQL[] = "CREATE TABLE gallery_moderators (
|
|
mod_id int(11) NOT NULL AUTO_INCREMENT,
|
|
mod_type varchar(32) NOT NULL DEFAULT 'group',
|
|
mod_type_id int(11) NOT NULL DEFAULT '0',
|
|
mod_type_name varchar(255) DEFAULT NULL,
|
|
mod_categories text,
|
|
mod_can_approve tinyint(4) NOT NULL DEFAULT '0',
|
|
mod_can_edit tinyint(4) NOT NULL DEFAULT '0',
|
|
mod_can_hide tinyint(4) NOT NULL DEFAULT '0',
|
|
mod_can_delete tinyint(4) NOT NULL DEFAULT '0',
|
|
mod_can_approve_comments tinyint(4) NOT NULL DEFAULT '0',
|
|
mod_can_edit_comments tinyint(4) NOT NULL DEFAULT '0',
|
|
mod_can_delete_comments tinyint(4) NOT NULL DEFAULT '0',
|
|
mod_can_move tinyint(4) NOT NULL DEFAULT '0',
|
|
mod_set_cover_image tinyint(4) NOT NULL DEFAULT '0',
|
|
PRIMARY KEY (mod_id),
|
|
KEY mod_type (mod_type,mod_type_id)
|
|
);";
|
|
}
|
|
|
|
/* Groups table changes? */
|
|
if ( \IPS\Db::i()->checkForColumn( 'core_groups', 'g_ecard' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE core_groups DROP g_ecard;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForColumn( 'core_groups', 'g_rate' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE core_groups DROP g_rate;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForColumn( 'core_groups', 'g_slideshows' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE core_groups DROP g_slideshows;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForColumn( 'core_groups', 'g_favorites' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE core_groups DROP g_favorites;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForColumn( 'core_groups', 'g_comment' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE core_groups DROP g_comment;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForColumn( 'core_groups', 'g_move_own' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE core_groups DROP g_move_own;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForColumn( 'core_groups', 'g_mod_albums' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE core_groups DROP g_mod_albums;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForColumn( 'core_groups', 'g_album_private' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE core_groups DROP g_album_private;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForColumn( 'core_groups', 'g_gal_avatar' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE core_groups DROP g_gal_avatar;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForColumn( 'core_groups', 'g_max_notes' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE core_groups DROP g_max_notes;";
|
|
}
|
|
|
|
if ( \IPS\Db::i()->checkForColumn( 'core_groups', 'g_gallery_cat_cover' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE core_groups DROP g_gallery_cat_cover;";
|
|
}
|
|
|
|
if ( !\IPS\Db::i()->checkForColumn( 'core_groups', 'g_create_albums_private' ) )
|
|
{
|
|
$SQL[] = "ALTER TABLE core_groups ADD g_create_albums_private TINYINT( 1 ) UNSIGNED default '0' NOT NULL,
|
|
ADD g_create_albums_fo TINYINT( 1 ) UNSIGNED default '0' NOT NULL,
|
|
ADD g_delete_own_albums TINYINT( 1 ) NOT NULL DEFAULT '0';";
|
|
}
|
|
|
|
/* Albums handled by the upgrader script */ |