Quote:
Originally Posted by Aurous
Well written code, but pages load really slow! Not good for a big site.
Heres what Ive done, which works on client-side:
PHP Code:
//replace (around line 1015) in includes/functions_bbcodeparse.php
return '<img src="' . $link . '" border="0" alt="" />';
//with
return '<img src="' . $link . '" border="0" alt="" OnLoad="if(this.width > 500) {this.width=500; this.style.cursor=\'hand\'; this.title=\'Click Here to open the image in a new window\';}" onClick="javascript:window.open(\'' . $link . '\',\'\',\'scrollbars=1,toolbar=0,resizable=1,menubar=0,directories=0,status=0\')" />';
Thats it. It works fine, but if the images load from your cache, this fails! If theres something that can be done to cached images, this code will work perfectly!
|
I use this:
Code:
/*
LEAVE THIS NOTICE IN PLACE
FI Image Resizing script - Daz - ForumImages.com
For use and distribution terms please check;
http://www.forumimages.com/terms.php
Modifications by Politics.be
-- Onclick handler is automatically handled bij JavaScript now, compatible with IE and Mozilla
*/
var imgResizeMsg = 'Click to view the image';
var imgWidthMax = 600;
var imgWidthSizeTo = 400;
var imgClassName = 'imglimit';
//window.onload = fiImageResize;
function fiImageResize() {
if (document.images.length) {
var docImg = document.images;
for ( var i = 0 ; i < docImg.length ; i++)
if (docImg[i].width > imgWidthMax && docImg[i].id != 'forumlogo') {
docImg[i].width = imgWidthSizeTo;
docImg[i].title = imgResizeMsg;
docImg[i].className = imgClassName;
docImg[i].onclick = fiImageWinOpen;
}
}
}
function fiImageWinOpen(e) {
if( window.event )
window.open(window.event.srcElement.src,'PoliticsViewer','menubar=no, toolbar=no, location=no, directories=no, fullscreen=no, titlebar=yes, hotkeys=no, status=no, scrollbars=yes, resizable=yes');
else
window.open(e.target.src,'PoliticsViewer','menubar=no, toolbar=no, location=no, directories=no, fullscreen=no, titlebar=yes, hotkeys=no, status=no, scrollbars=yes, resizable=yes');
}
This works with cached images too, plus it saves bandwidth if you have a lot of images since it will only be downloaded once if you put it in a separate file and "include" it with src="" in your script tag.
All you have to do is add fiImageResize() to the onLoad handler of your body tag and it will resize all your images.
If you have images that shouldn't be resized, you have to give them an id and them on the following line:
Code:
if (docImg[i].width > imgWidthMax && docImg[i].id != 'forumlogo')
As style for the resized images I use:
Code:
.imglimit {
cursor: pointer;
border: dotted 1px black;
}
It might be usefull to others who don't want to waste load by resizing userposted images.