I just upgraded from 1.2x to 1.3 and before I start digging to see if I have a problem, I thought I'd ask the 's' parameter to i.php has changed. Before I upgraded, I had my thumb size set to 100 and my image size set to 640. If I accessed a picture like:
I would get an image with the size of 640. After the upgrade I would get an image the size of the thumb (100). I currently have the thumb size set to 640 so that all my reverences to my pictures remain as before.
My question; Does the s=default parameter do the same thing as the s=thumb parameter in 1.3?
As a side note, if you access the picture above you get the url
Note the 640_thumb.jpg name.
Actually s should be a numeric value, I really don't remember that it ever was "default" or "thumb" actually. I really don't think we have changed those parameters (but 1.2 is quite a while ago...). The parameters are explained in the comments at the beginning of the i.php file.
Of course some internal handling might have changed since but if you set up your theme correctly Zenphoto does all automatically.
I saved a copy of zenPhoto before the upgrade so I did a little investigation to see what happened. I found that in the 1.2.x version of i.php at line 63 the code looked like:
`
$args = array(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
if (isset($_GET['s'])) { //0
$args[0] = $_GET['s'];
}
`
the 1.3 version has changed to:
`
$args = array(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
if (isset($_GET['s'])) { //0
$args[0] = min(abs($_GET['s']), MAX_SIZE);
}
`
with the min function $args[0] would never contain 'default' which is used in the function getImageParameters
`
@list($size, $width, $height, $cw, $ch, $cx, $cy, $quality, $thumb, $crop, $thumbstandin, $WM, $adminrequest, $gray) = $args;
$thumb = $thumbstandin;
debugLog("functions-basic.php: \$size1=$size");
if ($size == 'thumb') {
$thumb = true;
if ($thumb_crop) {
$cw = $thumb_crop_width;
$ch = $thumb_crop_height;
}
$size = round($thumb_size);
} else {
if ($size == 'default') {
$size = $image_default_size;
debugLog("functions-basic.php: \$size=$size");
} else if (empty($size) || !is_numeric($size)) {
$size = false; // 0 isn't a valid size anyway, so this is OK.
} else {
$size = round($size);
}
}
`
I did a quick mode to i.php to check for 's' being numeric before calling min
`
$args = array(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
if (isset($_GET['s'])) { //0
if (is_numeric(abs($_GET['s']))) {
$args[0] = min(abs($_GET['s']), MAX_SIZE);
}
else {
$args[0] = $_GET['s'];
}
`
and zenphoto was back to working as before.
So, the question I have now is are the values of 'default' and 'thumb' going to be supported in the future for the parameters 's'? Or would I be better just setting 's' to a numeric value (I'll only need to change about 200 references LOL).
Is using i.php the the correct way to access photos in zenphoto from an external site assuming I don't want to access the original photo directly?