diff --git a/404error.php b/404error.php new file mode 100644 index 00000000..ac35a47a --- /dev/null +++ b/404error.php @@ -0,0 +1,14 @@ + + 404 Not Found + + The file you were looking for could not be found + + +EOF; + +exit; diff --git a/Credits.txt b/Credits.txt index 0b9eb855..8d97f2ea 100644 --- a/Credits.txt +++ b/Credits.txt @@ -5,27 +5,28 @@ Invision Power Services, Inc. is grateful to the following projects, whose work has been used throughout the IPS Community Suite to add style, flair and functionality to our product. -NULLING - Last Updated: 13 September 2015 - Author: IAF - AES implementation in PHP Last Updated: 22 July 2014 Website: http://www.movable-type.co.uk/scripts/aes-php.html License: http://creativecommons.org/licenses/by/3.0/ +Base64.js Polyfill + Included version: 0.3.0 + Website: https://github.com/davidchambers/Base64.js + License: http://www.apache.org/licenses/LICENSE-2.0 + Buzz.js Included version: 1.1.8 Website: http://buzz.jaysalvat.com/ License: http://opensource.org/licenses/MIT CKEditor - Included version: 4.4.7 + Included version: 4.5.4 Website: http://ckeditor.com License: http://www.gnu.org/copyleft/lesser.html -Codemirror (with XML, JavaScript, CSS, HTMLMixed, C-like and PHP modes and merge, search searchcursor addons) - Included version: 4.13 +Codemirror (with C-like, CSS, HTMLMixed, JavaScript, PHP, SQL and XML modes and merge, search, and searchcursor addons) + Included version: 5.8 Website: http://codemirror.net License: http://codemirror.net/LICENSE @@ -40,7 +41,7 @@ Esrever License: http://opensource.org/licenses/MIT FontAwesome - Included version: 4.3.0 + Included version: 4.4.0 Website: http://fortawesome.github.com/Font-Awesome License: http://fortawesome.github.com/Font-Awesome/#license @@ -147,6 +148,11 @@ parseUri Payment Method Icons Website: http://www.dreamstale.com/free-download-payment-method-vector-icons/ License: http://creativecommons.org/licenses/by/3.0/ + +PclZip + Included version: 2.8.2 + Website: http://www.phpconcept.net/pclzip/ + License: http://www.gnu.org/copyleft/lesser.html PEAR Mail Included version: 1.2.0 @@ -176,6 +182,10 @@ pop3.class.inc Preloaders.net Website: http://preloaders.net/ + +success.mp3 Notification Sound by RCP Tones + Website: http://rcptones.com/dev_tones/ + License: http://creativecommons.org/licenses/by/3.0/us/ Underscore.js Included version: 1.7.0 diff --git a/admin/convertutf8/init.php b/admin/convertutf8/init.php index d7df7f86..30cba8f3 100644 --- a/admin/convertutf8/init.php +++ b/admin/convertutf8/init.php @@ -76,6 +76,7 @@ class IPSUtf8 'FORCE_CONVERT_CHARSET' => NULL, 'FORCE_CONVERT_METHOD' => NULL, 'SOURCE_DB_CHARSET' => NULL, /* If set, will force the source database connection to use this charset */ + 'UTF8_INSERT_ONLY' => FALSE, /* If true, and sql_charset is present and set to utf8 in conf_global.php, then the "fast" method will simply insert without converting. Useful for mixed collation databases where the utf8 tables are real utf8 */ ); } diff --git a/admin/convertutf8/js/app.js b/admin/convertutf8/js/app.js index 0ee52131..d3d3934f 100644 --- a/admin/convertutf8/js/app.js +++ b/admin/convertutf8/js/app.js @@ -113,6 +113,7 @@ var ips = {}; data: data, url: url, timeout: ips.getSetting('maxExecTime') !== false ? parseInt( ips.getSetting('maxExecTime') * 1000 ) : 30000, + cache: false, success: function( data, textStatus, jqXHR ) { success( data, textStatus, jqXHR ); diff --git a/admin/convertutf8/modules/browser/archive.php b/admin/convertutf8/modules/browser/archive.php index 72980a3a..8809ae8e 100644 --- a/admin/convertutf8/modules/browser/archive.php +++ b/admin/convertutf8/modules/browser/archive.php @@ -32,7 +32,15 @@ class archive extends \IPSUtf8\Dispatcher\Controller $this->welcome(); break; case 'completed': - $this->completed(); + /* Regardless of current status, if the archive table is not utf8 we need to convert it */ + if ( \IPSUtf8\Convert\Archive::i()->getNonUtf8Tables( TRUE ) !== NULL ) + { + $this->welcome(); + } + else + { + $this->completed(); + } break; } } diff --git a/admin/convertutf8/modules/browser/browser.php b/admin/convertutf8/modules/browser/browser.php index 15a36887..ec84dbbd 100644 --- a/admin/convertutf8/modules/browser/browser.php +++ b/admin/convertutf8/modules/browser/browser.php @@ -58,7 +58,7 @@ class browser extends \IPSUtf8\Dispatcher\Controller $json = \IPSUtf8\Session::i()->json; $percent = round( ($json['convertedCount'] / \IPSUtf8\Convert::i()->getTotalRowsToConvert()) * 100, 2 ); - $msg = "Processing " . \IPSUtf8\Session::i()->current_table . ' (Total: ' . $percent . '%)'; + $msg = "Processing " . \IPSUtf8\Session::i()->current_table . '
Row: ' . \IPSUtf8\Session::i()->current_row . ' of ' . \IPSUtf8\Session::i()->tables[ \IPSUtf8\Session::i()->current_table ]['count'] . ' - Total: ' . $percent . '%'; if ( ! \IPSUtf8\Request::i()->isAjax() ) { @@ -169,14 +169,14 @@ class browser extends \IPSUtf8\Dispatcher\Controller exit(); } - if ( \IPSUtf8\Convert::i()->databaseIsUtf8() ) + if ( \IPSUtf8\Convert::i()->databaseIsUtf8() AND !count( \IPSUtf8\Convert::i()->getNonUtf8CollationTables() ) ) { \IPSUtf8\Output\Browser::i()->error( 'The database tables are UTF-8, collations are correct and there is nothing to convert. You can proceed with the upgrade.' ); exit(); } $json = \IPSUtf8\Session::i()->json; - $percent = ( \IPSUtf8\Convert::i()->getTotalRowsToConvert() ) ? round( ($json['convertedCount'] / \IPSUtf8\Convert::i()->getTotalRowsToConvert() ) * 100, 2 ) : 100; + $percent = ( \IPSUtf8\Convert::i()->getTotalRowsToConvert() ) ? sprintf ("%6.2f", round( ($json['convertedCount'] / \IPSUtf8\Convert::i()->getTotalRowsToConvert() ) * 100, 2 ) ) : 100; $isUtf8 = (boolean) ( \IPSUtf8\Convert::i()->databaseIsUtf8() ); $processing = (boolean) ( \IPSUtf8\Session::i()->status === 'processing' ); diff --git a/admin/convertutf8/readme.html b/admin/convertutf8/readme.html index 3c195e4f..4884d6a1 100644 --- a/admin/convertutf8/readme.html +++ b/admin/convertutf8/readme.html @@ -55,7 +55,7 @@

