aboutsummaryrefslogtreecommitdiffstats
path: root/action.php
diff options
context:
space:
mode:
authorplegall <plg@piwigo.org>2015-12-30 16:08:54 +0100
committerplegall <plg@piwigo.org>2015-12-30 16:08:54 +0100
commit6ba0148e646b2a193dc4111bb0a443d8c193e646 (patch)
tree382ecd35afae3522d07377df332f0ecfee1f5045 /action.php
parentf28420acfeb5d69e9ea39cd8d00cf9775d6cea54 (diff)
parent7b653c04d6cfb20366c3bb0e183a521b3c9d22d2 (diff)
Merge branch 'feature/379-multiple-format'
Diffstat (limited to 'action.php')
-rw-r--r--action.php35
1 files changed, 33 insertions, 2 deletions
diff --git a/action.php b/action.php
index 4b92e056c..c26df65e5 100644
--- a/action.php
+++ b/action.php
@@ -57,11 +57,34 @@ function do_error( $code, $str )
exit();
}
+if ($conf['enable_formats'] and isset($_GET['format']))
+{
+ check_input_parameter('format', $_GET, false, PATTERN_ID);
+
+ $query = '
+SELECT
+ *
+ FROM '.IMAGE_FORMAT_TABLE.'
+ WHERE format_id = '.$_GET['format'].'
+;';
+ $formats = query2array($query);
+
+ if (count($formats) == 0)
+ {
+ do_error(400, 'Invalid request - format');
+ }
+
+ $format = $formats[0];
+
+ $_GET['id'] = $format['image_id'];
+ $_GET['part'] = 'f'; // "f" for "format"
+}
+
if (!isset($_GET['id'])
or !is_numeric($_GET['id'])
or !isset($_GET['part'])
- or !in_array($_GET['part'], array('e','r') ) )
+ or !in_array($_GET['part'], array('e','r','f') ) )
{
do_error(400, 'Invalid request - id/part');
}
@@ -116,6 +139,10 @@ switch ($_GET['part'])
case 'r':
$file = original_to_representative( get_element_path($element_info), $element_info['representative_ext'] );
break;
+ case 'f' :
+ $file = original_to_format(get_element_path($element_info), $format['ext']);
+ $element_info['file'] = get_filename_wo_extension($element_info['file']).'.'.$format['ext'];
+ break;
}
if ( empty($file) )
@@ -130,6 +157,10 @@ else if ($_GET['part'] == 'e')
{
pwg_log($_GET['id'], 'other');
}
+else if ($_GET['part'] == 'f')
+{
+ pwg_log($_GET['id'], 'high', $format['format_id']);
+}
$http_headers = array();
@@ -155,7 +186,7 @@ if (!url_is_remote($file))
// HTTP/1.1 only
$http_headers[] = 'Cache-Control: private, must-revalidate, max-age='.$max_age;*/
- if ( isset( $_SERVER['HTTP_IF_MODIFIED_SINCE'] ) )
+ if ('f' != $_GET['part'] and isset( $_SERVER['HTTP_IF_MODIFIED_SINCE'] ) )
{
set_status_header(304);
foreach ($http_headers as $header)