From 8dc1b995863426067ff10afacea459062c71c3df Mon Sep 17 00:00:00 2001 From: plegall Date: Mon, 8 Mar 2010 23:39:53 +0000 Subject: feature 1489: integrate UploadForm into Piwigo core. The integration is not 100% done, I just "made it work" on trunk. pclzip library was updated to version 2.8.2 for memory usage improvement. git-svn-id: http://piwigo.org/svn/trunk@5089 68402e56-0260-453c-a942-63ccdbb3a9ee --- admin/photos_add_settings.php | 155 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 admin/photos_add_settings.php (limited to 'admin/photos_add_settings.php') diff --git a/admin/photos_add_settings.php b/admin/photos_add_settings.php new file mode 100644 index 000000000..3deecb317 --- /dev/null +++ b/admin/photos_add_settings.php @@ -0,0 +1,155 @@ + $param) +{ + $param_name = 'upload_form_'.$param_shortname; + $form_values[$param_shortname] = $conf[$param_name]; +} + +// +-----------------------------------------------------------------------+ +// | process form | +// +-----------------------------------------------------------------------+ + +if (isset($_POST['submit'])) +{ + $updates = array(); + + // let's care about the specific checkbox that disable/enable other + // settings + $field = 'websize_resize'; + + if (empty($_POST[$field])) + { + $value = false; + } + else + { + $fields[] = 'websize_maxwidth'; + $fields[] = 'websize_maxheight'; + $fields[] = 'websize_quality'; + + $value = true; + } + + $updates[] = array( + 'param' => 'upload_form_'.$field, + 'value' => boolean_to_string($value), + ); + $form_values[$field] = $value;; + + // and now other fields, processed in a generic way + $fields[] = 'thumb_maxwidth'; + $fields[] = 'thumb_maxheight'; + $fields[] = 'thumb_quality'; + + foreach ($fields as $field) + { + $value = null; + if (!empty($_POST[$field])) + { + $value = $_POST[$field]; + } + $form_values[$field] = $value; + + if ($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( + l10n($upload_form_config[$field]['error_message']), + $min, + $max + ) + ); + } + } + } + + 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') + ); + } +} + +// +-----------------------------------------------------------------------+ +// | template init | +// +-----------------------------------------------------------------------+ + +// specific case, "websize_resize" is a checkbox +$field = 'websize_resize'; +$form_values[$field] = $form_values[$field] ? 'checked="checked"' : ''; + +$template->assign( + array( + 'F_ADD_ACTION'=> PHOTOS_ADD_BASE_URL, + 'values' => $form_values + ) + ); + + +// +-----------------------------------------------------------------------+ +// | sending html code | +// +-----------------------------------------------------------------------+ + +$template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content'); +?> \ No newline at end of file -- cgit v1.2.3