aboutsummaryrefslogtreecommitdiffstats
path: root/admin/photos_add_settings.php
diff options
context:
space:
mode:
authorplegall <plg@piwigo.org>2010-03-08 23:39:53 +0000
committerplegall <plg@piwigo.org>2010-03-08 23:39:53 +0000
commit8dc1b995863426067ff10afacea459062c71c3df (patch)
treed213cbde3f9f4ad86f95ca48a4c2005a1bc1f023 /admin/photos_add_settings.php
parent4ac5c0649e88f55ec9f6bf18bf61e32325aa7820 (diff)
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
Diffstat (limited to 'admin/photos_add_settings.php')
-rw-r--r--admin/photos_add_settings.php155
1 files changed, 155 insertions, 0 deletions
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 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | Piwigo - a PHP based picture gallery |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2010 Pierrick LE GALL http://piwigo.org |
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify |
+// | it under the terms of the GNU General Public License as published by |
+// | the Free Software Foundation |
+// | |
+// | This program is distributed in the hope that it will be useful, but |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
+// | General Public License for more details. |
+// | |
+// | You should have received a copy of the GNU General Public License |
+// | along with this program; if not, write to the Free Software |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA. |
+// +-----------------------------------------------------------------------+
+
+if (!defined('PHOTOS_ADD_BASE_URL'))
+{
+ die ("Hacking attempt!");
+}
+
+// by default, the form values are the current configuration
+// we may overwrite them with the current form values
+$form_values = array();
+
+foreach ($upload_form_config as $param_shortname => $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