summaryrefslogtreecommitdiff
path: root/admin/upgrade_inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'admin/upgrade_inc.php')
-rw-r--r--admin/upgrade_inc.php393
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] );
-}