Version 5.0.0 beta 1

This commit is contained in:
Neo committed 2025-12-19 16:27:35 -08:00
1 parent 25ddeb65d6
commit 15c7beabc5
6736 files changed
+627902 -497943

No files matched your search

Whitespace-only changes.
@@ -1,48 +0,0 @@
<?php
/**
* @brief 4.0.0 Upgrade Code
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Downloads
* @since 30 Oct 2014
*/
namespace IPS\downloads\setup\upg_100002;
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* 4.0.0 Upgrade Code
*/
class _Upgrade
{
/**
* Fix SEO titles
*
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function step1()
{
\IPS\Db::i()->update( 'downloads_categories', array( 'cname_furl' => null ) );
\IPS\Db::i()->update( 'downloads_files', array( 'file_name_furl' => null ) );
return true;
}
/**
* Custom title for this step
*
* @return string
*/
public function step1CustomTitle()
{
return "Resetting downloads friendly URL titles";
}
}
Whitespace-only changes.
@@ -1,170 +0,0 @@
{
"1": {
"method": "dropIndex",
"params": [
"downloads_files",
"file_downloads"
]
},
"2": {
"method": "changeColumn",
"params": [
"downloads_cfields",
"cf_format",
{
"name": "cf_format",
"type": "TEXT",
"length": 0,
"decimals": null,
"values": [],
"allow_null": true,
"default": null,
"comment": "",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
}
]
},
"3": {
"method": "dropIndex",
"params": [
"downloads_comments",
"comment_text"
]
},
"4": {
"method": "dropIndex",
"params": [
"downloads_files",
"file_name"
]
},
"5": {
"method": "dropIndex",
"params": [
"downloads_files",
"file_desc"
]
},
"6": {
"method": "dropIndex",
"params": [
"downloads_reviews",
"review_text"
]
},
"7": {
"method": "changeColumn",
"params": [
"downloads_files",
"file_cost",
{
"name": "file_cost",
"type": "TEXT",
"length": 0,
"decimals": null,
"values": [],
"allow_null": true,
"default": "",
"comment": "",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
}
]
},
"8": {
"method": "changeColumn",
"params": [
"downloads_files",
"file_renewal_price",
{
"name": "file_renewal_price",
"type": "TEXT",
"length": 0,
"decimals": null,
"values": [],
"allow_null": true,
"default": "",
"comment": "",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
}
]
},
"9": {
"method": "dropTable",
"params": [
"downloads_favorites",
true
]
},
"10": {
"method": "dropTable",
"params": [
"downloads_filestorage",
true
]
},
"11": {
"method": "dropTable",
"params": [
"downloads_fileviews",
true
]
},
"12": {
"method": "dropTable",
"params": [
"downloads_mime",
true
]
},
"13": {
"method": "dropTable",
"params": [
"downloads_mimemask",
true
]
},
"14": {
"method": "dropTable",
"params": [
"downloads_mods",
true
]
},
"15": {
"method": "dropTable",
"params": [
"downloads_temp_records",
true
]
},
"16": {
"method": "dropTable",
"params": [
"downloads_upgrade_history",
true
]
},
"17": {
"method": "dropTable",
"params": [
"downloads_urls",
true
]
},
"18": {
"method": "dropColumn",
"params": [
"downloads_cfields",
"cf_file_format"
]
}
}
Whitespace-only changes.
@@ -1,262 +0,0 @@
<?php
/**
* @brief 4.0.0 Alpha 1 Upgrade Code
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Downloads
* @since 25 Mar 2013
*/
namespace IPS\downloads\setup\upg_100005;
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* 4.0.0 Alpha 1 Upgrade Code
*/
class _Upgrade
{
/**
* Step 1
* Fix downloads changelog
*
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function step1()
{
$limit = 0;
$did = 0;
$perCycle = 500;
if( isset( \IPS\Request::i()->extra ) )
{
$limit = (int) \IPS\Request::i()->extra;
}
/* Try to prevent timeouts to the extent possible */
$cutOff = \IPS\core\Setup\Upgrade::determineCutoff();
foreach( \IPS\Db::i()->select( 'b_id, b_changelog', 'downloads_filebackup', array( "b_changelog is not null and b_changelog != ''" ), 'b_id ASC', array( $limit, $perCycle ) ) as $backup )
{
if( $cutOff !== null AND time() >= $cutOff )
{
return ( $limit + $did );
}
$did++;
if( mb_strpos( $backup['b_changelog'], '<p' ) === FALSE AND mb_strpos( $backup['b_changelog'], '<ul' ) === FALSE )
{
$contents = explode( "\n", str_replace( "\r", '', $backup['b_changelog'] ) );
$newContents = "<ul><li>" . implode( "</li><li>", $contents ) . "</li></ul>";
\IPS\Db::i()->update( 'downloads_filebackup', array( 'b_changelog' => $newContents ), array( 'b_id=?', $backup['b_id'] ) );
}
}
if( $did )
{
return ( $limit + $did );
}
else
{
unset( $_SESSION['_step1Count'] );
return TRUE;
}
}
/**
* Custom title for this step
*
* @return string
*/
public function step1CustomTitle()
{
$limit = isset( \IPS\Request::i()->extra ) ? \IPS\Request::i()->extra : 0;
if( !isset( $_SESSION['_step1Count'] ) )
{
$_SESSION['_step1Count'] = \IPS\Db::i()->select( 'COUNT(*)', 'downloads_filebackup', array( "b_changelog is not null and b_changelog != ''" ) )->first();
}
return "Upgrading backup changelogs (Upgraded so far: " . ( ( $limit > $_SESSION['_step1Count'] ) ? $_SESSION['_step1Count'] : $limit ) . ' out of ' . $_SESSION['_step1Count'] . ')';
}
/**
* Step 2
* Fix downloads changelog
*
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function step2()
{
$limit = 0;
$did = 0;
$perCycle = 500;
if( isset( \IPS\Request::i()->extra ) )
{
$limit = (int) \IPS\Request::i()->extra;
}
/* Try to prevent timeouts to the extent possible */
$cutOff = \IPS\core\Setup\Upgrade::determineCutoff();
foreach( \IPS\Db::i()->select( 'file_id, file_changelog', 'downloads_files', array( "file_changelog is not null and file_changelog != ''" ), 'file_id ASC', array( $limit, $perCycle ) ) as $file )
{
if( $cutOff !== null AND time() >= $cutOff )
{
return ( $limit + $did );
}
$did++;
if( mb_strpos( $file['file_changelog'], '<p' ) === FALSE AND mb_strpos( $file['file_changelog'], '<ul' ) === FALSE )
{
$contents = explode( "\n", str_replace( "\r", '', $file['file_changelog'] ) );
$newContents = "<ul><li>" . implode( "</li><li>", $contents ) . "</li></ul>";
\IPS\Db::i()->update( 'downloads_files', array( 'file_changelog' => $newContents ), array( 'file_id=?', $file['file_id'] ) );
}
}
if( $did )
{
return ( $limit + $did );
}
else
{
unset( $_SESSION['_step2Count'] );
return TRUE;
}
}
/**
* Custom title for this step
*
* @return string
*/
public function step2CustomTitle()
{
$limit = isset( \IPS\Request::i()->extra ) ? \IPS\Request::i()->extra : 0;
if( !isset( $_SESSION['_step2Count'] ) )
{
$_SESSION['_step2Count'] = \IPS\Db::i()->select( 'COUNT(*)', 'downloads_files', array( "file_changelog is not null and file_changelog != ''" ) )->first();
}
return "Upgrading file changelogs (Upgraded so far: " . ( ( $limit > $_SESSION['_step2Count'] ) ? $_SESSION['_step2Count'] : $limit ) . ' out of ' . $_SESSION['_step2Count'] . ')';
}
/**
* Step 3
* Fix currency
*
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function step3()
{
if( !isset( \IPS\Settings::i()->nexus_currency ) or !\IPS\Application::appIsEnabled( 'nexus', TRUE ) )
{
return TRUE;
}
$limit = 0;
$did = 0;
$perCycle = 500;
if( isset( \IPS\Request::i()->extra ) )
{
$limit = (int) \IPS\Request::i()->extra;
}
/* Try to prevent timeouts to the extent possible */
$cutOff = \IPS\core\Setup\Upgrade::determineCutoff();
foreach( \IPS\Db::i()->select( 'file_id, file_cost, file_renewal_price', 'downloads_files', array( "file_cost is not null and file_cost != ''" ), 'file_id ASC', array( $limit, $perCycle ) ) as $file )
{
if( $cutOff !== null AND time() >= $cutOff )
{
return ( $limit + $did );
}
$did++;
$update = array();
/* Base price */
$costs = @json_decode( $file['file_cost'], TRUE );
if( !\is_array( $costs ) and $file['file_cost'] )
{
$costs = array();
foreach( \IPS\nexus\Money::currencies() as $currency )
{
$costs[ $currency ] = array( 'amount' => $file['file_cost'], 'currency' => $currency );
}
$update['file_cost'] = json_encode( $costs );
}
/* Renewal price */
$costs = @json_decode( $file['file_renewal_price'], TRUE );
if( !\is_array( $costs ) )
{
$costs = array();
foreach( \IPS\nexus\Money::currencies() as $currency )
{
$costs[ $currency ] = array( 'amount' => $file['file_renewal_price'], 'currency' => $currency );
}
$update['file_renewal_price'] = json_encode( $costs );
}
if( \count( $update ) )
{
\IPS\Db::i()->update( 'downloads_files', $update, array( 'file_id=?', $file['file_id'] ) );
}
}
if( $did )
{
return ( $limit + $did );
}
else
{
unset( $_SESSION['_step3Count'] );
return TRUE;
}
}
/**
* Custom title for this step
*
* @return string
*/
public function step3CustomTitle()
{
if( !isset( \IPS\Settings::i()->nexus_currency ) )
{
return "No file costs to update";
}
$limit = isset( \IPS\Request::i()->extra ) ? \IPS\Request::i()->extra : 0;
if( !isset( $_SESSION['_step3Count'] ) )
{
$_SESSION['_step3Count'] = \IPS\Db::i()->select( 'COUNT(*)', 'downloads_files', array( "file_cost is not null and file_cost != ''" ) )->first();
}
return "Upgrading file costs (Upgraded so far: " . ( ( $limit > $_SESSION['_step3Count'] ) ? $_SESSION['_step3Count'] : $limit ) . ' out of ' . $_SESSION['_step3Count'] . ')';
}
}
Whitespace-only changes.
@@ -1,23 +0,0 @@
{
"1": {
"method": "changeColumn",
"params": [
"downloads_reviews",
"review_votes_data",
{
"name": "review_votes_data",
"type": "TEXT",
"length": 0,
"decimals": null,
"values": [],
"allow_null": true,
"default": "",
"comment": "JSON object containing data about who has voted helpful\/unhelpful ",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
}
]
}
}
Whitespace-only changes.
@@ -1,82 +0,0 @@
<?php
/**
* @brief 4.0.0 RC 1 Upgrade Code
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Downloads
* @since 3 Feb 2015
*/
namespace IPS\downloads\setup\upg_100011;
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* 4.0.0 RC 1 Upgrade Code
*/
class _Upgrade
{
/**
* Step 1
* Rebuild last poster data
*
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function step1()
{
$perCycle = 50;
$did = 0;
$limit = \intval( \IPS\Request::i()->extra );
/* Try to prevent timeouts to the extent possible */
$cutOff = \IPS\core\Setup\Upgrade::determineCutoff();
foreach( \IPS\Db::i()->select( '*', 'downloads_categories', NULL, 'cid ASC', array( $limit, $perCycle ) ) as $category )
{
if( $cutOff !== null AND time() >= $cutOff )
{
return ( $limit + $did );
}
$did++;
$category = \IPS\downloads\Category::constructFromData( $category );
$category->setLastComment();
$category->save();
}
if( $did )
{
return ( $limit + $did );
}
else
{
unset( $_SESSION['_step1Count'] );
return TRUE;
}
}
/**
* Custom title for this step
*
* @return string
*/
public function step1CustomTitle()
{
$limit = isset( \IPS\Request::i()->extra ) ? \IPS\Request::i()->extra : 0;
if( !isset( $_SESSION['_step1Count'] ) )
{
$_SESSION['_step1Count'] = \IPS\Db::i()->select( 'COUNT(*)', 'downloads_categories' )->first();
}
return "Rebuilding last poster data for download categories (Upgraded so far: " . ( ( $limit > $_SESSION['_step1Count'] ) ? $_SESSION['_step1Count'] : $limit ) . ' out of ' . $_SESSION['_step1Count'] . ')';
}
}
Whitespace-only changes.
@@ -1,80 +0,0 @@
<?php
/**
* @brief 4.0.0 RC 1 Upgrade Code
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Downloads
* @since 5 Feb 2015
*/
namespace IPS\downloads\setup\upg_100012;
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* 4.0.0 RC 1 Upgrade Code
*/
class _Upgrade
{
/**
* Step 1
* Fixing custom fields
*
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function step1()
{
foreach( \IPS\Db::i()->select( '*', 'downloads_cfields' ) as $field )
{
$update = array();
switch( $field['cf_type'] )
{
case 'input':
$update['cf_type'] = 'Text';
break;
case 'textarea':
$update['cf_type'] = 'TextArea';
break;
case 'drop':
$update['cf_type'] = 'Select';
break;
case 'radio':
$update['cf_type'] = 'Radio';
break;
case 'cbox':
$update['cf_type'] = 'Select';
$update['cf_multiple'] = TRUE;
break;
}
if( \count( $update ) )
{
\IPS\Db::i()->update( 'downloads_cfields', $update, 'cf_id=' . $field['cf_id'] );
}
}
return TRUE;
}
/**
* Custom title for this step
*
* @return string
*/
public function step1CustomTitle()
{
return "Fixing downloads custom fields";
}
}
Whitespace-only changes.
@@ -1,65 +0,0 @@
<?php
/**
* @brief 4.0.0 RC 1 Upgrade Code
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Downloads
* @since 9 Feb 2015
*/
namespace IPS\downloads\setup\upg_100013;
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* 4.0.0 RC 1 Upgrade Code
*/
class _Upgrade
{
/**
* Step 1
* Fixing custom fields
*
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function step1()
{
foreach( \IPS\Db::i()->select( '*', 'downloads_cfields' ) as $field )
{
if( $field['cf_type'] == 'Select' )
{
try
{
\IPS\Db::i()->dropIndex( 'downloads_ccontent', "field_" . $field['cf_id'] );
\IPS\Db::i()->dropColumn( 'downloads_ccontent', "field_" . $field['cf_id'] );
}
catch ( \IPS\Db\Exception $e )
{
}
\IPS\Db::i()->addColumn( 'downloads_ccontent', array( 'name' => "field_" . $field['cf_id'], 'type' => 'TEXT' ) );
\IPS\Db::i()->addIndex( 'downloads_ccontent', array( 'type' => 'key', 'name' => "field_" . $field['cf_id'], 'columns' => array( "field_" . $field['cf_id'] ) ) );
}
}
return TRUE;
}
/**
* Custom title for this step
*
* @return string
*/
public function step1CustomTitle()
{
return "Fixing downloads custom fields";
}
}
Whitespace-only changes.
@@ -1,38 +0,0 @@
<?php
/**
* @brief 4.0.0 Upgrade Code
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Downloads
* @since 15 Jan 2015
*/
namespace IPS\downloads\setup\upg_100015;
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* 4.0.0 RC 2 Upgrade Code
*/
class _Upgrade
{
/**
* Finish - This is run after all apps have been upgraded
*
* @return mixed If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
* @note We opted not to let users run this immediately during the upgrade because of potential issues (it taking a long time and users stopping it or getting frustrated) but we can revisit later
*/
public function finish()
{
\IPS\Task::queue( 'core', 'RebuildItems', array( 'class' => 'IPS\downloads\File' ), 3, array( 'class' ) );
\IPS\Task::queue( 'core', 'RebuildItemCounts', array( 'class' => 'IPS\downloads\File', 'count' => 0 ), 4, array( 'class' ) );
\IPS\Task::queue( 'core', 'RebuildContainerCounts', array( 'class' => 'IPS\downloads\Category', 'count' => 0 ), 5, array( 'class' ) );
}
}
Whitespace-only changes.
@@ -1,42 +0,0 @@
<?php
/**
* @brief 4.0.0 RC 5 Upgrade Code
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Downloads
* @since 5 May 2015
*/
namespace IPS\downloads\setup\upg_100018;
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* 4.0.0 RC 5 Upgrade Code
*/
class _Upgrade
{
/**
* Make sure all theme settings are applied to every theme.
*
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function finish()
{
\IPS\Task::queue( 'core', 'RebuildReputationIndex', array( 'class' => 'IPS\downloads\File' ), 4 );
\IPS\Task::queue( 'core', 'RebuildReputationIndex', array( 'class' => 'IPS\downloads\File\Comment' ), 4 );
\IPS\Task::queue( 'core', 'RebuildReputationIndex', array( 'class' => 'IPS\downloads\File\Review' ), 4 );
\IPS\Task::queue( 'core', 'RebuildContainerCounts', array( 'class' => 'IPS\downloads\Category', 'count' => 0 ), 5, array( 'class' ) );
return TRUE;
}
}
Whitespace-only changes.
@@ -1,50 +0,0 @@
{
"1": {
"method": "addIndex",
"params": [
"downloads_files",
{
"type": "key",
"name": "ip_lookup",
"columns": [
"file_ipaddress"
],
"length": [
null
]
}
]
},
"2": {
"method": "addIndex",
"params": [
"downloads_comments",
{
"type": "key",
"name": "comment_approved",
"columns": [
"comment_open"
],
"length": [
null
]
}
]
},
"3": {
"method": "addIndex",
"params": [
"downloads_reviews",
{
"type": "key",
"name": "review_approved",
"columns": [
"review_approved"
],
"length": [
null
]
}
]
}
}
Whitespace-only changes.
@@ -1,82 +0,0 @@
{
"1": {
"method": "addColumn",
"params": [
"downloads_files",
{
"name": "file_unapproved_comments",
"type": "INT",
"length": 10,
"decimals": null,
"values": [],
"allow_null": true,
"default": null,
"comment": "",
"unsigned": true,
"zerofill": false,
"auto_increment": false,
"binary": false
}
]
},
"2": {
"method": "addColumn",
"params": [
"downloads_files",
{
"name": "file_hidden_comments",
"type": "INT",
"length": 10,
"decimals": null,
"values": [],
"allow_null": true,
"default": null,
"comment": "",
"unsigned": true,
"zerofill": false,
"auto_increment": false,
"binary": false
}
]
},
"3": {
"method": "addColumn",
"params": [
"downloads_files",
{
"name": "file_unapproved_reviews",
"type": "INT",
"length": 10,
"decimals": null,
"values": [],
"allow_null": true,
"default": null,
"comment": "",
"unsigned": true,
"zerofill": false,
"auto_increment": false,
"binary": false
}
]
},
"4": {
"method": "addColumn",
"params": [
"downloads_files",
{
"name": "file_hidden_reviews",
"type": "INT",
"length": 10,
"decimals": null,
"values": [],
"allow_null": true,
"default": null,
"comment": "",
"unsigned": true,
"zerofill": false,
"auto_increment": false,
"binary": false
}
]
}
}
Whitespace-only changes.
@@ -1,43 +0,0 @@
<?php
/**
* @brief 4.0.5 Upgrade Code
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Downloads
* @since 5 May 2015
*/
namespace IPS\downloads\setup\upg_100028;
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* 4.0.5 Upgrade Code
*/
class _Upgrade
{
/**
* Make sure all theme settings are applied to every theme.
*
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function finish()
{
\IPS\core\Setup\Upgrade::repairFileUrls('downloads');
\IPS\Task::queue( 'core', 'RebuildContentImages', array( 'class' => 'IPS\downloads\File' ), 3, array( 'class' ) );
\IPS\Task::queue( 'core', 'RebuildContentImages', array( 'class' => 'IPS\downloads\File\Comment' ), 3, array( 'class' ) );
\IPS\Task::queue( 'core', 'RebuildContentImages', array( 'class' => 'IPS\downloads\File\Review' ), 3, array( 'class' ) );
\IPS\Task::queue( 'core', 'RebuildNonContentImages', array( 'extension' => 'downloads_Categories' ), 3, array( 'extension' ) );
return TRUE;
}
}
Whitespace-only changes.
@@ -1,73 +0,0 @@
<?php
/**
* @brief 4.0.9 Upgrade Code
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Downloads
* @since 19 Jun 2015
*/
namespace IPS\downloads\setup\upg_100035;
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* 4.0.9 Upgrade Code
*/
class _Upgrade
{
/**
* Update widgets
*
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function finish()
{
$areas = array( 'core_widget_areas' );
if ( \IPS\Application::appIsEnabled('cms') )
{
$areas[] = 'cms_page_widget_areas';
}
foreach ( $areas as $table )
{
foreach ( \IPS\Db::i()->select( '*', $table ) as $area )
{
$widgetsColumn = $table == 'core_widget_areas' ? 'widgets' : 'area_widgets';
$whereClause = $table == 'core_widget_areas' ? array( 'id=? AND area=?', $area['id'], $area['area'] ) : array( 'area_page_id=? AND area_area=?', $area['area_page_id'], $area['area_area'] );
$widgets = json_decode( $area[ $widgetsColumn ], TRUE );
$update = FALSE;
foreach ( $widgets as $k => $widget )
{
if ( $widget['key'] == 'recentFiles' )
{
$widgets[ $k ]['key'] = 'fileFeed';
if ( isset( $widgets[ $k ]['configuration']['number_to_show'] ) )
{
$widgets[ $k ]['configuration']['widget_feed_show'] = $widgets[ $k ]['configuration']['number_to_show'];
unset( $widgets[ $k ]['configuration']['number_to_show'] );
}
$update = TRUE;
}
if ( $update )
{
\IPS\Db::i()->update( $table, array( $widgetsColumn => json_encode( $widgets ) ), $whereClause );
}
}
}
}
return TRUE;
}
}
Whitespace-only changes.
@@ -1,13 +0,0 @@
{
"1": {
"method": "delete",
"params": [
"core_widgets",
[
"app=? AND `key`=?",
"downloads",
"recentFiles"
]
]
}
}
Whitespace-only changes.
@@ -1,10 +0,0 @@
{
"1": {
"method": "update",
"params": [
"downloads_files_records",
"record_thumb=record_location",
"record_thumb IS NULL OR record_thumb=''"
]
}
}
Whitespace-only changes.
@@ -1,110 +0,0 @@
<?php
/**
* @brief 4.0.13 Upgrade Code
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Downloads
* @since 31 Jul 2015
*/
namespace IPS\downloads\setup\upg_100044;
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* 4.0.13 Upgrade Code
*/
class _Upgrade
{
/**
* Step 1
* Convert Ratings
*
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function step1()
{
$perCycle = 1000;
$did = 0;
$limit = \intval( \IPS\Request::i()->extra );
/* Try to prevent timeouts to the extent possible */
$cutOff = \IPS\core\Setup\Upgrade::determineCutoff();
foreach( \IPS\Db::i()->select( '*', 'downloads_files', array( 'file_votes IS NOT NULL' ), 'file_id ASC', array( $limit, $perCycle ) ) as $file )
{
if( $cutOff !== null AND time() >= $cutOff )
{
return ( $limit + $did );
}
$did++;
$votes = unserialize( $file['file_votes'] );
$voteCount = 0;
if ( \is_array( $votes ) and \count( $votes ) )
{
foreach( $votes as $member => $rating )
{
try
{
$member = \IPS\Member::load( $member );
\IPS\Db::i()->insert( 'downloads_reviews', array(
'review_fid' => $file['file_id'],
'review_mid' => $member->member_id,
'review_author_name' => $member->name,
'review_rating' => $rating,
/* The review_ip column does not accept NULL values */
'review_ip' => '',
'review_date' => time(),
'review_approved' => 1,
/* The search index does not allow blank text */
'review_text' => '',
) );
$voteCount++;
}
catch( \Exception $e ){}
}
}
\IPS\Db::i()->update( 'downloads_files', array( 'file_reviews' => $file['file_reviews'] + $voteCount ), array( "file_id=?", $file['file_id'] ) );
}
if( $did )
{
return ( $limit + $did );
}
else
{
unset( $_SESSION['_step1Count'] );
return TRUE;
}
}
/**
* Custom title for this step
*
* @return string
*/
public function step1CustomTitle()
{
$limit = isset( \IPS\Request::i()->extra ) ? \IPS\Request::i()->extra : 0;
if( !isset( $_SESSION['_step1Count'] ) )
{
$_SESSION['_step1Count'] = \IPS\Db::i()->select( 'COUNT(*)', 'downloads_files', array( 'file_votes IS NOT NULL' ) )->first();
}
return "Converting file ratings (Updated so far: " . ( ( $limit > $_SESSION['_step1Count'] ) ? $_SESSION['_step1Count'] : $limit ) . ' out of ' . $_SESSION['_step1Count'] . ')';
}
}
Whitespace-only changes.
@@ -1,103 +0,0 @@
<?php
/**
* @brief 4.1.0 Beta 1 Upgrade Code
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Downloads
* @since 23 Sep 2015
*/
namespace IPS\downloads\setup\upg_101000;
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* 4.1.0 Beta 1 Upgrade Code
*/
class _Upgrade
{
/**
* Fix broken downloads reviews from 100044
*
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function step1()
{
$perCycle = 1000;
$did = 0;
$limit = \intval( \IPS\Request::i()->extra );
/* Try to prevent timeouts to the extent possible */
$cutOff = \IPS\core\Setup\Upgrade::determineCutoff();
foreach( \IPS\Db::i()->select( '*', 'downloads_reviews', 'review_date is null', 'review_id ASC', array( $limit, $perCycle ) ) as $review )
{
if( $cutOff !== null AND time() >= $cutOff )
{
return ( $limit + $did );
}
$did++;
try
{
$member = \IPS\Member::load( $review['review_mid'] );
\IPS\Db::i()->update( 'downloads_reviews', array( 'review_date' => time(), 'review_text' => '', 'review_author_name' => $member->name ), array( 'review_id=?', $review['review_id'] ) );
}
catch( \Exception $e ){}
}
if ( $did )
{
return ( $limit + $did );
}
else
{
unset( $_SESSION['_step1Count'] );
return TRUE;
}
}
/**
* Custom title for this step
*
* @return string
*/
public function step1CustomTitle()
{
$limit = isset( \IPS\Request::i()->extra ) ? \IPS\Request::i()->extra : 0;
if( !isset( $_SESSION['_step1Count'] ) )
{
$_SESSION['_step1Count'] = \IPS\Db::i()->select( 'COUNT(*)', 'downloads_reviews', 'review_date is null' )->first();
}
return "Adjusting empty download reviews (Upgraded so far: " . ( ( $limit > $_SESSION['_step1Count'] ) ? $_SESSION['_step1Count'] : $limit ) . ' out of ' . $_SESSION['_step1Count'] . ')';
}
/**
* Reset the forum ID to post to if the forum ID does not exist
*
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function finish()
{
if ( \IPS\Application::appIsEnabled( 'forums' ) )
{
$prefix = \IPS\Db::i()->prefix;
\IPS\Db::i()->update( 'downloads_categories', array( 'cforum_id' => 0 ), 'cforum_id NOT IN( SELECT id FROM ' . $prefix . 'forums_forums )' );
}
return TRUE;
}
}
Whitespace-only changes.
@@ -1,44 +0,0 @@
{
"1": {
"method": "changeColumn",
"params": [
"downloads_files",
"file_size",
{
"name": "file_size",
"type": "BIGINT",
"length": 20,
"decimals": null,
"values": [],
"allow_null": false,
"default": "0",
"comment": "",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
}
]
},
"2": {
"method": "changeColumn",
"params": [
"downloads_downloads",
"dua",
{
"name": "dua",
"type": "TEXT",
"length": 0,
"decimals": null,
"values": [],
"allow_null": true,
"default": null,
"comment": "",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
}
]
}
}
Whitespace-only changes.
@@ -1,42 +0,0 @@
<?php
/**
* @brief 4.1.8 Upgrade Code
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @since 11 Jan 2016
*/
namespace IPS\downloads\setup\upg_101024;
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* 4.1.8 Upgrade Code
*/
class _Upgrade
{
/**
* Download category sort options are stored with database prefix incorrectly.
*
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function step1()
{
foreach( \IPS\Db::i()->select( '*', 'downloads_categories' ) as $cat )
{
if ( mb_substr( $cat['csortorder'], 0, 5 ) === 'file_' )
{
\IPS\Db::i()->update( 'downloads_categories', array( 'csortorder' => mb_substr( $cat['csortorder'], 5 ) ), array( 'cid=?', $cat['cid'] ) );
}
}
return TRUE;
}
}
Whitespace-only changes.
@@ -1,15 +0,0 @@
{
"1": {
"method": "update",
"params": [
"downloads_categories",
{
"csortorder": "date"
},
[
"csortorder=?",
"submitted"
]
]
}
}
Whitespace-only changes.
@@ -1,15 +0,0 @@
{
"1": {
"method": "update",
"params": [
"core_attachments_map",
{
"id3": "desc"
},
[
"location_key=?",
"downloads_Downloads"
]
]
}
}
Whitespace-only changes.
@@ -1,44 +0,0 @@
{
"1": {
"method": "changeColumn",
"params": [
"downloads_files_records",
"record_size",
{
"name": "record_size",
"type": "BIGINT",
"length": 20,
"decimals": null,
"values": [],
"allow_null": false,
"default": "0",
"comment": "",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
}
]
},
"2": {
"method": "changeColumn",
"params": [
"downloads_files",
"file_rating",
{
"name": "file_rating",
"type": "DECIMAL",
"length": 10,
"decimals": 1,
"values": [],
"allow_null": false,
"default": "0",
"comment": "",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
}
]
}
}
Whitespace-only changes.
@@ -1,49 +0,0 @@
<?php
/**
* @brief 4.1.17 Beta 1 Upgrade Code
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Downloads
* @since 15 Nov 2016
*/
namespace IPS\downloads\setup\upg_101071;
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* 4.1.17 Beta 1 Upgrade Code
*/
class _Upgrade
{
/**
* Remove duplicate strings which are now located in the core application
*
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function step1()
{
$stringsToRemove = array(
'ctags_predefined_desc',
'ctags_predefined_unlimited',
'ctags_predefined',
'ctags_noprefixes',
'ctags_disabled'
);
\IPS\Db::i()->delete( 'core_sys_lang_words', \IPS\Db::i()->in( 'word_key', $stringsToRemove ) );
return TRUE;
}
// You can create as many additional methods (step2, step3, etc.) as is necessary.
// Each step will be executed in a new HTTP request
}
Whitespace-only changes.
@@ -1,18 +0,0 @@
<?php
/**
* @brief Upgrader: Custom Post Upgrade Message
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @since 28 Nov 2016
*/
$path = \IPS\ROOT_PATH . '/applications/downloads/extensions/core/ContentRouter/downloads.php';
/* Windows is case-insensitive, so we don't need to check in that case (no pun intended) */
if( \file_exists( $path ) AND !\unlink( $path ) )
{
$message = \IPS\Theme::i()->getTemplate( 'global' )->block( NULL, "The following file could not be deleted automatically and should be manually removed:<br><pre>{$path}</pre>" );
}
Whitespace-only changes.
@@ -1,15 +0,0 @@
{
"1": {
"method": "update",
"params": [
"downloads_files",
{
"file_cost": ""
},
[
"file_cost=?",
"0"
]
]
}
}
@@ -1,78 +0,0 @@
<?php
/**
* @brief 4.1.18.1 Upgrade Code
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Downloads
* @since 20 Jan 2017
*/
namespace IPS\downloads\setup\upg_101088;
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* 4.1.18.1 Upgrade Code
*/
class _Upgrade
{
/**
* Convert custom file field database schemas if needed
*
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function step1()
{
$queries = array();
foreach( \IPS\Db::i()->select( '*', 'downloads_cfields', array( "cf_type IN( 'Editor','Codemirror','TextArea','Upload','Address','Select' )" ) ) as $field )
{
\IPS\Db::i()->returnQuery = TRUE;
if( \IPS\Db::i()->checkForIndex( 'downloads_ccontent', 'field_' . $field['cf_id'] ) )
{
\IPS\Db::i()->returnQuery = TRUE;
$queries[] = array( 'table' => 'downloads_ccontent', 'query' => \IPS\Db::i()->dropIndex( 'downloads_ccontent', 'field_' . $field['cf_id'] ) );
}
\IPS\Db::i()->returnQuery = TRUE;
$queries[] = array( 'table' => 'downloads_ccontent', 'query' => \IPS\Db::i()->changeColumn( 'downloads_ccontent', 'field_' . $field['cf_id'], array( 'name' => 'field_' . $field['cf_id'], 'type' => 'MEDIUMTEXT' ) ) );
\IPS\Db::i()->returnQuery = TRUE;
$queries[] = array( 'table' => 'downloads_ccontent', 'query' => \IPS\Db::i()->addIndex( 'downloads_ccontent', array( 'type' => 'fulltext', 'name' => 'field_' . $field['cf_id'], 'columns' => array( 'field_' . $field['cf_id'] ) ) ) );
\IPS\Db::i()->returnQuery = FALSE;
}
if( \count( $queries ) )
{
$toRun = \IPS\core\Setup\Upgrade::runManualQueries( $queries );
if ( \count( $toRun ) )
{
\IPS\core\Setup\Upgrade::adjustMultipleRedirect( array( 1 => 'downloads', 'extra' => array( '_upgradeStep' => 2 ) ) );
/* Queries to run manually */
return array( 'html' => \IPS\Theme::i()->getTemplate( 'forms' )->queries( $toRun, \IPS\Http\Url::internal( 'controller=upgrade' )->setQueryString( array( 'key' => $_SESSION['uniqueKey'], 'mr_continue' => 1, 'mr' => \IPS\Request::i()->mr ) ) ) );
}
}
return TRUE;
}
/**
* Custom title for this step
*
* @return string
*/
public function step1CustomTitle()
{
return "Adjusting custom field definitions";
}
}
Whitespace-only changes.
@@ -1,69 +0,0 @@
{
"1": {
"method": "addColumn",
"params": [
"downloads_categories",
{
"name": "cclub_id",
"type": "BIGINT",
"length": 20,
"decimals": null,
"values": null,
"allow_null": true,
"default": null,
"comment": "The club ID if this category belongs to a club, or NULL",
"unsigned": true,
"zerofill": false,
"auto_increment": false,
"binary": false
}
]
},
"2": {
"method": "addColumn",
"params": [
"downloads_files",
{
"name": "file_meta_data",
"type": "BIT",
"length": 1,
"decimals": null,
"values": null,
"allow_null": false,
"default": "0",
"comment": "",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
}
]
},
"3": {
"method": "update",
"params": [
"downloads_files_records",
"record_location=TRIM(LEADING '\/' FROM record_location), record_thumb=TRIM(LEADING '\/' FROM record_thumb), record_no_watermark=TRIM(LEADING '\/' FROM record_no_watermark)"
]
},
"4": {
"method": "addColumn",
"params": [
"downloads_cfields",
{
"name": "cf_allow_attachments",
"type": "TINYINT",
"length": 1,
"decimals": null,
"values": null,
"allow_null": false,
"default": "1",
"comment": "",
"unsigned": true,
"zerofill": false,
"auto_increment": false,
"binary": false
}
]
}
}
Whitespace-only changes.
@@ -1,39 +0,0 @@
<?php
/**
* @brief 4.2.2 Beta 1 Upgrade Code
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Downloads
* @since 26 Jul 2017
*/
namespace IPS\downloads\setup\upg_102005;
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* 4.2.2 Beta 1 Upgrade Code
*/
class _Upgrade
{
/**
* Recount containers and repair custom field URL's
*
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function finish()
{
\IPS\Task::queue( 'core', 'RebuildContainerCounts', array( 'class' => 'IPS\downloads\Category', 'count' => 0 ), 5, array( 'class' ) );
$file = new \IPS\downloads\extensions\core\FileStorage\FileField;
\IPS\Task::queue( 'core', 'RepairFileUrls', array( 'storageExtension' => 'filestorage__downloads_FileField', 'count' => $file->count() ), 1 );
return TRUE;
}
}
Whitespace-only changes.
@@ -1,40 +0,0 @@
{
"1": {
"method": "changeIndex",
"params": [
"downloads_comments",
"comment_approved",
{
"type": "key",
"name": "comment_approved",
"columns": [
"comment_open",
"comment_date"
],
"length": [
null,
null
]
}
]
},
"2": {
"method": "changeIndex",
"params": [
"downloads_reviews",
"review_approved",
{
"type": "key",
"name": "review_approved",
"columns": [
"review_approved",
"review_date"
],
"length": [
null,
null
]
}
]
}
}
Whitespace-only changes.
@@ -1,23 +0,0 @@
{
"1": {
"method": "changeColumn",
"params": [
"downloads_downloads",
"dsize",
{
"name": "dsize",
"type": "BIGINT",
"length": 20,
"decimals": null,
"values": [],
"allow_null": false,
"default": "0",
"comment": "",
"unsigned": true,
"zerofill": false,
"auto_increment": false,
"binary": false
}
]
}
}
Whitespace-only changes.
@@ -1,93 +0,0 @@
{
"1": {
"method": "addColumn",
"params": [
"downloads_reviews",
{
"name": "review_author_response",
"type": "MEDIUMTEXT",
"length": null,
"decimals": null,
"values": null,
"allow_null": true,
"default": null,
"comment": "",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
}
]
},
"2": {
"method": "changeIndex",
"params": [
"downloads_comments",
"comment_author",
{
"type": "key",
"name": "comment_mid",
"columns": [
"comment_mid"
],
"length": [
null
]
}
]
},
"3": {
"method": "changeIndex",
"params": [
"downloads_comments",
"comment_mid",
{
"type": "key",
"name": "comment_mid",
"columns": [
"comment_mid",
"comment_date"
],
"length": [
null,
null
]
}
]
},
"4": {
"method": "changeIndex",
"params": [
"downloads_reviews",
"review_mid",
{
"type": "key",
"name": "review_mid",
"columns": [
"review_mid",
"review_date"
],
"length": [
null,
null
]
}
]
},
"5": {
"method": "addIndex",
"params": [
"downloads_downloads",
{
"type": "key",
"name": "dip",
"columns": [
"dip"
],
"length": [
null
]
}
]
}
}
Whitespace-only changes.
@@ -1,22 +0,0 @@
{
"1": {
"method": "addColumn",
"params": [
"downloads_files",
{
"name": "file_purchasable",
"type": "BIT",
"length": 1,
"decimals": null,
"values": null,
"allow_null": false,
"default": "1",
"comment": "",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
}
]
}
}
@@ -1,42 +0,0 @@
{
"1": {
"method": "addColumn",
"params": [
"downloads_cfields",
{
"name": "cf_display_location",
"type": "ENUM",
"length": null,
"decimals": null,
"values": [
"below",
"tab",
"Sidebar"
],
"allow_null": false,
"default": "sidebar",
"comment": "Display location for custom fields",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
}
]
},
"2": {
"method": "addIndex",
"params": [
"downloads_files",
{
"type": "key",
"name": "file_approver",
"columns": [
"file_approver"
],
"length": [
null
]
}
]
}
}
@@ -1,13 +0,0 @@
{
"1": {
"method": "delete",
"params": [
"core_sys_lang_words",
[
"word_app=? and word_key=?",
"downloads",
"change_author"
]
]
}
}
@@ -1,67 +0,0 @@
{
"1": {
"method": "addIndex",
"params": [
"downloads_files",
{
"type": "key",
"name": "file_submitted",
"columns": [
"file_submitted"
],
"length": [
null
]
}
]
},
"2": {
"method": "dropIndex",
"params": [
"downloads_files",
"file_open"
]
},
"3": {
"method": "dropIndex",
"params": [
"downloads_files",
"file_cat"
]
},
"4": {
"method": "addColumn",
"params": [
"core_groups",
{
"name": "idm_paid_restrictions",
"type": "TINYINT",
"length": 1,
"null": false,
"default": 0,
"comment": "Download restrictions apply to Paid files?",
"unsigned": true
}
]
},
"5": {
"method": "addColumn",
"params": [
"downloads_categories",
{
"name": "cversion_numbers",
"type": "TINYINT",
"length": 1,
"decimals": null,
"values": null,
"allow_null": false,
"default": "1",
"comment": "0 = Disable version numbers, 1 = Allow version numbers, 2 = Require version numbers",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
}
]
}
}
@@ -12,32 +12,40 @@
namespace IPS\downloads\setup\upg_105013;
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
use IPS\core\Setup\Upgrade as UpgradeClass;
use IPS\Db;
use IPS\Request;
use UnderflowException;
use function defined;
use function intval;
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
header( ( $_SERVER['SERVER_PROTOCOL'] ?? 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* 4.5.0 Beta 1 Upgrade Code
*/
class _Upgrade
class Upgrade
{
/**
* Copy follow data to new file versions notify table
*
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
* @return array|bool If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function step1()
public function step1() : array|bool
{
$perCycle = 1000;
$did = 0;
$limit = \intval( \IPS\Request::i()->extra );
$limit = intval( Request::i()->extra );
/* Try to prevent timeouts to the extent possible */
$cutOff = \IPS\core\Setup\Upgrade::determineCutoff();
$cutOff = UpgradeClass::determineCutoff();
foreach( \IPS\Db::i()->select( '*', 'core_follow', array( 'follow_app=? and follow_area=?', 'downloads', 'file' ), 'follow_rel_id ASC', array( $limit, $perCycle ) ) as $follow )
foreach( Db::i()->select( '*', 'core_follow', array( 'follow_app=? and follow_area=?', 'downloads', 'file' ), 'follow_rel_id ASC', array( $limit, $perCycle ) ) as $follow )
{
if( $cutOff !== null AND time() >= $cutOff )
{
@@ -49,15 +57,15 @@ class _Upgrade
/* Don't insert if this is the file author, however, because author's can't receive notifications of their own files */
try
{
if( $follow['follow_member_id'] != \IPS\Db::i()->select( 'file_submitter', 'downloads_files', array( 'file_id=?', $follow['follow_rel_id'] ) )->first() )
if( $follow['follow_member_id'] != Db::i()->select( 'file_submitter', 'downloads_files', array( 'file_id=?', $follow['follow_rel_id'] ) )->first() )
{
\IPS\Db::i()->insert( 'downloads_files_notify', array( 'notify_member_id' => $follow['follow_member_id'], 'notify_file_id' => $follow['follow_rel_id'], 'notify_sent' => $follow['follow_notify_sent'] ) );
Db::i()->insert( 'downloads_files_notify', array( 'notify_member_id' => $follow['follow_member_id'], 'notify_file_id' => $follow['follow_rel_id'], 'notify_sent' => $follow['follow_notify_sent'] ) );
}
}
catch( \UnderflowException $e )
catch( UnderflowException $e )
{
/* The follow record is orphaned - just remove it */
\IPS\Db::i()->delete( 'core_follow', array( 'follow_id=?', $follow['follow_id'] ) );
Db::i()->delete( 'core_follow', array( 'follow_id=?', $follow['follow_id'] ) );
}
}
@@ -78,13 +86,13 @@ class _Upgrade
*
* @return string
*/
public function step1CustomTitle()
public function step1CustomTitle() : string
{
$limit = isset( \IPS\Request::i()->extra ) ? \IPS\Request::i()->extra : 0;
$limit = isset( Request::i()->extra ) ? Request::i()->extra : 0;
if( !isset( $_SESSION['_step1Count'] ) )
{
$_SESSION['_step1Count'] = \IPS\Db::i()->select( 'COUNT(*)', 'core_follow', array( 'follow_app=? and follow_area=?', 'downloads', 'file' ) )->first();
$_SESSION['_step1Count'] = Db::i()->select( 'COUNT(*)', 'core_follow', array( 'follow_app=? and follow_area=?', 'downloads', 'file' ) )->first();
}
return "Copying downloads follows (Copied so far: " . ( ( $limit > $_SESSION['_step1Count'] ) ? $_SESSION['_step1Count'] : $limit ) . ' out of ' . $_SESSION['_step1Count'] . ')';
@@ -12,25 +12,29 @@
namespace IPS\downloads\setup\upg_105024;
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
use IPS\Db;
use function defined;
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
header( ( $_SERVER['SERVER_PROTOCOL'] ?? 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* 4.5.0 Beta 7 Upgrade Code
*/
class _Upgrade
class Upgrade
{
/**
* ...
*
* @return array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
* @return array|bool If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function step1()
public function step1() : array|bool
{
\IPS\Db::i()->query( "DELETE `" . \IPS\Db::i()->prefix . "downloads_files_notify` FROM `" . \IPS\Db::i()->prefix . "downloads_files_notify` LEFT JOIN `" . \IPS\Db::i()->prefix . "downloads_files` ON (`" . \IPS\Db::i()->prefix . "downloads_files`.file_id=`" . \IPS\Db::i()->prefix . "downloads_files_notify`.notify_file_id AND `" . \IPS\Db::i()->prefix . "downloads_files`.file_submitter=`" . \IPS\Db::i()->prefix . "downloads_files_notify`.notify_member_id) WHERE `" . \IPS\Db::i()->prefix . "downloads_files`.file_id IS NOT NULL" );
Db::i()->query( "DELETE `" . Db::i()->prefix . "downloads_files_notify` FROM `" . Db::i()->prefix . "downloads_files_notify` LEFT JOIN `" . Db::i()->prefix . "downloads_files` ON (`" . Db::i()->prefix . "downloads_files`.file_id=`" . Db::i()->prefix . "downloads_files_notify`.notify_file_id AND `" . Db::i()->prefix . "downloads_files`.file_submitter=`" . Db::i()->prefix . "downloads_files_notify`.notify_member_id) WHERE `" . Db::i()->prefix . "downloads_files`.file_id IS NOT NULL" );
return TRUE;
}
@@ -40,7 +44,7 @@ class _Upgrade
*
* @return string
*/
public function step1CustomTitle()
public function step1CustomTitle() : string
{
return "Cleaning up Downloads author notifications";
}
@@ -12,25 +12,29 @@
namespace IPS\downloads\setup\upg_106156;
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
use IPS\Task;
use function defined;
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
header( ( $_SERVER['SERVER_PROTOCOL'] ?? 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* 4.6.11 Beta 1 Upgrade Code
*/
class _Upgrade
class Upgrade
{
/**
* Finish Upgrade
*
* @return bool|array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function step1()
public function step1() : array|bool
{
\IPS\Task::queue( 'core', 'RebuildContainerCounts', array( 'class' => 'IPS\downloads\Category', 'count' => 0 ), 5, array( 'class' ) );
Task::queue( 'core', 'RebuildContainerCounts', array( 'class' => 'IPS\downloads\Category', 'count' => 0 ), 5, array( 'class' ) );
return TRUE;
}
@@ -12,25 +12,29 @@
namespace IPS\downloads\setup\upg_107018;
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
use IPS\Db;
use function defined;
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
header( ( $_SERVER['SERVER_PROTOCOL'] ?? 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* 4.7.1 Beta 1 Upgrade Code
*/
class _Upgrade
class Upgrade
{
/**
* Update published value
*
* @return bool|array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function step1()
public function step1() : array|bool
{
\IPS\Db::i()->query( "UPDATE " . \IPS\Db::i()->prefix . "downloads_files SET file_published=file_updated WHERE file_published=0" );
Db::i()->query( "UPDATE " . Db::i()->prefix . "downloads_files SET file_published=file_updated WHERE file_published=0" );
return TRUE;
}
@@ -1,23 +0,0 @@
{
"id": 107702,
"name": "4.7.12 Beta 3",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,23 +0,0 @@
{
"id": 107748,
"name": "4.7.16",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,23 +0,0 @@
{
"id": 107750,
"name": "4.7.16",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,23 +0,0 @@
{
"id": 107751,
"name": "4.7.16",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,23 +0,0 @@
{
"id": 107760,
"name": "4.7.17 Beta 1",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,23 +0,0 @@
{
"id": 107774,
"name": "4.7.18",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,23 +0,0 @@
{
"id": 107775,
"name": "4.7.18",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,23 +0,0 @@
{
"id": 107781,
"name": "4.7.19 Beta 2",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,23 +0,0 @@
{
"id": 107782,
"name": "4.7.19 Beta 3",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,23 +0,0 @@
{
"id": 107783,
"name": "4.7.19 Beta 4",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,23 +0,0 @@
{
"id": 107784,
"name": "4.7.19",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,23 +0,0 @@
{
"id": 107785,
"name": "4.7.19",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,23 +0,0 @@
{
"id": 107786,
"name": "4.7.19",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,23 +0,0 @@
{
"id": 107787,
"name": "4.7.19",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,17 +0,0 @@
{
"normal": {
"added": [
"perm_cfield_perm__view",
"perm_cfield_perm__edit",
"perm_cfield_perm__add",
"perm_cfield_perm__label"
],
"edited": [],
"removed": []
},
"js": {
"added": [],
"edited": [],
"removed": []
}
}
@@ -1,90 +0,0 @@
<?php
/**
* @brief 4.7.20 Beta 1 Upgrade Code
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Downloads
* @since 14 Nov 2024
*/
namespace IPS\downloads\setup\upg_107795;
/* To prevent PHP errors (extending class does not exist) revealing path */
use IPS\downloads\Field;
use IPS\Patterns\ActiveRecordIterator;
use IPS\Db;
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* 4.7.20 Beta 1 Upgrade Code
*/
class _Upgrade
{
/**
* This step sets default permissions on existing Downloads custom fields.
* Previous versions will not have any permissions set and will cause fields to be inaccessible to all groups,
* so we set permissions that make sense.
*
* @return bool|array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function step1()
{
/* Set default permissions on custom fields */
$fields = iterator_to_array(
new ActiveRecordIterator(
Db::i()->select( '*', 'downloads_cfields' ),
Field::class
)
);
/* Set up recommended permissions */
$perms = [];
foreach ( Field::$permissionMap as $k => $v )
{
switch ( $k )
{
case 'view':
case 'edit':
case 'add':
$perms["perm_{$v}"] = '*';
break;
}
}
foreach( $fields as $field )
{
/* @var Field $field */
try
{
$current = \IPS\Db::i()->select( '*', 'core_permission_index', array( 'app=? AND perm_type=? AND perm_type_id=?', 'downloads', 'fields', $field->_id ) )->first();
/* This shouldn't happen, but just in case */
if( !empty( $current['perm_view'] ) )
{
continue;
}
Db::i()->update( 'core_permission_index', $perms, [ 'perm_id=?', $current['perm_id'] ] );
}
catch( \UnderflowException $e )
{
/* Recommended permissions */
$update = array_merge( $perms, [ 'app' => 'downloads', 'perm_type' => 'fields', 'perm_type_id' => $field->_id ] );
Db::i()->insert( 'core_permission_index', $update );
}
}
return TRUE;
}
// You can create as many additional methods (step2, step3, etc.) as is necessary.
// Each step will be executed in a new HTTP request
}
@@ -1,23 +0,0 @@
{
"id": 107796,
"name": "4.7.20 Beta 2",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,23 +0,0 @@
{
"id": 107797,
"name": "4.7.20 Beta 3",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,23 +0,0 @@
{
"id": 107798,
"name": "4.7.20 Beta 4",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,23 +0,0 @@
{
"id": 107799,
"name": "4.7.20 Beta 5",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,23 +0,0 @@
{
"id": 107800,
"name": "4.7.20",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,23 +0,0 @@
{
"id": 107801,
"name": "4.7.20",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,23 +0,0 @@
{
"id": 107802,
"name": "4.7.20",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,23 +0,0 @@
{
"id": 107803,
"name": "4.7.20",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,23 +0,0 @@
{
"id": 107810,
"name": "4.7.21 Beta 1",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,23 +0,0 @@
{
"id": 107811,
"name": "4.7.21",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,23 +0,0 @@
{
"id": 107815,
"name": "4.7.22 Beta 1",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,23 +0,0 @@
{
"id": 107816,
"name": "4.7.22 Beta 2",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,23 +0,0 @@
{
"id": 107817,
"name": "4.7.22",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -1,23 +0,0 @@
{
"id": 107818,
"name": "4.7.22",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
Loaded 100 of 6736 files, more files were not shown because too many files have changed in this diff. Show more