ok, I looked at the code and it won't work, or will work erraticly.
GraAfix, you are essentially checking only the image size of the first img posted. If there are two or more images, the 2nd image on will not be checked.
This is because you are running explode and then a second explode only on the first object.
So for example, let say this is the text:
Code:
blah blah blah
[img ]http://url.to/pic.1[ /img]
blah blah blah
[img ]http://url.to/pic.2[ /img]
blah blah blah
[img ]http://url.to/pic.3[ /img]
When we pass it through your code, this is what happens:
$thispic=explode('[img ]',$bbcode);, we get the following array values:
$thispic[0] = blah blah blah
$thispic[1] = http://url.to/pic.1[ /img] blah blah blah
$thispic[2] = http://url.to/pic.2[ /img] blah blah blah
$thispic[3] = http://url.to/pic.3[ /img]
What your code then does, is run explode ONLY on $thispic[1] -- ie, on the first image only:
$thispic1=explode('[/img]',$thispic[1]);, we get the following array values:
$thispic1[0] = http://url.to/pic.1
$thispic1[1] = blah blah blah
At that point you are checking the image size for $thispic1 -- meaning, for image #1.
Now, not only are you not check the size for the REST of the pictures, but also the size of the FIRST image will dictate how the REST of the images will be displayed:
$size = GetImageSize("$thispic1[0]");
if ($size[0] > 400)
If the first image is smaller than 400, then ALL pictures in the post will be displayed in their FULL size.
If the first image is bigger than 400, then ALL pictures in the post will be displayed with width=400, even if they are smaller than 400!
And, if the script cannot get the size for the first image (broken link, php version smaller than 4.0.5) then ALL images in the post will be displayed in full size.
Hence, this hack is now production. I suggest FireFly moves it to the Beta forum, where we can continue developing it and overcoming all the limitations.