Version 5.0.6

This commit is contained in:
Neo committed 2025-12-19 18:55:49 -08:00
1 parent a3a4a9ccbd
commit b89858b2ff
1214 files changed
+92828 -14859

No files matched your search

@@ -0,0 +1,64 @@
<?php
/**
* @brief Converter Library Extension
* @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/
{subpackage}
* @since {date}
*/
namespace IPS\{app}\extensions\convert\Library;
use \IPS\convert\Library as CoreLibrary;
/* 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;
}
class {class} extends CoreLibrary
{
/**
* @brief Application
*/
public static string $app = '{app}';
/**
* Returns an array of items that we can convert, including the amount of rows stored in the Community Suite as well as the recommend value of rows to convert per cycle
*
* @param bool $rowCounts enable row counts
* @return array
*/
public function menuRows( bool $rowCounts=FALSE ): array
{
return [];
}
/**
* Returns an array of tables that need to be truncated when Empty Local Data is used
*
* @param string $method Method to truncate
* @return array
*/
protected function truncate( string $method ) : array
{
return [];
}
/**
* This is how the insert methods will work - basically like 3.x, but we should be using the actual classes to insert the data unless there is a real world reason not too.
* Using the actual routines to insert data will help to avoid having to resynchronize and rebuild things later on, thus resulting in less conversion time being needed overall.
* Anything that parses content, for example, may need to simply insert directly then rebuild via a task over time, as HTML Purifier is slow when mass inserting content.
*/
/**
* A note on logging -
* If the data is missing and it is unlikely that any source software would be able to provide this, we do not need to log anything and can use default data (for example, group_layout in convertLeaderGroups).
* If the data is missing and it is likely that a majority of the source software can provide this, we should log a NOTICE and use default data (for example, a_casesensitive in convertAcronyms).
* If the data is missing and it is required to convert the item, we should log a WARNING and return FALSE.
* If the conversion absolutely cannot proceed at all (filestorage locations not writable, for example), then we should log an ERROR and throw an \IPS\convert\Exception to completely halt the process and redirect to an error screen showing the last logged error.
*/
}
@@ -0,0 +1,155 @@
<?php
/**
* @brief Converter Software Extension
* @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/
{subpackage}
* @since {date}
*/
namespace IPS\{app}\extensions\convert\Software;
use IPS\convert\App;
use IPS\convert\Software as ConverterSoftware;
/* 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;
}
class {class} extends ConverterSoftware
{
/**
* Software Name
*
* @return string
*/
public static function softwareName(): string
{
/* Child classes must override this method */
return "{class}";
}
/**
* Software Key
*
* @return string
*/
public static function softwareKey(): string
{
/* Child classes must override this method */
return mb_strtolower( '{class}' );
}
/**
* Content we can convert from this software.
*
* @return array|null
*/
public static function canConvert(): ?array
{
return [
];
}
/**
* Can we convert passwords from this software.
*
* @return boolean
*/
public static function loginEnabled(): bool
{
return FALSE;
}
/**
* Can we convert settings?
*
* @return boolean
*/
public static function canConvertSettings(): bool
{
return FALSE;
}
/**
* Settings Map
*
* @return array
*/
public function settingsMap(): array
{
return [];
}
/**
* Settings Map Listing
*
* @return array
*/
public function settingsMapList(): array
{
return [];
}
/**
* Returns a block of text, or a language string, that explains what the admin must do to start this conversion
*
* @return string|null
*/
public static function getPreConversionInformation(): ?string
{
return NULL;
}
/**
* List of conversion methods that require additional information
*
* @return array
*/
public static function checkConf(): array
{
return [];
}
/**
* Get More Information
*
* @param string $method Conversion method
* @return array|null
*/
public function getMoreInfo( string $method ): ?array
{
return [];
}
/**
* Finish - Adds everything it needs to the queues and clears data store
*
* @return array Messages to display
*/
public function finish(): array
{
return [];
}
/**
* Pre-process content for the Invision Community text parser
*
* @param string The post
* @param string|null Content Classname passed by post-conversion rebuild
* @param int|null Content ID passed by post-conversion rebuild
* @param App|null App object if available
* @return string The converted post
*/
public static function fixPostData( string $post, ?string $className=null, ?int $contentId=null, ?App $app=null ): string
{
return $post;
}
// Insert convertX methods here
}
Whitespace-only changes.
@@ -1,5 +1,8 @@
{
"core": {
"LoginHandler": {
"Converter": "IPS\\convert\\extensions\\core\\LoginHandler\\Converter"
},
"Queue": {
"DeleteEmptyTopics": "IPS\\convert\\extensions\\core\\Queue\\DeleteEmptyTopics",
"InvisionCommunityRebuildContent": "IPS\\convert\\extensions\\core\\Queue\\InvisionCommunityRebuildContent",
+3 -4
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<javascript app="convert">
<file javascript_app="convert" javascript_location="admin" javascript_path="controllers/convert" javascript_name="ips.convert.menu.js" javascript_type="controller" javascript_version="5000049" javascript_position="1000100">/**
<file javascript_app="convert" javascript_location="admin" javascript_path="controllers/convert" javascript_name="ips.convert.menu.js" javascript_type="controller" javascript_version="5000074" javascript_position="1000100">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -45,7 +45,7 @@
}
} );
}(jQuery, _));</file>
<file javascript_app="convert" javascript_location="admin" javascript_path="controllers/forms" javascript_name="ips.forms.reactionmapper.js" javascript_type="controller" javascript_version="5000049" javascript_position="1000050">/**
<file javascript_app="convert" javascript_location="admin" javascript_path="controllers/forms" javascript_name="ips.forms.reactionmapper.js" javascript_type="controller" javascript_version="5000074" javascript_position="1000050">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -101,8 +101,7 @@ mustache
Debug.js
app.js</order>
<order app="global" path="/dev/js//library//jquery">jquery.js
jquery-migrate.js
jquery.transform.js</order>
jquery-migrate.js</order>
<order app="global" path="/dev/js//library//linkify">linkify.min.js
linkify-jquery.min.js</order>
</javascript>
+3 -5
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<language>
<app key="convert" version="5000049">
<app key="convert" version="5000074">
<word key="__app_convert" js="0">Converter</word>
<word key="menu__convert_manage" js="0">Conversions</word>
<word key="menu__convert_manage_manage_start" js="0">Start New Conversion</word>
@@ -50,12 +50,8 @@
<word key="db_charset" js="0">Database Character Set</word>
<word key="could_not_count_rows" js="0">Failed to count rows in table '%s' - is your table prefix set correctly?</word>
<word key="file_location" js="0">Location of files</word>
<word key="new_software" js="0">Create New Converter</word>
<word key="new_library" js="0">Create New Library</word>
<word key="classname" js="0">Class Name</word>
<word key="classname_desc" js="0">The path for the generated file must exist. Format must be in the form of IPS\myapp\Namespace\Classname.</word>
<word key="library" js="0">Library</word>
<word key="new_software_not_in_dev" js="0">You can only create new converters while IN_DEV.</word>
<word key="new_library_not_in_dev" js="0">You can only create new libraries while IN_DEV.</word>
<word key="source_path" js="0">Path to %s installation.</word>
<word key="path_invalid" js="0">The path entered appears to be invalid.</word>
@@ -468,5 +464,7 @@
<word key="r__convert_manage" js="0">Can run conversions</word>
<word key="r__create" js="0">Create Conversions</word>
<word key="r__create_manage" js="0">Can create conversions</word>
<word key="ext__Software" js="0">Create a new Converter to convert data from another platform.</word>
<word key="ext__Library" js="0">Create a new Library to convert data for a non-default app.</word>
</app>
</language>
+33 -1
View File
@@ -268,6 +268,13 @@
"107785": "4.7.19",
"107786": "4.7.19",
"107787": "4.7.19",
"107795": "4.7.20 Beta 1",
"107796": "4.7.20 Beta 2",
"107797": "4.7.20 Beta 3",
"107798": "4.7.20 Beta 4",
"107799": "4.7.20 Beta 5",
"107800": "4.7.20",
"107801": "4.7.20",
"500001": "5.0.0 Alpha 1",
"500002": "5.0.0 Alpha 2",
"5000003": "5.0.0 Alpha 3",
@@ -316,5 +323,30 @@
"5000046": "5.0.0 Beta 14",
"5000047": "5.0.0 Beta 14.1",
"5000048": "5.0.0 Beta 14.2",
"5000049": "5.0.0"
"5000049": "5.0.0",
"5000050": "5.0.0",
"5000051": "5.0.0",
"5000052": "5.0.1",
"5000053": "5.0.1",
"5000054": "5.0.2",
"5000055": "5.0.2",
"5000056": "5.0.2",
"5000057": "5.0.3",
"5000058": "5.0.3",
"5000059": "5.0.3",
"5000060": "5.0.3",
"5000061": "5.0.4 Beta 1",
"5000062": "5.0.4 Beta 1",
"5000063": "5.0.4 Beta 1",
"5000064": "5.0.4 Beta 2",
"5000065": "5.0.4 Beta 3",
"5000066": "5.0.4",
"5000067": "5.0.5 Beta 1",
"5000068": "5.0.5 Beta 2",
"5000069": "5.0.5",
"5000070": "5.0.6 Beta 1",
"5000071": "5.0.6 Beta 2",
"5000072": "5.0.6 Beta 3",
"5000073": "5.0.6 Beta 4",
"5000074": "5.0.6"
}