Create a function to save upload form settings.

git-svn-id: http://piwigo.org/svn/trunk@10589 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
patdenice 2011-04-23 08:51:53 +00:00
commit 6597975404
3 changed files with 90 additions and 109 deletions

View file

@ -433,56 +433,15 @@ SELECT id, path
if (!empty($update_fields))
{
// Update configuration
// Update upload configuration
$updates = array();
foreach ($update_fields as $field)
{
if (is_bool($upload_form_config[$field]['default']))
{
$value = isset($_POST[$field]);
$updates[] = array(
'param' => 'upload_form_'.$field,
'value' => boolean_to_string($value)
);
}
else
{
$value = null;
if (!empty($_POST[$field]))
{
$value = $_POST[$field];
}
if (preg_match($upload_form_config[$field]['pattern'], $value)
and $value >= $upload_form_config[$field]['min']
and $value <= $upload_form_config[$field]['max'])
{
$conf['upload_form_'.$field] = $value;
$updates[] = array(
'param' => 'upload_form_'.$field,
'value' => $value
);
}
else
{
$updates = null;
break;
}
}
$value = !empty($_POST[$field]) ? $_POST[$field] : null;
$form_values[$field] = $value;
$updates[$field] = $value;
}
if (!empty($updates))
{
mass_updates(
CONFIG_TABLE,
array(
'primary' => array('param'),
'update' => array('value')
),
$updates
);
}
save_upload_form_config($updates);
$template->delete_compiled_templates();
}

View file

@ -178,6 +178,88 @@ function prepare_upload_configuration()
}
}
function save_upload_form_config($data, &$errors=array())
{
if (!is_array($data) or empty($data))
{
return false;
}
$upload_form_config = get_upload_form_config();
$updates = array();
foreach ($data as $field => $value)
{
if (!isset($upload_form_config[$field]))
{
continue;
}
if (is_bool($upload_form_config[$field]['default']))
{
if (isset($value))
{
$value = true;
}
else
{
$value = false;
}
$updates[] = array(
'param' => 'upload_form_'.$field,
'value' => boolean_to_string($value)
);
}
elseif ($upload_form_config[$field]['can_be_null'] and empty($value))
{
$updates[] = array(
'param' => 'upload_form_'.$field,
'value' => 'false'
);
}
else
{
$min = $upload_form_config[$field]['min'];
$max = $upload_form_config[$field]['max'];
$pattern = $upload_form_config[$field]['pattern'];
if (preg_match($pattern, $value) and $value >= $min and $value <= $max)
{
$updates[] = array(
'param' => 'upload_form_'.$field,
'value' => $value
);
}
else
{
array_push(
$errors,
sprintf(
$upload_form_config[$field]['error_message'],
$min,
$max
)
);
}
}
}
if (count($errors) == 0)
{
mass_updates(
CONFIG_TABLE,
array(
'primary' => array('param'),
'update' => array('value')
),
$updates
);
return true;
}
return false;
}
function add_uploaded_file($source_filepath, $original_filename=null, $categories=null, $level=null, $image_id=null)
{
// Here is the plan

View file

@ -80,75 +80,15 @@ if (isset($_POST['submit']))
foreach ($fields as $field)
{
$value = null;
if (!empty($_POST[$field]))
{
$value = $_POST[$field];
}
if (is_bool($upload_form_config[$field]['default']))
{
if (isset($value))
{
$value = true;
}
else
{
$value = false;
}
$updates[] = array(
'param' => 'upload_form_'.$field,
'value' => boolean_to_string($value)
);
}
elseif ($upload_form_config[$field]['can_be_null'] and empty($value))
{
$updates[] = array(
'param' => 'upload_form_'.$field,
'value' => 'false'
);
}
else
{
$min = $upload_form_config[$field]['min'];
$max = $upload_form_config[$field]['max'];
$pattern = $upload_form_config[$field]['pattern'];
if (preg_match($pattern, $value) and $value >= $min and $value <= $max)
{
$updates[] = array(
'param' => 'upload_form_'.$field,
'value' => $value
);
}
else
{
array_push(
$page['errors'],
sprintf(
$upload_form_config[$field]['error_message'],
$min,
$max
)
);
}
}
$value = !empty($_POST[$field]) ? $_POST[$field] : null;
$form_values[$field] = $value;
$updates[$field] = $value;
}
save_upload_form_config($updates, $page['errors']);
if (count($page['errors']) == 0)
{
mass_updates(
CONFIG_TABLE,
array(
'primary' => array('param'),
'update' => array('value')
),
$updates
);
array_push(
$page['infos'],
l10n('Your configuration settings are saved')