Version 4.3.0
This commit is contained in:
1 parent
96997ddd8e
commit
fe1acf984a
1349 files changed
+116159
-67711
No files matched your search
@@ -511,6 +511,8 @@ class _Form
|
||||
$values = array();
|
||||
$name = "{$this->id}_submitted";
|
||||
$uploadFieldNames = array();
|
||||
$uploadRetainDeleted = array();
|
||||
$uploadCurrentFiles = array();
|
||||
|
||||
/* Did we submit the form? */
|
||||
if( isset( \IPS\Request::i()->$name ) and \IPS\Request::i()->csrfKey === \IPS\Session::i()->csrfKey )
|
||||
@@ -596,8 +598,8 @@ class _Form
|
||||
/* If this is dependant on a toggle which isn't set, don't return a value so that it doesn't
|
||||
trigger an error we cannot see */
|
||||
if ( $element->htmlId and in_array( $element->htmlId, $htmlIdsToIgnore ) )
|
||||
{
|
||||
$values[ $_name ] = $element->defaultValue;
|
||||
{
|
||||
$values[ $_name ] = $stringValues ? $element::stringValue( $element->defaultValue ) : $element->defaultValue;
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -611,6 +613,21 @@ class _Form
|
||||
if ( ( $element instanceof Form\Upload ) )
|
||||
{
|
||||
$uploadFieldNames[] = $element->name;
|
||||
if ( $element->options['retainDeleted'] )
|
||||
{
|
||||
$uploadRetainDeleted[] = $element->name;
|
||||
if ( is_array( $element->value ) )
|
||||
{
|
||||
foreach( $element->value AS $value )
|
||||
{
|
||||
$uploadCurrentFiles[] = $value->originalFilename;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$uploadCurrentFiles[] = $element->value->originalFilename;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* If it has an error, set it and return */
|
||||
@@ -668,7 +685,15 @@ class _Form
|
||||
/* At this point we are about to return the values. Any uploaded files are now the responsibility of the controller, so release the hold on them */
|
||||
foreach ( $uploadFieldNames as $name )
|
||||
{
|
||||
\IPS\Db::i()->delete( 'core_files_temp', array( 'upload_key=?', md5( $name . session_id() ) ) );
|
||||
if ( !in_array( $name, $uploadRetainDeleted ) )
|
||||
{
|
||||
\IPS\Db::i()->delete( 'core_files_temp', array( 'upload_key=?', md5( $name . session_id() ) ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
/* If we're retaining deleted files, then remove any files that are actually are a part of the valye */
|
||||
\IPS\Db::i()->delete( 'core_files_temp', array( "upload_key=? AND " . \IPS\Db::i()->in( 'filename', $uploadCurrentFiles ), md5( $name . session_id() ) ) );
|
||||
}
|
||||
}
|
||||
|
||||
/* And return */
|
||||
@@ -696,14 +721,7 @@ class _Form
|
||||
|
||||
if ( $values )
|
||||
{
|
||||
foreach ( $values as $k => $v )
|
||||
{
|
||||
\IPS\Db::i()->update( 'core_sys_conf_settings', array( 'conf_value' => $v ), array( 'conf_key=?', $k ) );
|
||||
\IPS\Settings::i()->$k = $v;
|
||||
}
|
||||
|
||||
unset( \IPS\Data\Store::i()->settings );
|
||||
|
||||
\IPS\Settings::i()->changeValues( $values );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user