Start Web Converter

diff --git a/admin/convertutf8/system/Convert/Convert.php b/admin/convertutf8/system/Convert/Convert.php index e27affcf..bb1f220e 100644 --- a/admin/convertutf8/system/Convert/Convert.php +++ b/admin/convertutf8/system/Convert/Convert.php @@ -16,7 +16,7 @@ namespace IPSUtf8; */ class Convert { - const VERSION_ID = '1.1.17'; + const VERSION_ID = '1.1.18'; /** * @brief Data Store @@ -301,9 +301,13 @@ class Convert /* Even if the current charset is set to UTF-8, if the Table Charset is latin1, we need to use this method */ /* ... but only if the actual column isn't using utf8 */ $columnCollation = $schematic['definition']['columns'][$col]['collation']; - if ( \IPSUtf8\Session::i()->current_charset != 'utf-8' OR ( $tableCharSet != 'utf8' AND ! in_array( $columnCollation, array( 'utf8_unicode_ci', 'utf8mb4_unicode_ci' ) ) ) OR ( $tableCharSet == 'utf8' AND mb_substr( $columnCollation, 0, 6 ) == 'latin1' ) ) + if ( defined( 'UTF8_INSERT_ONLY' ) AND UTF8_INSERT_ONLY === TRUE AND $tableCharSet == 'utf8' ) { - if ( \IPSUtf8\Session::i()->current_charset == 'iso-8859-1' AND $tableCharSet == 'latin1' ) + $select[] = 'CAST( `' . $col . '` AS BINARY )'; + } + else if ( \IPSUtf8\Session::i()->current_charset != 'utf-8' OR ( $tableCharSet != 'utf8' AND ! in_array( $columnCollation, array( 'utf8_unicode_ci', 'utf8mb4_unicode_ci' ) ) ) OR ( $tableCharSet == 'utf8' AND mb_substr( $columnCollation, 0, 5 ) == 'latin' ) ) + { + if ( \IPSUtf8\Session::i()->current_charset == 'iso-8859-1' OR mb_substr( $columnCollation, 0, 5 ) == 'latin' ) { /* Casting as binary truncates non-latin characters, so if we are using real Latin1, just convert */ $select[] = 'CONVERT( `' . $col . '` USING utf8 )'; @@ -317,17 +321,19 @@ class Convert else { /** - * @note This looks a little weird but bare with me. Semi-old databases (post-2.x but pre-4.x) can have UTF8 Tables and Columns, but contain Latin1 data. - * We need to try and sniff this out and apply a different type of conversion, because in this instance you cannot just extract - * as BINARY and then insert into the source. Instead, you need to convert to latin1, then to binary, then to utf8. But you can't - * do that on actual UTF8 data because it will then truncate multibyte characters so we need to compare the conversion against what - * is stored. - */ + This looks a little weird but bare with me. Semi-old databases (post-2.x but pre-4.x) can have UTF8 Tables and Columns, but contain Latin1 data. + We need to try and sniff this out and apply a different type of conversion, because in this instance you cannot just extract + as BINARY and then insert into the source. Instead, you need to convert to latin1, then to binary, then to utf8. But you can't + do that on actual UTF8 data because it will then truncate multibyte characters so we need to compare the conversion against what + is stored. + Mind = blown. + */ $collation = 'utf8_unicode_ci'; - - if ( $tableCharSet == 'utf8mb4' OR $columnCollation == 'utf8mb4_unicode_ci' ) + $using = 'utf8'; + if ( $columnCollation == 'utf8mb4_unicode_ci' ) { $collation = 'utf8mb4_unicode_ci'; + $using = 'utf8mb4'; } $source_charset = 'latin1'; @@ -336,7 +342,7 @@ class Convert $source_charset = SOURCE_DB_CHARSET; } - $select[] = 'CASE WHEN STRCMP(CONVERT(CONVERT(CONVERT(`' . $col . '` USING ' . $source_charset . ') USING BINARY) USING utf8), `' . $col . '` COLLATE ' . $collation . ') = 0 THEN CONVERT(`' . $col . '` USING BINARY) ELSE CONVERT(CONVERT(CONVERT(`' . $col . '` USING ' . $source_charset . ') USING BINARY) USING utf8) END'; + $select[] = 'CASE WHEN STRCMP(CONVERT(CONVERT(CONVERT(`' . $col . '` USING ' . $source_charset . ') USING BINARY) USING ' . $using . '), `' . $col . '` COLLATE ' . $collation . ') = 0 THEN CONVERT(`' . $col . '` USING BINARY) ELSE CONVERT(CONVERT(CONVERT(`' . $col . '` USING ' . $source_charset . ') USING BINARY) USING ' . $using . ') END'; } } else @@ -452,6 +458,7 @@ class Convert { if ( isset( $row[ $col ] ) AND ! empty( $row[ $col ] ) ) { + $currentCharSet = ( defined( 'FORCE_CONVERT_CHARSET' ) AND FORCE_CONVERT_CHARSET != NULL ) ? FORCE_CONVERT_CHARSET : $currentCharSet; if ( static::isSerialized( $row[ $col ] ) AND \IPSUtf8\Text\Charset::i()->needsConverting( $row[ $col ], $currentCharSet, 'UTF-8' ) ) { /* Store a copy in case it doesn't work */ @@ -513,10 +520,13 @@ class Convert $tmp = $row; // Use a copy so the reference in array_walk doesn't overwrite the row to be inserted /* Make sure it's an associative array as topic_views only has 1 column so DB driver returns an indexed array only */ - array_walk_recursive( $tmp, function( &$input, $key ) + if ( is_array( $tmp ) ) { - $input = htmlentities( (string) $input, ENT_QUOTES | ENT_IGNORE, 'utf-8', false ); - } ); + array_walk_recursive( $tmp, function( &$input, $key ) + { + $input = htmlentities( (string) $input, ENT_QUOTES | ENT_IGNORE, 'utf-8', false ); + } ); + } $batchBytes += mb_strlen( @json_encode( $tmp ), '8bit'); unset( $tmp ); @@ -649,13 +659,14 @@ class Convert { static::log( "Pre inserts for InnoDB table " . $table['name'] ); + /* This doesn't seem necessary try { static::$utf->query("SET autocommit=0"); static::$utf->query("SET unique_checks=0"); static::$utf->query("SET foreign_key_checks=0"); } - catch ( Exception $e ) { } + catch ( Exception $e ) { }*/ } } @@ -683,14 +694,15 @@ class Convert else if ( \strtolower( static::$utfTableEngine ) === 'innodb' ) { static::log( "Post inserts for InnoDB table " . $table['name'] ); - + + /* This doesn't seem necessary try { static::$utf->query("SET autocommit=1"); static::$utf->query("SET unique_checks=1"); static::$utf->query("SET foreign_key_checks=1"); } - catch ( Exception $e ) { } + catch ( Exception $e ) { }*/ } } @@ -881,27 +893,45 @@ class Convert while ( $stmt->fetch() === true ) { - if( mb_substr( $name, 0, 6 ) === 'x_utf_' ) - { - $tables[] = $name; - } + $tables[] = $name; } foreach( $tables as $name ) { $tableNameNoPrefix = $name; - $tableName = mb_substr( $name, mb_strlen( static::$utf->prefix ) ); + $isConvertedTable = ( mb_substr( $name, 0, 6 ) === 'x_utf_' ); + $isOrigTable = ( mb_substr( $name, 0, 5 ) === 'orig_' ); - if ( $tableName !== 'convert_session' AND $tableName !== 'convert_session_tables' ) + if ( $isOrigTable ) { - if( static::$utf->checkForTable( $tableName ) ) - { - static::$db->query( "DROP TABLE IF EXISTS `" . $origPrefix . $tableName . '`' ); - static::log( "DROP TABLE IF EXISTS `" . $origPrefix . $tableName . '`' ); - } + continue; + } - static::$utf->query( "RENAME TABLE `" . $tableNameNoPrefix . '` TO `' . $origPrefix . $tableName . '`' ); - static::log( "RENAME TABLE `" . $tableNameNoPrefix . '` TO `' . $origPrefix . $tableName . '`' ); + if ( ! $isConvertedTable and $origPrefix ) + { + $tableNameNoPrefix = mb_substr( $name, mb_strlen( $origPrefix ) ); + } + + /* Rename original tables */ + if ( ( ! $isConvertedTable ) and mb_substr( $name, 0, mb_strlen( $origPrefix ) ) === $origPrefix ) + { + static::$db->query( "RENAME TABLE `" . $origPrefix . $tableNameNoPrefix . '` TO `orig_' . $origPrefix . $tableNameNoPrefix . '`' ); + + static::log( "RENAME TABLE `" . $origPrefix . $tableNameNoPrefix . '` TO `orig_' . $origPrefix . $tableNameNoPrefix . '`' ); + } + + /* Grab x_utf_ prefixed tables */ + if ( $isConvertedTable ) + { + $tableName = mb_substr( $name, mb_strlen( static::$utf->prefix ) ); + + /* Rename the new one */ + if ( $tableName !== 'convert_session' AND $tableName !== 'convert_session_tables' ) + { + static::$utf->query( "RENAME TABLE `" . $name . '` TO `' . $origPrefix . $tableName . '`' ); + + static::log( "RENAME TABLE `" . $name . '` TO `' . $origPrefix . $tableName . '`' ); + } } } @@ -984,13 +1014,33 @@ class Convert /* We don't need to drop any indexes - just create a copy of the table and insert ignore */ if ( $hasUnique === TRUE ) { - static::$utf->query( "RENAME TABLE `" . static::$db->prefix . $name . "` TO `" . static::$db->prefix . $name . "_temp`" ); - static::$utf->query( "CREATE TABLE `" . static::$db->prefix . $name . "` LIKE `" . static::$db->prefix . $name . "_temp`" ); - static::$utf->query( "INSERT IGNORE INTO `" . static::$db->prefix . $name . "` SELECT * FROM `" . static::$db->prefix . $name . "_temp`" ); - static::$utf->query( "DROP TABLE `" . static::$db->prefix . $name . "_temp`" ); + /* Let's try an alter first - below may not be necessary */ + try + { + static::$utf->query( "ALTER TABLE `" . static::$db->prefix . $name . "` CONVERT TO CHARACTER SET " . $charset . " COLLATE " . $collation ); + static::$utf->query( "ALTER TABLE `" . static::$db->prefix . $name . "` DEFAULT CHARACTER SET " . $charset . " COLLATE " . $collation ); + } + catch( \IPSUtf8\Db\Exception $e ) + { + /* Did not work - try the long way */ + static::$utf->query( "RENAME TABLE `" . static::$db->prefix . $name . "` TO `" . static::$db->prefix . $name . "_temp`" ); + static::log( $name . " has Unique Index - temp table created from main." ); + static::$utf->query( "CREATE TABLE `" . static::$db->prefix . $name . "` LIKE `" . static::$db->prefix . $name . "_temp`" ); + static::log( $name . " created from temp table." ); + static::$utf->query( "REPLACE INTO `" . static::$db->prefix . $name . "` SELECT * FROM `" . static::$db->prefix . $name . "_temp`" ); + static::log( $name . " data copied to new table." ); + static::$utf->query( "DROP TABLE `" . static::$db->prefix . $name . "_temp`" ); + static::log( $name . "_temp dropped" ); + + static::$utf->query( "ALTER TABLE `" . static::$db->prefix . $name . "` CONVERT TO CHARACTER SET " . $charset . " COLLATE " . $collation ); + static::$utf->query( "ALTER TABLE `" . static::$db->prefix . $name . "` DEFAULT CHARACTER SET " . $charset . " COLLATE " . $collation ); + } + } + else + { + static::$utf->query( "ALTER TABLE `" . static::$db->prefix . $name . "` CONVERT TO CHARACTER SET " . $charset . " COLLATE " . $collation ); + static::$utf->query( "ALTER TABLE `" . static::$db->prefix . $name . "` DEFAULT CHARACTER SET " . $charset . " COLLATE " . $collation ); } - - static::$utf->query( "ALTER TABLE `" . static::$db->prefix . $name . "` CONVERT TO CHARACTER SET " . $charset . " COLLATE " . $collation ); if ( count( $cols ) ) { @@ -1565,7 +1615,7 @@ class Convert foreach( \IPSUtf8\Session::i()->tables as $table => $definition ) { /* If the table itself is not utf8_unicode_ci, don't bother check columns */ - if ( $definition['collation'] AND !in_array( $definition['collation'], array( 'utf8_unicode_ci', 'utf8mb4_unicode_ci' ) ) ) + if ( $definition['definition']['collation'] AND !in_array( $definition['definition']['collation'], array( 'utf8_unicode_ci', 'utf8mb4_unicode_ci' ) ) ) { static::$nonUtf8Collations[] = $table; continue; diff --git a/admin/convertutf8/system/Db/Db.php b/admin/convertutf8/system/Db/Db.php index 284db2f6..134ea122 100644 --- a/admin/convertutf8/system/Db/Db.php +++ b/admin/convertutf8/system/Db/Db.php @@ -61,6 +61,11 @@ class Db extends \mysqli * @brief Multiton Store */ protected static $multitons; + + /** + * @brief Return Query + */ + public $returnQuery = FALSE; /** * Get instance @@ -111,7 +116,30 @@ class Db extends \mysqli { throw new \IPSUtf8\Db\Exception( $error, self::$multitons[ $identifier ]->connect_errno ); } - + + /* If we succeeded, set the charset */ + if ( mb_substr( $identifier, 0, 4 ) == 'utf8' ) + { + /* UTF8MB4? */ + if ( isset( $connectionSettings['sql_utf8mb4'] ) and $connectionSettings['sql_utf8mb4'] ) + { + self::$multitons[ $identifier ]->charset = 'utf8mb4'; + self::$multitons[ $identifier ]->collation = 'utf8mb4_unicode_ci'; + self::$multitons[ $identifier ]->binaryCollation = 'utf8mb4_bin'; + } + + /* If we succeeded, set the charset */ + if ( !self::$multitons[ $identifier ]->set_charset( self::$multitons[ $identifier ]->charset ) ) + { + /* Fallback to UTF8 */ + self::$multitons[ $identifier ]->charset = 'utf8'; + self::$multitons[ $identifier ]->collation = 'utf8_unicode_ci'; + self::$multitons[ $identifier ]->binaryCollation = 'utf8_bin'; + + self::$multitons[ $identifier ]->set_charset( 'utf8' ); + } + } + /* Set the prefix */ if ( isset( $connectionSettings['sql_tbl_prefix'] ) ) { @@ -148,12 +176,6 @@ class Db extends \mysqli */ public $prefix = ''; - /** - * @brief Return the query instead of executing it - * @note Only designed to work with methods that call query() vs prepared statements - */ - public $returnQuery = FALSE; - /** * Run a query * diff --git a/admin/convertutf8/system/Output/Browser.php b/admin/convertutf8/system/Output/Browser.php index b10c8fb7..ffe94c09 100644 --- a/admin/convertutf8/system/Output/Browser.php +++ b/admin/convertutf8/system/Output/Browser.php @@ -103,6 +103,7 @@ class Browser extends \IPSUtf8\Output /* Flush and exit */ @ob_end_flush(); + @flush(); exit; } diff --git a/admin/install/emoticons/angry@2x.png b/admin/install/emoticons/angry@2x.png new file mode 100644 index 00000000..b28df8fb Binary files /dev/null and b/admin/install/emoticons/angry@2x.png differ diff --git a/admin/install/emoticons/biggrin@2x.png b/admin/install/emoticons/biggrin@2x.png new file mode 100644 index 00000000..e8b29fd1 Binary files /dev/null and b/admin/install/emoticons/biggrin@2x.png differ diff --git a/admin/install/emoticons/blink@2x.png b/admin/install/emoticons/blink@2x.png new file mode 100644 index 00000000..7dd049ff Binary files /dev/null and b/admin/install/emoticons/blink@2x.png differ diff --git a/admin/install/emoticons/blush@2x.png b/admin/install/emoticons/blush@2x.png new file mode 100644 index 00000000..c8dbd3bc Binary files /dev/null and b/admin/install/emoticons/blush@2x.png differ diff --git a/admin/install/emoticons/cool@2x.png b/admin/install/emoticons/cool@2x.png new file mode 100644 index 00000000..c648ea8c Binary files /dev/null and b/admin/install/emoticons/cool@2x.png differ diff --git a/admin/install/emoticons/data.json b/admin/install/emoticons/data.json index 185ab571..de3cb73f 100644 --- a/admin/install/emoticons/data.json +++ b/admin/install/emoticons/data.json @@ -1,23 +1,86 @@ { - ">:(": "angry.png", - ":D": "biggrin.png", - "O.o": "blink.png", - ":$": "blush.png", - "B|": "cool.png", - "¬¬": "dry.png", - "^_^": "happy.png", - "o.O": "huh.png", - "xD": "laugh.png", - ":|": "mellow.png", - ":o": "ohmy.png", - ":ph34r:": "ph34r.png", - "9_9": "rolleyes.gif", - ":(": "sad.png", - "-_-": "sleep.png", - ":)": "smile.png", - ":P": "tongue.png", - ":/": "unsure.png", - ":S": "wacko.png", - ";)": "wink.png", - ":x": "wub.png" + ">:(": { + "image": "angry.png", + "image_2x": "angry@2x.png" + }, + ":D": { + "image": "biggrin.png", + "image_2x": "biggrin@2x.png" + }, + "O.o": { + "image": "blink.png", + "image_2x": "blink@2x.png" + }, + ":$": { + "image": "blush.png", + "image_2x": "blush@2x.png" + }, + "B|": { + "image": "cool.png", + "image_2x": "cool@2x.png" + }, + "¬¬": { + "image": "dry.png", + "image_2x": "dry@2x.png" + }, + "^_^": { + "image": "happy.png", + "image_2x": "happy@2x.png" + }, + "o.O": { + "image": "huh.png", + "image_2x": "huh@2x.png" + }, + "xD": { + "image": "laugh.png", + "image_2x": "laugh@2x.png" + }, + ":|": { + "image": "mellow.png", + "image_2x": "mellow@2x.png" + }, + ":o": { + "image": "ohmy.png", + "image_2x": "ohmy@2x.png" + }, + ":ph34r:": { + "image": "ph34r.png", + "image_2x": "ph34r@2x.png" + }, + "9_9": { + "image": "rolleyes.gif", + "image_2x": "rolleyes@2x.png" + }, + ":(": { + "image": "sad.png", + "image_2x": "sad@2x.png" + }, + "-_-": { + "image": "sleep.png", + "image_2x": "sleep@2x.png" + }, + ":)": { + "image": "smile.png", + "image_2x": "smile@2x.png" + }, + ":P": { + "image": "tongue.png", + "image_2x": "tongue@2x.png" + }, + ":/": { + "image": "unsure.png", + "image_2x": "unsure@2x.png" + }, + ":S": { + "image": "wacko.png", + "image_2x": "wacko@2x.png" + }, + ";)": { + "image": "wink.png", + "image_2x": "wink@2x.png" + }, + ":x": { + "image": "wub.png", + "image_2x": "wub@2x.png" + } } \ No newline at end of file diff --git a/admin/install/emoticons/dry@2x.png b/admin/install/emoticons/dry@2x.png new file mode 100644 index 00000000..33d35e96 Binary files /dev/null and b/admin/install/emoticons/dry@2x.png differ diff --git a/admin/install/emoticons/happy@2x.png b/admin/install/emoticons/happy@2x.png new file mode 100644 index 00000000..1e054509 Binary files /dev/null and b/admin/install/emoticons/happy@2x.png differ diff --git a/admin/install/emoticons/huh@2x.png b/admin/install/emoticons/huh@2x.png new file mode 100644 index 00000000..246f8329 Binary files /dev/null and b/admin/install/emoticons/huh@2x.png differ diff --git a/admin/install/emoticons/laugh@2x.png b/admin/install/emoticons/laugh@2x.png new file mode 100644 index 00000000..da94f464 Binary files /dev/null and b/admin/install/emoticons/laugh@2x.png differ diff --git a/admin/install/emoticons/mellow@2x.png b/admin/install/emoticons/mellow@2x.png new file mode 100644 index 00000000..22b9451c Binary files /dev/null and b/admin/install/emoticons/mellow@2x.png differ diff --git a/admin/install/emoticons/ohmy@2x.png b/admin/install/emoticons/ohmy@2x.png new file mode 100644 index 00000000..7edcabf4 Binary files /dev/null and b/admin/install/emoticons/ohmy@2x.png differ diff --git a/admin/install/emoticons/ph34r@2x.png b/admin/install/emoticons/ph34r@2x.png new file mode 100644 index 00000000..3c70d8fe Binary files /dev/null and b/admin/install/emoticons/ph34r@2x.png differ diff --git a/admin/install/emoticons/rolleyes@2x.png b/admin/install/emoticons/rolleyes@2x.png new file mode 100644 index 00000000..6785c39d Binary files /dev/null and b/admin/install/emoticons/rolleyes@2x.png differ diff --git a/admin/install/emoticons/sad@2x.png b/admin/install/emoticons/sad@2x.png new file mode 100644 index 00000000..bc68ff96 Binary files /dev/null and b/admin/install/emoticons/sad@2x.png differ diff --git a/admin/install/emoticons/sleep@2x.png b/admin/install/emoticons/sleep@2x.png new file mode 100644 index 00000000..2977db8f Binary files /dev/null and b/admin/install/emoticons/sleep@2x.png differ diff --git a/admin/install/emoticons/smile@2x.png b/admin/install/emoticons/smile@2x.png new file mode 100644 index 00000000..4f46d862 Binary files /dev/null and b/admin/install/emoticons/smile@2x.png differ diff --git a/admin/install/emoticons/tongue@2x.png b/admin/install/emoticons/tongue@2x.png new file mode 100644 index 00000000..ce20893d Binary files /dev/null and b/admin/install/emoticons/tongue@2x.png differ diff --git a/admin/install/emoticons/unsure@2x.png b/admin/install/emoticons/unsure@2x.png new file mode 100644 index 00000000..bb10226a Binary files /dev/null and b/admin/install/emoticons/unsure@2x.png differ diff --git a/admin/install/emoticons/wacko@2x.png b/admin/install/emoticons/wacko@2x.png new file mode 100644 index 00000000..e10a3006 Binary files /dev/null and b/admin/install/emoticons/wacko@2x.png differ diff --git a/admin/install/emoticons/wink@2x.png b/admin/install/emoticons/wink@2x.png new file mode 100644 index 00000000..bb8190b2 Binary files /dev/null and b/admin/install/emoticons/wink@2x.png differ diff --git a/admin/install/emoticons/wub@2x.png b/admin/install/emoticons/wub@2x.png new file mode 100644 index 00000000..440204f2 Binary files /dev/null and b/admin/install/emoticons/wub@2x.png differ diff --git a/admin/install/eula.txt b/admin/install/eula.txt index 04d28daa..7578ba6e 100644 --- a/admin/install/eula.txt +++ b/admin/install/eula.txt @@ -1 +1,27 @@ -=============================[NOTE]============================= This software is Nulled! Nulled by IAF ================================================================ IPS 4.0.13.1 Release (100045) =============================[NOTE]============================= Invision Power Services End User License Agreement 1. Acceptance This software license agreement (the “Agreement”) is between you (either an individual or entity, hereinafter referred to as “You” or “Your”) and Invision Power Services, Inc. (“IPS”, “We”, “Our” or “Us”) and pertains to the IPS Community Suite software, its components, features, enhancements, updates and modifications (collectively the “Software” or “Suite”) and any related services (“Services”) provided by IPS under this Agreement. By purchasing, downloading, accessing, installing, facilitating the installation or using the Software or Services (or allowing or authorizing any other person to do so) you are warranting that you have the authority provided by your state, country or jurisdiction to enter into a legally binding contract and that you have read and agree to be bound by the terms of this Agreement. You understand and acknowledge that this Agreement comprises the entire agreement between You and IPS. This Agreement supersedes any prior agreements, promises, representations or descriptions. If you do not agree with the terms and conditions set forth hereinafter, you may not purchase, download, access, install or use the Software or Services. This Agreement may only be modified in writing, signed by an officer of IPS and You. 2. License Scope and Grant In consideration for payment of all applicable license fees and subject to the terms and conditions of this Agreement, IPS grants you a revocable, limited and non-exclusive license to install and use the Software and Services on a single installation, accessible via one URL. Access to services, components, software updates and technical support require an active license. All rights in and to the Software and Services are reserved to the use and benefit of IPS and/or its licensors, successors and assigners. (a) Test Installation. You may install and test one additional instance of the Software for the purpose of development and testing. This installation must be and remain isolated and inaccessible to the general public at all times. 3. Restrictions Your license to use the Software and Services is subject to the following terms, conditions and restrictions on use: (a) You may alter and modify the Software’s source code for Your use, subject to this Agreement, however, you may not distribute, publish, resell, or otherwise share the Software or derivative works based on the Software without prior express written consent from IPS. (b) You may not utilize the Software or Services to engage in, facilitate, or otherwise allow others to engage in any activity that violates any law or regulation or the terms and conditions within this Agreement. (c) You are solely responsible for complying with all governmental regulations and policies. You agree to indemnify Us from any loss, action or damage arising from Your failure to use the Software in a manner inconsistent with applicable legislation. (d) You may not remove any copyright or proprietary notices on or within the software’s source code at any time. A copyright removal license may be purchased to remove the public display of the Software’s publicly displayed copyright notice. 4. Intellectual Property We have the sole and exclusive right to the Software which is being licensed, not sold, to you by IPS under the terms and conditions of this agreement. The Software is protected by copyright, trademark and other intellectual property laws. IPS reserves any rights not expressly granted herein. 5. Assignment You may not rent, lease, sell, share or authorize or temporarily assign your rights to the license or this Agreement to another individual or entity except as expressly permitted herein. (a) You may, after six months from the original purchase date, permanently transfer your licensing rights and interest in this Agreement to a third party, provided the license is active and in good standing. Any transfer and reassignment must occur via the mechanisms provided within the invisionpower.com client area and all applicable fees must be paid for the reassignment to be considered valid. (b) You agree to provide this Agreement in its entirety to the assignee prior to reassignment and the assignee must agree to be bound to the terms of this Agreement. (c) You acknowledge that account and non license specific materials and purchases, including, but not limited to: account credits and third party (“marketplace”) add-ons and purchases are non-transferrable under any circumstances. (d) We reserve the right to refuse or reject reassignment at our sole discretion. 6. Termination This Agreement shall remain in effect until terminated. Your rights under this Agreement will automatically terminate without notice from Us in the event you fail to comply with any term or condition within this Agreement. Upon termination of this Agreement, you shall immediately cease all use of the Software and destroy all copies, full or partial, of the Software that may be in your possession or otherwise under your control. 7. Modification We reserve the right to amend or modify the terms of this Agreement at any time, and to change, discontinue or impose conditions on any aspect of the Software or related Service and to provide notification solely by posting an updated version of the Agreement on the invisionpower.com website. You acknowledge that you are solely responsible for regularly reviewing this Agreement and our policies. Continued use of the Software after modification to the Agreement constitutes your binding consent to such changes. 8. Disclaimer of Warranty THE SOFTWARE IS PROVIDED “AS-IS” AND TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, WE DISCLAIM ALL OTHER WARRANTIES, CONDITIONS, REPRESENTATIONS OR TERMS, EXPRESS OR IMPLIED, BY STATUTE, COMMON LAW, USAGE OR OTHERWISE, REGARDING THE SOFTWARE AND ANY RELATED SERVICES, INCLUDING THEIR FITNESS FOR A PARTICULAR PURPOSE, THEIR QUALITY, THEIR MERCHANTABILITY, OR THEIR NON-INFRINGEMENT. WE DO NOT WARRANT THAT THE SOFTWARE OR ANY RELATED SERVICES IS SECURE, OR IS FREE FROM BUGS, VIRUSES, ERRORS, OR OTHER PROGRAM LIMITATIONS, OR THAT DEFECTS WILL BE CORRECTED. SOME JURISDICTIONS DO NOT ALLOW EXCLUSION OF IMPLIED WARRANTIES, SO THE ABOVE EXCLUSIONS MAY NOT APPLY TO YOU. THE ENTIRE RISK AS TO THE RESULTS, QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH YOU. NO ADVICE OR INFORMATION, WHETHER ORAL OR WRITTEN, OBTAINED BY YOU FROM US OR OUR EMPLOYEES, REPRESENTATIVE OR AGENTS OR THROUGH OR FROM THE SOFTWARE OR OUR WEBSITE SHALL CREATE ANY WARRANTY NOT EXPRESSLY STATED WITHIN. THIS SECTION WILL SURVIVE THE TERMINATION OF THIS AGREEMENT. 9. Limitation of Liability TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL WE, OUR SUBSIDIARIES, OFFICERS, DIRECTORS, SHAREHOLDERS, PARTNERS, EMPLOYEES, AGENTS, CONTRACTORS OR OUR SUCCESSORS BE LIABLE FOR ANY DAMAGES WHATSOEVER, INCLUDING, BUT NOT LIMITED TO PERSONAL INJURY OR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, EXEMPLARY, PUNITIVE, COVER, CONSEQUENTIAL OR OTHER DAMAGES, INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, LOSS OF DATA, LOSS OF USE, COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS INTERRUPTION, LOSS OF GOODWILL OR ANY OTHER COMMERCIAL DAMAGES OR LOSSES, ARISING OUT OF OR RELATED TO THE USE OF, OR INABILITY TO USE, THE SOFTWARE OR ANY RELATED SERVICES OR CONTENT, HOWEVER CAUSED, REGARDLESS OF THE THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, TORT (INCLUDING NEGLIGENCE), PRODUCT LIABILITY OR OTHERWISE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES AND EVEN IF A REMEDY SET FORTH HEREIN IS FOUND TO HAVE FAILED OF ITS ESSENTIAL PURPOSE. WITHOUT LIMITING THE FOREGOING, IN NO EVENT SHALL OUR TOTAL LIABILITY TO YOU FOR ACTUAL DAMAGES FOR ANY CAUSE WHATSOEVER EXCEED THE AMOUNT PAID BY YOU TO LICENSE THE SOFTWARE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE FOREGOING LIMITATION OR EXCLUSION MAY NOT APPLY TO YOU. THESE LIMITATIONS WILL SURVIVE THE TERMINATION OF THIS AGREEMENT. 10. Indemnification You agree to fully indemnify and hold us, our successors, officers, directors, shareholders, partners, employees, agents, contracts and our successors harmless from and against any claim, suit, hearing, action, expense or demand, including without limitation to: all claims for damages, fees or costs (including attorneys’ fees), arising out of or related to the use of the Software and/or any related Services by you, your agents or representatives, anyone under your control, or by any third party using your equipment or accounts to use the Software or Services (for purposes of this section, collectively, “you”); the violation by you of any provision of this Agreement; the violation by you and any laws or regulations; or the infringement or misappropriation by you any copyright, trademark or any other intellectual property right, proprietary right, property right or any other right of ours or any third party. We reserve the right to assume the exclusive defense and control of any matter otherwise subject to indemnification by you, in which event you will cooperate with us in asserting any available defenses and, as set forth above, be fully responsible for our attorneys’ fees. 11. Governing Law The license and this Agreement are governed by and construed in accordance with the laws of the State of Virginia, United States of America. You hereby consent to exclusive jurisdiction and venue in the County of Bedford and State of Virginia. By agreeing to the terms of this Agreement, you are waiving any claims that you might otherwise have against IPS based on the laws of other jurisdictions. 12. Severability If, for any reason, a court of competent jurisdiction deems any provision or part of this Agreement to be unlawful or unenforceable, the remainder of the Agreement shall remain in full force and effect. \ No newline at end of file +Invision Power Services End User License Agreement + + +1. Acceptance + +This software license agreement (the “Agreement”) is between you (either an individual or entity, hereinafter referred to as “You” or “Your”) and Invision Power Services, Inc. (“IPS”, “We”, “Our” or “Us”) and pertains to the IPS Community Suite software, its components, features, enhancements, updates and modifications (collectively the “Software” or “Suite”) and any related services (“Services”) provided by IPS under this Agreement. By purchasing, downloading, accessing, installing, facilitating the installation or using the Software or Services (or allowing or authorizing any other person to do so) you are warranting that you have the authority provided by your state, country or jurisdiction to enter into a legally binding contract and that you have read and agree to be bound by the terms of this Agreement. You understand and acknowledge that this Agreement comprises the entire agreement between You and IPS. This Agreement supersedes any prior agreements, promises, representations or descriptions. If you do not agree with the terms and conditions set forth hereinafter, you may not purchase, download, access, install or use the Software or Services. This Agreement may only be modified in writing, signed by an officer of IPS and You. 2. License Scope and Grant + +In consideration for payment of all applicable license fees and subject to the terms and conditions of this Agreement, IPS grants you a revocable, limited and non-exclusive license to install and use the Software and Services on a single installation, accessible via one URL. Access to services, components, software updates and technical support require an active license. All rights in and to the Software and Services are reserved to the use and benefit of IPS and/or its licensors, successors and assigners. (a) Test Installation. You may install and test one additional instance of the Software for the purpose of development and testing. This installation must be and remain isolated and inaccessible to the general public at all times. 3. Restrictions Your license to use the Software and Services is subject to the following terms, conditions and restrictions on use: (a) You may alter and modify the Software’s source code for Your use, subject to this Agreement, however, you may not distribute, publish, resell, or otherwise share the Software or derivative works based on the Software without prior express written consent from IPS. + +(b) You may not utilize the Software or Services to engage in, facilitate, or otherwise allow others to engage in any activity that violates any law or regulation or the terms and conditions within this Agreement. (c) You are solely responsible for complying with all governmental regulations and policies. You agree to indemnify Us from any loss, action or damage arising from Your failure to use the Software in a manner inconsistent with applicable legislation. (d) You may not remove any copyright or proprietary notices on or within the software’s source code at any time. A copyright removal license may be purchased to remove the public display of the Software’s publicly displayed copyright notice. + + +4. Intellectual Property + +We have the sole and exclusive right to the Software which is being licensed, not sold, to you by IPS under the terms and conditions of this agreement. The Software is protected by copyright, trademark and other intellectual property laws. IPS reserves any rights not expressly granted herein. 5. Assignment You may not rent, lease, sell, share or authorize or temporarily assign your rights to the license or this Agreement to another individual or entity except as expressly permitted herein. (a) You may, after six months from the original purchase date, permanently transfer your licensing rights and interest in this Agreement to a third party, provided the license is active and in good standing. Any transfer and reassignment must occur via the mechanisms provided within the invisionpower.com client area and all applicable fees must be paid for the reassignment to be considered valid. (b) You agree to provide this Agreement in its entirety to the assignee prior to reassignment and the assignee must agree to be bound to the terms of this Agreement. (c) You acknowledge that account and non license specific materials and purchases, including, but not limited to: account credits and third party (“marketplace”) add-ons and purchases are non-transferrable under any circumstances. (d) We reserve the right to refuse or reject reassignment at our sole discretion. + + +6. Termination + This Agreement shall remain in effect until terminated. Your rights under this Agreement will automatically terminate without notice from Us in the event you fail to comply with any term or condition within this Agreement. Upon termination of this Agreement, you shall immediately cease all use of the Software and destroy all copies, full or partial, of the Software that may be in your possession or otherwise under your control. + + 7. Modification + We reserve the right to amend or modify the terms of this Agreement at any time, and to change, discontinue or impose conditions on any aspect of the Software or related Service and to provide notification solely by posting an updated version of the Agreement on the invisionpower.com website. You acknowledge that you are solely responsible for regularly reviewing this Agreement and our policies. Continued use of the Software after modification to the Agreement constitutes your binding consent to such changes. + + 8. Disclaimer of Warranty + THE SOFTWARE IS PROVIDED “AS-IS” AND TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, WE DISCLAIM ALL OTHER WARRANTIES, CONDITIONS, REPRESENTATIONS OR TERMS, EXPRESS OR IMPLIED, BY STATUTE, COMMON LAW, USAGE OR OTHERWISE, REGARDING THE SOFTWARE AND ANY RELATED SERVICES, INCLUDING THEIR FITNESS FOR A PARTICULAR PURPOSE, THEIR QUALITY, THEIR MERCHANTABILITY, OR THEIR NON-INFRINGEMENT. WE DO NOT WARRANT THAT THE SOFTWARE OR ANY RELATED SERVICES IS SECURE, OR IS FREE FROM BUGS, VIRUSES, ERRORS, OR OTHER PROGRAM LIMITATIONS, OR THAT DEFECTS WILL BE CORRECTED. SOME JURISDICTIONS DO NOT ALLOW EXCLUSION OF IMPLIED WARRANTIES, SO THE ABOVE EXCLUSIONS MAY NOT APPLY TO YOU. THE ENTIRE RISK AS TO THE RESULTS, QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH YOU. NO ADVICE OR INFORMATION, WHETHER ORAL OR WRITTEN, OBTAINED BY YOU FROM US OR OUR EMPLOYEES, REPRESENTATIVE OR AGENTS OR THROUGH OR FROM THE SOFTWARE OR OUR WEBSITE SHALL CREATE ANY WARRANTY NOT EXPRESSLY STATED WITHIN. THIS SECTION WILL SURVIVE THE TERMINATION OF THIS AGREEMENT. + + 9. Limitation of Liability TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL WE, OUR SUBSIDIARIES, OFFICERS, DIRECTORS, SHAREHOLDERS, PARTNERS, EMPLOYEES, AGENTS, CONTRACTORS OR OUR SUCCESSORS BE LIABLE FOR ANY DAMAGES WHATSOEVER, INCLUDING, BUT NOT LIMITED TO PERSONAL INJURY OR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, EXEMPLARY, PUNITIVE, COVER, CONSEQUENTIAL OR OTHER DAMAGES, INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, LOSS OF DATA, LOSS OF USE, COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS INTERRUPTION, LOSS OF GOODWILL OR ANY OTHER COMMERCIAL DAMAGES OR LOSSES, ARISING OUT OF OR RELATED TO THE USE OF, OR INABILITY TO USE, THE SOFTWARE OR ANY RELATED SERVICES OR CONTENT, HOWEVER CAUSED, REGARDLESS OF THE THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, TORT (INCLUDING NEGLIGENCE), PRODUCT LIABILITY OR OTHERWISE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES AND EVEN IF A REMEDY SET FORTH HEREIN IS FOUND TO HAVE FAILED OF ITS ESSENTIAL PURPOSE. WITHOUT LIMITING THE FOREGOING, IN NO EVENT SHALL OUR TOTAL LIABILITY TO YOU FOR ACTUAL DAMAGES FOR ANY CAUSE WHATSOEVER EXCEED THE AMOUNT PAID BY YOU TO LICENSE THE SOFTWARE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE FOREGOING LIMITATION OR EXCLUSION MAY NOT APPLY TO YOU. THESE LIMITATIONS WILL SURVIVE THE TERMINATION OF THIS AGREEMENT. 10. Indemnification You agree to fully indemnify and hold us, our successors, officers, directors, shareholders, partners, employees, agents, contracts and our successors harmless from and against any claim, suit, hearing, action, expense or demand, including without limitation to: all claims for damages, fees or costs (including attorneys’ fees), arising out of or related to the use of the Software and/or any related Services by you, your agents or representatives, anyone under your control, or by any third party using your equipment or accounts to use the Software or Services (for purposes of this section, collectively, “you”); the violation by you of any provision of this Agreement; the violation by you and any laws or regulations; or the infringement or misappropriation by you any copyright, trademark or any other intellectual property right, proprietary right, property right or any other right of ours or any third party. We reserve the right to assume the exclusive defense and control of any matter otherwise subject to indemnification by you, in which event you will cooperate with us in asserting any available defenses and, as set forth above, be fully responsible for our attorneys’ fees. 11. Governing Law The license and this Agreement are governed by and construed in accordance with the laws of the State of Virginia, United States of America. You hereby consent to exclusive jurisdiction and venue in the County of Bedford and State of Virginia. By agreeing to the terms of this Agreement, you are waiving any claims that you might otherwise have against IPS based on the laws of other jurisdictions. 12. Severability If, for any reason, a court of competent jurisdiction deems any provision or part of this Agreement to be unlawful or unenforceable, the remainder of the Agreement shall remain in full force and effect. \ No newline at end of file diff --git a/admin/install/html/global/globalTemplate.phtml b/admin/install/html/global/globalTemplate.phtml index 76dc43dd..11ace738 100644 --- a/admin/install/html/global/globalTemplate.phtml +++ b/admin/install/html/global/globalTemplate.phtml @@ -21,7 +21,7 @@ - +
@@ -85,7 +86,6 @@ Install Guide
{{endif}} -

Nulled by IAF

diff --git a/admin/install/html/global/healthcheck.phtml b/admin/install/html/global/healthcheck.phtml index fe9309c5..99cf214a 100644 --- a/admin/install/html/global/healthcheck.phtml +++ b/admin/install/html/global/healthcheck.phtml @@ -15,8 +15,8 @@

None of these items are required in order to continue with the installation right now. However, they will be required in a future version of IPS Community Suite. You should make a note of them and contact your hosting provider or system administrator after the installation to address them. You can re-run these checks later from the Support section of the Administrator Control Panel.

{{endif}} diff --git a/admin/install/js/multipleRedirect.js b/admin/install/js/multipleRedirect.js index d448e124..eea4ac69 100644 --- a/admin/install/js/multipleRedirect.js +++ b/admin/install/js/multipleRedirect.js @@ -6,6 +6,7 @@ $(function(){ $.ajax( url, { dataType: 'json', + cache: false, timeout: IPS_TIMEOUT !== false ? parseInt( IPS_TIMEOUT * 1000 ) : 30000, complete: function( jqXHR, textStatus ) { diff --git a/admin/install/lang.php b/admin/install/lang.php index f6fbe24e..5f821fd6 100644 --- a/admin/install/lang.php +++ b/admin/install/lang.php @@ -32,8 +32,9 @@ $lang = array( 'err_password_length' => "Passwords must be at least 3 characters", 'requirements_php_version_success' => "PHP version %s.", + 'requirements_php_version_success_53x' => "PHP version %s. Please see advice below", 'requirements_php_version_fail' => "You are running PHP version %s. You need PHP 5.3.0 or above. You should contact your hosting provider or system administrator to ask for an upgrade.", - 'requirements_php_version_advice' => "You are running PHP version %s. While this version is compatible, we recommend version 5.4.0 or above.", + 'requirements_php_version_advice' => "You are running PHP version %s which is now end of life.
Please note that IPS Community Suite 4.1.1 and newer will require PHP 5.4.0 as a minimum.
You can continue to install IPS Community Suite 4.1.0 using your current PHP version.", 'requirements_curl_success' => "cURL extension loaded.", 'requirements_curl_fopen' => "fsockopen function available", 'requirements_curl_advice' => "You do not have the cURL PHP extension loaded or it is running a version less than 7.36. While this is not required, it is recommended.", diff --git a/admin/upgrade/html/forms/queries.phtml b/admin/upgrade/html/forms/queries.phtml index e5f89a64..e494df9c 100644 --- a/admin/upgrade/html/forms/queries.phtml +++ b/admin/upgrade/html/forms/queries.phtml @@ -6,7 +6,8 @@
{$query}{{if mb_substr( $query, -1 ) != ';'}};{{endif}}
{{endforeach}}
- {lang="manual_query_auto"} + {{$mr = \IPS\core\Setup\Upgrade::adjustMultipleRedirect( array( 'extra' => array( 'lastSqlId' => $_SESSION['lastJsonIndex'] - 0.1 ) ) );}} + {lang="manual_query_auto"}  {lang="or"}  {lang="manual_query_manual"}
\ No newline at end of file diff --git a/admin/upgrade/html/global/globalTemplate.phtml b/admin/upgrade/html/global/globalTemplate.phtml index d0bba944..2154e7a7 100644 --- a/admin/upgrade/html/global/globalTemplate.phtml +++ b/admin/upgrade/html/global/globalTemplate.phtml @@ -21,7 +21,7 @@ - +
@@ -80,7 +81,6 @@ Install Guide
{{endif}} -

Nulled by IAF

diff --git a/admin/upgrade/html/global/healthcheck.phtml b/admin/upgrade/html/global/healthcheck.phtml index eccbfaa2..2fb63378 100644 --- a/admin/upgrade/html/global/healthcheck.phtml +++ b/admin/upgrade/html/global/healthcheck.phtml @@ -28,8 +28,8 @@

None of these items are required in order to continue with the upgrade right now. However, they will be required in a future version of IPS Community Suite. You should make a note of them and contact your hosting provider or system administrator after the upgrade to address them. You can re-run these checks later from the Support section of the Administrator Control Panel.

{{endif}} diff --git a/admin/upgrade/js/multipleRedirect.js b/admin/upgrade/js/multipleRedirect.js index c1fb2480..2275e3d5 100644 --- a/admin/upgrade/js/multipleRedirect.js +++ b/admin/upgrade/js/multipleRedirect.js @@ -6,6 +6,7 @@ $(function(){ $.ajax( url, { dataType: 'json', + cache: false, timeout: IPS_TIMEOUT !== false ? parseInt( IPS_TIMEOUT * 1000 ) : 30000, complete: function( jqXHR, textStatus ) { diff --git a/admin/upgrade/lang.php b/admin/upgrade/lang.php index 78c6f179..0159d85a 100644 --- a/admin/upgrade/lang.php +++ b/admin/upgrade/lang.php @@ -43,7 +43,7 @@ $lang = array( 'login_err_bad_password' => "The password you entered is incorrect. Please try again (make sure your caps lock is off).", 'login_err_locked_unlock' => "Your account has been locked. Try again in {# [1:minute][?:minutes]}.", 'login_err_locked_nounlock' => "Your account has been locked. Try again later.", - 'login_err_no_cookies' => "Your browser does not accept cookies which is required in order to log in.", + 'login_err_no_cookies' => "Your browser does not accept cookies which are required in order to log in.", 'sign_in_with_these' => "Or sign in with one of these services", 'login_err_remote_validate' => "You must validate your account at another site before you can log in successfully. Please click here to validate your account.", 'login_connect_generic_error' => "There was an error processing your login request at one of the sites in our network.", @@ -58,8 +58,9 @@ $lang = array( 'login_live' => "Sign in with Microsoft", 'requirements_php_version_success' => "PHP version %s.", + 'requirements_php_version_success_53x' => "PHP version %s. Please see advice below", 'requirements_php_version_fail' => "You are running PHP version %s. You need PHP 5.3.0 or above. You should contact your hosting provider or system administrator to ask for an upgrade.", - 'requirements_php_version_advice' => "You are running PHP version %s. While this version is compatible, we recommend version 5.4.0 or above.", + 'requirements_php_version_advice' => "You are running PHP version %s which is now end of life.
Please note that IPS Community Suite 4.1.1 and newer will require PHP 5.4.0 as a minimum.
You can continue to upgrade to IPS Community Suite 4.1.0 using your current PHP version.", 'requirements_curl_success' => "cURL extension loaded.", 'requirements_curl_fopen' => "fsockopen function available", 'requirements_curl_advice' => "You do not have the cURL PHP extension loaded or it is running a version less than 7.36. While this is not required, it is recommended.", @@ -487,4 +488,13 @@ $lang = array( '100003_no_convert' => "Don't convert", '100003_convert' => "Convert", '100003_convert_desc' => "In this version of IPS Community Suite, members can no longer add other members as friends. However members can follow other members and receive notifications when the members they are following post. You can convert friends to followers, so any members who are friends with another member will now be following them, however this will mean they will start receiving notifications which may be undesired. It is recommended you do not convert.", + + /* ! 101000 revert globalTemplate */ + '101000_globalTemplate_revert' => "Revert custom themes which contain out of date globalTemplate templates?", + '101000_globalTemplate_revert_desc' => "In IPS Community Suite 4.1, the template 'utilitiesMenu' has been removed. This is used within the globalTemplate. After upgrading, you may see a message about the theme being out of date if you do not revert.
Reverting templates will lose any customizations", + '101000_yes' => "Yes, revert losing customiztions", + '101000_no' => "No, I will manually adjust the templates after upgrading", + + /* ! CMS 101000 Options */ + '40000_cms_htmlconversion' => "Pages HTML", ); \ No newline at end of file diff --git a/applications/blog/Application.php b/applications/blog/Application.php index 192b6c43..b3798cf7 100644 --- a/applications/blog/Application.php +++ b/applications/blog/Application.php @@ -49,6 +49,6 @@ class _Application extends \IPS\Application */ protected function get__icon() { - return 'file-text-o'; + return 'file-text'; } } \ No newline at end of file diff --git a/applications/blog/data/acpmenu.json b/applications/blog/data/acpmenu.json index 1b195ed6..a0f7fee7 100644 --- a/applications/blog/data/acpmenu.json +++ b/applications/blog/data/acpmenu.json @@ -1,16 +1,16 @@ { "blogs": { - "blogs": { - "tab": "community", - "controller": "blogs", - "do": "", - "restriction": "blogs_manage" - }, "settings": { "tab": "community", "controller": "settings", "do": "", "restriction": "settings_manage" + }, + "blogs": { + "tab": "community", + "controller": "blogs", + "do": "", + "restriction": "blogs_manage" } } } \ No newline at end of file diff --git a/applications/blog/data/emails.xml b/applications/blog/data/emails.xml index 17045037..d1796740 100644 --- a/applications/blog/data/emails.xml +++ b/applications/blog/data/emails.xml @@ -1,9 +1,9 @@ - - + +