View Single Post
  #75  
Old 09-28-2004, 10:42 PM
dis.pater dis.pater is offline
 
Join Date: Jul 2004
Posts: 5
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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.
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01432 seconds
  • Memory Usage 1,784KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (3)bbcode_code
  • (1)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete