Version 4.2.0

This commit is contained in:
Neo committed 2025-12-19 05:44:59 -08:00
1 parent 0dc2aee5ed
commit 96997ddd8e
2074 files changed
+125454 -55780

No files matched your search

+6 -15
View File
@@ -1,12 +1,11 @@
<?php
/**
* @brief File Handler: Amazon S3
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
* @license http://www.invisionpower.com/legal/standards/
* @package IPS Community Suite
* @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 12 Jul 2013
* @version SVN_VERSION_NUMBER
*/
namespace IPS\File;
@@ -520,14 +519,7 @@ class _Amazon extends \IPS\File
{
$headers['Content-Length'] = \strlen( $content );
$cacheSeconds = 3600;
$ext = mb_substr( $mimeUri, ( mb_strrpos( $mimeUri, '.' ) + 1 ) );
if ( preg_match( "/\." . preg_quote( $ext, '/' ) . "\.([a-zA-Z0-9]{32})\." . preg_quote( $ext, '/' ) . "$/", $mimeUri ) )
{
/* This is an obfuscated file, so it will change each time the file is updated so it is safe to cache for longer */
$cacheSeconds = 3600 * 24 * 365;
}
$cacheSeconds = 3600 * 24 * 365;
/* Custom Cache-Control */
if( $storageExtension !== NULL AND mb_strpos( $storageExtension, '_' ) !== FALSE )
@@ -541,8 +533,7 @@ class _Amazon extends \IPS\File
}
}
$headers['Cache-Control'] = 'max-age=' . $cacheSeconds;
$headers['Expires'] = date( 'r', time() + $cacheSeconds );
$headers['Cache-Control'] = 'public, max-age=' . $cacheSeconds;
}
/* We need to strip query string parameters for the signature, but not always (e.g. a subresource such as ?acl needs to be included and multi-
+20 -5
View File
@@ -1,12 +1,11 @@
<?php
/**
* @brief File Handler: Database
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
* @license http://www.invisionpower.com/legal/standards/
* @package IPS Community Suite
* @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 06 May 2013
* @version SVN_VERSION_NUMBER
*/
namespace IPS\File;
@@ -153,7 +152,23 @@ class _Database extends \IPS\File
}
return $this->contents;
}
/**
* Replace file contents
*
* @param string $contents New contents
* @return void
*/
public function replace( $contents )
{
/* Ensure any existign files with this name are removed otherwise the wrong file may be selected from the database as it will store multiple copies when replace() is used */
\IPS\Db::i()->delete( 'core_files', array( 'filename=? and container=?', $this->filename, $this->container ) );
parent::replace( $contents );
}
/**
* Save File
*
+21 -6
View File
@@ -1,12 +1,11 @@
<?php
/**
* @brief File Class
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
* @license http://www.invisionpower.com/legal/standards/
* @package IPS Community Suite
* @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 19 Feb 2013
* @version SVN_VERSION_NUMBER
*/
namespace IPS;
@@ -258,7 +257,7 @@ abstract class _File
* @throws \RuntimeException
*/
public static function createFromUploads( $storageLocation, $fieldName=NULL, $allowedFileTypes=NULL, $maxFileSize=NULL, $totalMaxSize=NULL, $flags=0, $callback=NULL, $container=NULL, $obscure=TRUE )
{
{
/* Do we have any uploads? */
if( empty( $_FILES ) )
{
@@ -294,6 +293,22 @@ abstract class _File
throw new \DomainException( \IPS\Member::loggedIn()->language()->addToStack('uploaderr_total_size', FALSE, array( 'sprintf' => array( $totalMaxSize ) ) ) );
}
}
if ( $file['name'] === 'blob' )
{
switch ( $file['type'] )
{
case 'image/png':
$file['name'] .= '.png';
break;
case 'image/jpeg':
$file['name'] .= '.jpg';
break;
case 'image/gif':
$file['name'] .= '.gif';
break;
}
}
if( $callback !== NULL )
{
+5 -6
View File
@@ -1,12 +1,11 @@
<?php
/**
* @brief File Handler: File System
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
* @license http://www.invisionpower.com/legal/standards/
* @package IPS Community Suite
* @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 06 May 2013
* @version SVN_VERSION_NUMBER
*/
namespace IPS\File;
@@ -168,7 +167,7 @@ class _FileSystem extends \IPS\File
*/
public function baseUrl()
{
$url = ( empty( $this->configuration['custom_url'] ) ) ? \IPS\Settings::i()->base_url . $this->configuration['url'] : $this->configuration['custom_url'];
$url = ( empty( $this->configuration['custom_url'] ) ) ? rtrim( \IPS\Settings::i()->base_url, '/' ) . '/' . ltrim( $this->configuration['url'], '/' ) : $this->configuration['custom_url'];
if ( \IPS\Request::i()->isSecure() )
{
$url = str_replace( 'http://', 'https://', $url );
+4 -5
View File
@@ -1,12 +1,11 @@
<?php
/**
* @brief File Handler: FTP
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
* @license http://www.invisionpower.com/legal/standards/
* @package IPS Community Suite
* @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 06 May 2013
* @version SVN_VERSION_NUMBER
*/
namespace IPS\File;
+4 -5
View File
@@ -1,12 +1,11 @@
<?php
/**
* @brief File IteratorIterator
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
* @license http://www.invisionpower.com/legal/standards/
* @package IPS Community Suite
* @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 10 Oct 2013
* @version SVN_VERSION_NUMBER
*/
namespace IPS\File;