diff options
Diffstat (limited to 'admin/upgrade_inc.php')
| -rw-r--r-- | admin/upgrade_inc.php | 393 |
1 files changed, 0 insertions, 393 deletions
diff --git a/admin/upgrade_inc.php b/admin/upgrade_inc.php deleted file mode 100644 index 6434a77..0000000 --- a/admin/upgrade_inc.php +++ /dev/null @@ -1,393 +0,0 @@ -<?php - -global $gBitSystem, $gUpgradeFrom, $gUpgradeTo; -require_once( ARTICLES_PKG_CLASS_PATH.'BitArticle.php' ); - -if( !defined( 'BITARTICLE_CONTENT_TYPE_GUID' ) ) { - define( 'BITARTICLE_CONTENT_TYPE_GUID', 'bitarticle' ); -} - -$upgrades = array( - - 'BWR1' => array( - 'BWR2' => array( - -// de-tikify tables -array( 'DATADICT' => array( - array( 'RENAMETABLE' => array( - 'tiki_articles' => 'articles', - 'tiki_article_status' => 'article_status', - 'tiki_article_types' => 'article_types', - 'tiki_article_topics' => 'article_topics', - )), - array( 'RENAMESEQUENCE' => array( - "tiki_article_topics_topic_id_seq" => "articles_topics_id_seq", - "tiki_article_types_article_type_id_seq" => "article_types_a_t_id_seq", - "tiki_articles_article_id_seq" => "articles_article_id_seq", - )), - array( 'RENAMECOLUMN' => array( - 'article_topics' => array( - '`active`' => '`active_topic` C(1)' - ), - )), -)), - -// we will try to convert article images to attachments -array( 'PHP' => ' - global $gBitSystem, $gBitUser; - require_once( LIBERTY_PKG_CLASS_PATH.'LibertyAttachable.php' ); - - $query = " - SELECT - a.`article_id`, - a.`content_id`, - c.`user_id` - FROM `'.BIT_DB_PREFIX.'articles` a - INNER JOIN `'.BIT_DB_PREFIX.'liberty_content` c ON( a.`content_id` = c.`content_id` ) - "; - - if( $articles = $gBitSystem->mDb->getAll( $query ) ) { - foreach( $articles as $article ) { - // store article image - $image_name = "article_".$article["article_id"].".jpg"; - // debug: vd($image_name); vd($article); - if( is_file( STORAGE_PKG_PATH.ARTICLES_PKG_NAME."/".$image_name )) { - $storeRow["plugin_guid"] = "bitfile"; - $storeRow["user_id"] = $article["user_id"]; - $storeRow["content_id"] = $article["content_id"]; - $storeRow["attachment_id"] = $gBitSystem->mDb->GenID( "liberty_attachments_id_seq" ); - $storeRow["foreign_id"] = $gBitSystem->mDb->GenID( "liberty_files_id_seq" ); - $storeRow["user_id"] = !empty( $article["user_id"] ) ? $article["user_id"] : $gBitUser->mUserId; - $storeRow["upload"]["source_file"] = STORAGE_PKG_PATH.ARTICLES_PKG_NAME."/".$image_name; - $storeRow["upload"]["attachment_id"] = $storeRow["attachment_id"]; - $storeRow["upload"]["name"] = $image_name; - $storeRow["upload"]["type"] = "image/jpeg"; - $storeRow["upload"]["size"] = filesize( $storeRow["upload"]["source_file"] ); - $storeRow["upload"]["dest_path"] = LibertyAttachable::getStorageBranch( $storeRow["attachment_id"], $storeRow["user_id"], LibertyAttachable::getStorageSubDirName() ); - - $sql = "INSERT INTO `'.BIT_DB_PREFIX.'liberty_files` ( `storage_path`, `file_id`, `mime_type`, `file_size`, `user_id` ) VALUES ( ?, ?, ?, ?, ? )"; - $gBitSystem->mDb->query( $sql, array( - $storeRow["upload"]["dest_path"].$storeRow["upload"]["name"], - $storeRow["foreign_id"], - $storeRow["upload"]["type"], - $storeRow["upload"]["size"], - $storeRow["user_id"], - )); - - $storeRow["upload"]["dest_file_path"] = liberty_process_upload( $storeRow[\'upload\'] ); - - $sql = "INSERT INTO `'.BIT_DB_PREFIX.'liberty_attachments` ( `content_id`, `attachment_id`, `attachment_plugin_guid`, `foreign_id`, `user_id` ) VALUES ( ?, ?, ?, ?, ? )"; - $rs = $gBitSystem->mDb->query( $sql, array( $storeRow["content_id"], $storeRow["attachment_id"], $storeRow["plugin_guid"], (int)$storeRow["foreign_id"], $storeRow["user_id"] ) ); - - @unlink( $tmpImagePath ); - unset( $storeHash ); - } - } - } -'), - - ) - ), // end BWR1 --> BWR2 - - 'TIKIWIKI19' => array ( - 'TIKIWIKI18' => array ( - -array( 'DATADICT' => array( - array( 'DROPCOLUMN' => array( - 'tiki_submissions' => array( '`bibliographical_references`' ), - )), -)), - -/* Sliced and diced TW 1.9 upgrade scripts that did actual schema alterations - -ALTER TABLE `tiki_articles` ADD `topline` VARCHAR( 255 ) AFTER `articleId` ; -ALTER TABLE `tiki_articles` ADD `subtitle` VARCHAR( 255 ) AFTER `title` ; -ALTER TABLE `tiki_articles` ADD `linkto` VARCHAR( 255 ) AFTER `subtitle` ; -ALTER TABLE `tiki_articles` ADD `image_caption` TEXT AFTER `image_name` ; -ALTER TABLE `tiki_submissions` ADD `topline` VARCHAR( 255 ) AFTER `subId` ; -ALTER TABLE `tiki_submissions` ADD `subtitle` VARCHAR( 255 ) AFTER `title` ; -ALTER TABLE `tiki_submissions` ADD `linkto` VARCHAR( 255 ) AFTER `subtitle` ; -ALTER TABLE `tiki_submissions` ADD `image_caption` TEXT AFTER `image_name` ; -ALTER TABLE `tiki_articles` ADD `lang` VARCHAR( 16 ) AFTER `linkto` ; -ALTER TABLE `tiki_submissions` ADD `lang` VARCHAR( 16 ) AFTER `linkto` ; -ALTER TABLE `tiki_article_types` ADD `show_topline` CHAR( 1 ) AFTER `show_size` ; -ALTER TABLE `tiki_article_types` ADD `show_subtitle` CHAR( 1 ) AFTER `show_topline` ; -ALTER TABLE `tiki_article_types` ADD `show_linkto` CHAR( 1 ) AFTER `show_subtitle` ; -ALTER TABLE `tiki_article_types` ADD `show_image_caption` CHAR( 1 ) AFTER `show_linkto` ; -ALTER TABLE `tiki_article_types` ADD `show_lang` CHAR( 1 ) AFTER `show_image_caption` ; - -*/ - ) - ), - - - 'BONNIE' => array( - 'BWR1' => array( - -// STEP 0 -array( 'QUERY' => - array( 'MYSQL' => array( - "ALTER TABLE `".BIT_DB_PREFIX."tiki_articles` DROP PRIMARY KEY", - "ALTER TABLE `".BIT_DB_PREFIX."tiki_article_types` DROP PRIMARY KEY", - "ALTER TABLE `".BIT_DB_PREFIX."tiki_topics` DROP PRIMARY KEY", - )), -), - -// STEP 1 -array( 'DATADICT' => array( - // RENAME - array( 'RENAMETABLE' => array( - 'tiki_topics' => 'tiki_article_topics', - )), - array( 'RENAMECOLUMN' => array( - 'tiki_articles' => array( - '`articleId`' => '`article_id` I4', - '`authorName`' => '`author_name` C(250)', - '`publishDate`' => '`publish_date` I4', - '`expireDate`' => '`expire_date` I4', - '`topicId`' => '`topic_id` I4', - '`rating`' => '`rating` F', - ), - 'tiki_article_types' => array( - '`type`' => '`type_name` C(50)', - ), - 'tiki_article_topics' => array( - '`topicId`' => '`topic_id` I4', - '`name`' => '`topic_name` C(40)', - ), - )), - // ALTER - array( 'ALTER' => array( - 'tiki_articles' => array( - 'content_id' => array( '`content_id`', 'I4' ), - 'description' => array( '`description`', 'X' ), - 'status_id' => array( '`status_id`', 'I4' ), - 'article_type_id' => array( '`article_type_id`', 'I4' ), - ), - 'tiki_article_types' => array( - 'article_type_id' => array( '`article_type_id`', 'I4' ), - ), - 'tiki_article_topics' => array( - 'has_topic_image' => array( '`has_topic_image`', 'VARCHAR(1)' ), - ), - )), - // CREATE - array( 'CREATE' => array ( - 'tiki_article_status' => " - status_id I4 PRIMARY, - status_name C(64) - ", - )), -)), - -// STEP 3 -array( 'PHP' => ' - global $gBitSystem; - // this define is needed for backwards compatability. - define( "ARTICLE_TOPIC_THUMBNAIL_SIZE", 160 ); - require_once( ARTICLES_PKG_CLASS_PATH.'BitArticle.php' ); - - // BitArticle has 3 sequences, each needs creating prior to execution - $max_articles = $gBitSystem->mDb->getOne( "SELECT MAX(`article_id`) FROM `'.BIT_DB_PREFIX.'tiki_articles`" ); - $gBitSystem->mDb->CreateSequence( "tiki_articles_article_id_seq", $max_articles + 1 ); - $max_topics = $gBitSystem->mDb->getOne( "SELECT MAX(`topic_id`) FROM `'.BIT_DB_PREFIX.'tiki_article_topics`" ); - $gBitSystem->mDb->CreateSequence( "tiki_article_topics_topic_id_seq", $max_topics + 1 ); - $max_types = $gBitSystem->mDb->getOne( "SELECT MAX(`article_type_id`) FROM `'.BIT_DB_PREFIX.'tiki_article_types`" ); - $gBitSystem->mDb->CreateSequence( "tiki_article_types_article_type_id_seq", $max_types + 1 ); - - // tiki_articles - $query = " - SELECT - ta.`article_id`, - ta.`created` AS `created`, - ta.`created` AS `last_modified`, - ta.`heading`, - ta.`body`, - ta.`title`, - ta.`reads` AS `hits` - FROM `'.BIT_DB_PREFIX.'tiki_articles` ta"; - - if( $rs = $gBitSystem->mDb->query( $query ) ) { - while( !$rs->EOF ) { - $artId = $rs->fields["article_id"]; - unset( $rs->fields["article_id"] ); - $conId = $gBitSystem->mDb->GenID( "tiki_content_id_seq" ); - if( !empty( $rs->fields["heading"] ) && !empty( $rs->fields["heading"] ) ) { - $rs->fields["data"] = $rs->fields["heading"]."...split...\n".$rs->fields["body"]; - } else { - $rs->fields["data"] = $rs->fields["heading"]; - } - unset( $rs->fields["body"] ); - unset( $rs->fields["heading"] ); - $rs->fields["content_id"] = $conId; - $rs->fields["content_type_guid"] = BITARTICLE_CONTENT_TYPE_GUID; - $rs->fields["format_guid"] = PLUGIN_GUID_TIKIWIKI; - $gBitSystem->mDb->associateInsert( "tiki_content", $rs->fields ); - $gBitSystem->mDb->query( "UPDATE `'.BIT_DB_PREFIX.'tiki_articles` SET `content_id`=? WHERE `article_id`=?", array( $conId, $artId ) ); - $rs->MoveNext(); - } - } - - // article images and state - // work out what resizer to use - $resizeFunc = ( $gBitSystem->getConfig( "image_processor" ) == "imagick" ) ? "liberty_imagick_resize_image" : "liberty_gd_resize_image"; - // make sure we have a place to store the images - $tempDir = TEMP_PKG_PATH.ARTICLES_PKG_NAME; - $storageDir = STORAGE_PKG_PATH.ARTICLES_PKG_NAME; - if( !is_dir( $tempDir ) || !is_dir( $storageDir ) ) { - mkdir_p( $tempDir ); - mkdir_p( $storageDir ); - } - - $query = " - SELECT - ta.`state`, - ta.`article_id`, - ta.`image_name`, - ta.`image_type`, - ta.`image_data` - FROM `'.BIT_DB_PREFIX.'tiki_articles` ta"; - - if( $rs = $gBitSystem->mDb->query( $query ) ) { - while( !$rs->EOF ) { - // store article image - if( !empty( $rs->fields["image_name"] ) ) { - $tmpImagePath = $tempDir.$rs->fields["image_name"]; - if( $handle = fopen( $tmpImagePath, "a" ) ) { - fwrite( $handle, $rs->fields["image_data"] ); - fclose( $handle ); - } else { - $gBitInstaller->mErrors["upgrade"][ARTICLES_PKG_NAME]["article_image_create"][] = "Error while creating article image: ".$rs->fields["image_name"]; - } - $storeHash["source_file"] = $tmpImagePath; - $storeHash["dest_path"] = STORAGE_PKG_URL.ARTICLES_PKG_NAME."/"; - $storeHash["dest_base_name"] = "article_".$rs->fields["article_id"]; - $storeHash["max_width"] = ARTICLE_TOPIC_THUMBNAIL_SIZE; - $storeHash["max_height"] = ARTICLE_TOPIC_THUMBNAIL_SIZE; - $storeHash["type"] = $rs->fields["image_type"]; - - if( $resizeFunc( $storeHash ) ) { - $gBitInstaller->mErrors["upgrade"][ARTICLES_PKG_NAME]["article_image_resize"][] = "Error while resizing article image: ".$rs->fields["image_name"]; - } - - @unlink( $tmpImagePath ); - unset( $storeHash ); - } - - if( $rs->fields["state"] == "p" ) { - $gBitSystem->mDb->query( "UPDATE `'.BIT_DB_PREFIX.'tiki_articles` SET `status_id`=? WHERE `article_id`=?", array( 400, $rs->fields["article_id"] ) ); - } elseif( $rs->fields["state"] == "s" ) { - $gBitSystem->mDb->query( "UPDATE `'.BIT_DB_PREFIX.'tiki_articles` SET `status_id`=? WHERE `article_id`=?", array( 300, $rs->fields["article_id"] ) ); - } - - $rs->MoveNext(); - } - } - - // tiki_article_topics - $query = " - SELECT - ta.`topic_id`, - ta.`image_name`, - ta.`image_type`, - ta.`image_data` - FROM `'.BIT_DB_PREFIX.'tiki_article_topics` ta"; - - if( $rs = $gBitSystem->mDb->query( $query ) ) { - while( !$rs->EOF ) { - // store topic image - if( !empty( $rs->fields["image_name"] ) ) { - $tmpImagePath = $tempDir.$rs->fields["image_name"]; - if( $handle = fopen( $tmpImagePath, "a" ) ) { - fwrite( $handle, $rs->fields["image_data"] ); - fclose( $handle ); - } else { - $gBitInstaller->mErrors["upgrade"][ARTICLES_PKG_NAME]["topic_image_create"][] = "Error while creating topic image: ".$rs->fields["image_name"]; - } - - $storeHash["source_file"] = $tmpImagePath; - $storeHash["dest_path"] = STORAGE_PKG_URL.ARTICLES_PKG_NAME."/"; - $storeHash["dest_base_name"] = "topic_".$rs->fields["topic_id"]; - $storeHash["max_width"] = ARTICLE_TOPIC_THUMBNAIL_SIZE; - $storeHash["max_height"] = ARTICLE_TOPIC_THUMBNAIL_SIZE; - $storeHash["type"] = $rs->fields["image_type"]; - - if( $resizeFunc( $storeHash ) ) { - $gBitInstaller->mErrors["upgrade"][ARTICLES_PKG_NAME]["topic_image_resize"][] = "Error while resizing topic image: ".$rs->fields["image_name"]; - } - - $gBitSystem->mDb->query( "UPDATE `'.BIT_DB_PREFIX.'tiki_article_topics` SET `has_topic_image`=? WHERE `topic_id`=?", array( "y", $rs->fields["topic_id"] ) ); - @unlink( $tmpImagePath ); - unset( $storeHash ); - } else { - $gBitSystem->mDb->query( "UPDATE `'.BIT_DB_PREFIX.'tiki_article_topics` SET `has_topic_image`=? WHERE `topic_id`=?", array( "n", $rs->fields["topic_id"] ) ); - } - $rs->MoveNext(); - } - } - - // tiki_article_types - // might be cumbersome, but i dont kow how else to do this - $query = "SELECT * FROM `'.BIT_DB_PREFIX.'tiki_article_types`"; - - if( $rs = $gBitSystem->mDb->query( $query ) ) { - $typeId = 1; - while( !$rs->EOF ) { - $gBitSystem->mDb->query( "UPDATE `'.BIT_DB_PREFIX.'tiki_article_types` SET `article_type_id`=? WHERE `type_name`=?", array( $typeId, $rs->fields["type_name"] ) ); - $typeId++; - $rs->MoveNext(); - } - } -'), - -// STEP 4 -array( 'QUERY' => - array( 'SQL92' => array( - "UPDATE `".BIT_DB_PREFIX."tiki_articles` SET `article_type_id`=( SELECT types.`article_type_id` FROM `".BIT_DB_PREFIX."tiki_article_types` types WHERE types.`type_name`=`".BIT_DB_PREFIX."tiki_articles`.`type` )", - - // update comments for articles - "UPDATE `".BIT_DB_PREFIX."tiki_comments` SET `objectType`='".BITARTICLE_CONTENT_TYPE_GUID."' WHERE `objectType`='articles'", - - // insert default values for status table - "INSERT INTO `".BIT_DB_PREFIX."tiki_article_status`( `status_id`, `status_name` ) VALUES( 0, 'Denied' )", - "INSERT INTO `".BIT_DB_PREFIX."tiki_article_status`( `status_id`, `status_name` ) VALUES( 100, 'Draft' )", - "INSERT INTO `".BIT_DB_PREFIX."tiki_article_status`( `status_id`, `status_name` ) VALUES( 200, 'Pending Approval' )", - "INSERT INTO `".BIT_DB_PREFIX."tiki_article_status`( `status_id`, `status_name` ) VALUES( 300, 'Approved' )", - "INSERT INTO `".BIT_DB_PREFIX."tiki_article_status`( `status_id`, `status_name` ) VALUES( 400, 'Retired' )", - - // some default preferences - "INSERT INTO `".BIT_DB_PREFIX."tiki_preferences`( `name`, `value`, `package` ) VALUES( 'article_description_length', '500', '".ARTICLES_PKG_NAME."' )", - "INSERT INTO `".BIT_DB_PREFIX."tiki_preferences`( `name`, `value`, `package` ) VALUES( 'max_articles', '10', '".ARTICLES_PKG_NAME."' )", - - // add in permissions not in TW 1.8 - may get failures on some duplicates - "INSERT INTO `".BIT_DB_PREFIX."users_permissions`( `perm_name`,`perm_desc`, `level`, `package` ) VALUES( 'bit_p_admin_articles', 'Can admin the articles package', 'editors', 'articles' )", - )), -), - -// STEP 5 -array( 'PHP' => '' ), - -// STEP 6 -array( 'DATADICT' => array( - array( 'DROPCOLUMN' => array( - 'tiki_articles' => array( '`title`', '`state`', '`topicName`', '`size`', '`useImage`', '`image_name`', '`image_size`', '`image_type`', '`image_x`', '`image_y`', '`image_data`', '`created`', '`heading`', '`body`', '`hash`', '`author`', '`reads`', '`votes`', '`points`', '`type`', '`isfloat`' ), - 'tiki_article_topics' => array( '`image_name`', '`image_type`', '`image_size`', '`image_data`' ), - )), -)), - -/* -// STEP 7 -array( 'DATADICT' => array( - array( 'CREATEINDEX' => array( - 'tiki_articles_articles_idx' => array( 'tiki_articles', '`article_id`', array() ), - )), -)), -*/ - - ), - ), -); - -if ( isset( $upgrades[$gUpgradeFrom][$gUpgradeTo] ) ) { - $gBitSystem->registerUpgrade( ARTICLES_PKG_NAME, $upgrades[$gUpgradeFrom][$gUpgradeTo] ); -} |
