Page 1 of 1

Limiting Image Width

PostPosted: Sat Apr 29, 2006 2:08 pm
Author: DaveSmooth
I've searched and found things similar to what I need but not exactly. I would like to limit the width of images displayed in my forums, both attached and linked. I think I have it figured out on attachments, but would love to limit the width of a linked image and when its bigger than what I want, reduce it and you can click on the image to see it full sized in a new window. I used to have a mod on an old board-only site but haven't seen one for use with IM. Or can this simply be set some where in ACP and I haven't found it?

Any help would be greatly appreciated.

PostPosted: Sat Apr 29, 2006 2:14 pm
Author: Bush
Here is a thread that discuss a streching bug in IntegraMOD - READ THIS: http://www.integramod.com/forum/viewtopic.php?t=350

Also here is a MOD that I have tested on an IntegraMOD test site of mine and it worked with php 2.0.19 (not tested on 2.0.20)

Code: Select all
############################################################## ## MOD Title]http://www.swizec.com#[/url]# MOD Description: Admin can set the maximum display size of images displayed in posts. Images bigger than that are shrunk and turned into a link to the normal sized version.## MOD Version: 1.2.7## ## Installation Level: Easy## Installation Time: ~3 Minutes ## Files To Edit: ##         includes/bbcode.php##         admin/admin_board.php##         templates/subSilver/bbcode.tpl##         templates/subSilver/admin/board_config_body.tpl##         language/lang_english/lang_main.php##         language/lang_english/lang_admin.php## Included Files: N/A#### License: [url=http://opensource.org/licenses/gpl-license.php]http://opensource.org/licenses/gpl-license.php[/url] GNU General Public License v2############################################################## ## For security purposes, please check: [url=http://www.phpbb.com/mods/]http://www.phpbb.com/mods/[/url] ## for the latest version of this MOD. Although MODs are checked ## before being allowed in the MODs Database there is no guarantee ## that there are no security problems within the MOD. No support ## will be given for MODs not found within the MODs Database which ## can be found at [url=http://www.phpbb.com/mods/#]http://www.phpbb.com/mods/#[/url]############################################################# ## Author Notes: #### demo board: [url=http://www.swizec.com/forum#]http://www.swizec.com/forum#[/url]# ############################################################## ## MOD History: ## ## 2005-04-17 - Version 1.0.0##    - working mod#### 2005-04-17 - Version 1.0.1##    - oops, small bug in the .mod file#### 2005-04-17 - Version 1.0.2##    - omg I'm so fucken hasty#### 2005-05-01 - Version 1.0.3##    - fixed a bug#### 2005-05-01 - Version 1.0.4##    - some slashes got left behind#### 2005-05-02 - Version 1.0.5##    - added "this is thumbnail" notice wished by MaddoxX#### 2005-05-24 - Version 1.0.6##   - use of bbcode.tpl added#### 2005-05-31 - Version 1.0.7##   - getting closer :)#### 2005-05-31 - Version 1.1.0##   -fixed a bug##   -implemented image aligning by pichirichi#### 2005-06-23 - Version 1.1.1##   - fixed XHTML compliancy#### 2005-11-05 - Version 1.1.2##   - fixed for 2.0.18#### 2005-11-11 - Version 1.1.3##   - forgot to change the license and security warning before#### 2005-11-23 - Version 1.1.4##   - small mistake in the HTML#### 2005-12-09 - Version 1.2.0##   - fixed some "pretty" issues##   - fixed slow load issue as best I could##   - and an issue with left, right, center stuff#### 2005-12-17 - Version 1.2.1##   - some minor HTML fixes##   - parsing of "old" images and those that were not getimagesized properly#### 2005-12-17 - Version 1.2.2##   - ok, now parsing of "old" images does actually work :)#### 2005-12-17 - Version 1.2.3##   - some people really take care to report bugs O.o how nice of them#### 2005-12-21 - Version 1.2.4##   - changes to the template were not pretty#### 2005-12-25 - Version 1.2.5##   - there was a bug with small images#### 2006-01-01 - Version 1.2.6##   - coding standards :D## ############################################################## ## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD ##############################################################  # #-----[ SQL ]------------------------------------------ #  INSERT INTO phpbb_config( config_name, config_value ) VALUES ( 'postimg_width', '800' );INSERT INTO phpbb_config( config_name, config_value ) VALUES ( 'postimg_height', '600' );  # #-----[ OPEN ]------------------------------------------ #  includes/bbcode.php  # #-----[ FIND ]------------------------------------------ #  $bbcode_tpl = null;  # #-----[ AFTER, ADD ]------------------------------------------ #  // mod img size addfunction makeimgsize ( $width, $height ) {     global $board_config;         $size = '';         // check for smallness     if ( $width < $board_config['postimg_width'] && $height <board_config> $height )     {         if ( $board_config['postimg_width'] < $width )         {             $size = 'width="' . $board_config['postimg_width'] . '"';         }     }else     {         if ( $board_config['postimg_height'] <height> $img )     {         $stuff = $matches[1][$i];         $stuff = explode( ':', $stuff );         if ( count( $stuff ) != 4 )         { // old image or something             $post = preg_replace( "#[img]([^?].*?)[/img]#i", $bbcode_tpl['img'], $post );         }         switch($stuff[0])         {             case '=right':                 $align = $lang['RIGHT'];                 break;             case '=center':                 $align = 'center';                 break;             case '=left':                 default:                 $align = $lang['LEFT'];             break;         }         $width = $stuff[1];         $height = $stuff[2];         $size = makeimgsize( $width, $height );                 if ( $size != 'SMALL' )         {             $replace = $bbcode_tpl['thmbimg'];             $seek = array( '{IMAGE}', '{WIDTH}', '{HEIGHT}', '{SIZE}', '{NOTICE}', '{ALIGN}' );             $with = ( !empty( $size ) ) ? array( $matches[2][$i] , $width, $height, $size, $lang['postimg_clickme'], $align ) : array( $matches[2][$i] , $width, $height, $size, '', $align );             $replace = str_replace( $seek, $with, $replace );         }         else         {             $replace = str_replace( '1', $matches[2][$i], $bbcode_tpl['img'] );         }         $post = str_replace( $img, $replace, $post );     }             return $post;}// mod img size end  # #-----[ FIND ]------------------------------------------ #  $patterns[] = "#[img]([^?].*?)[/img]#i";  # #-----[ BEFORE, ADD ]------------------------------------------ #  // mod img size replace with call to image parsing function$text = image_parse ( $text, $uid );  # #-----[ FIND ]------------------------------------------ #  $text = preg_replace("#[img]  # #-----[ BEFORE, ADD ]------------------------------------------ #       // mod max img size changed the first pass thingo     preg_match_all( "#[(img.*?)]((http|ftp|https|ftps)://)([^ ?&=#"nrt<]*?(.(jpg|jpeg|gif|png)))[/img]#sie", $text, $matches );     // now we go through these matches and do what's needed     foreach ( $matches[0] as $i => $m )     {         // easier use         $tag = $matches[1][$i];         $url1 = $matches[2][$i];         $url2 = $matches[4][$i];                 // if we already tagged this one then we leave it be ;)         preg_match( '#img.*?:(d+):(d+)#i', $tag, $match );         if ( empty( $match ) )         {             // get the size so we can store it             if ( !$size = @getimagesize( $url1 . $url2 ) )             { // image will not get resized                 $width = '';                 $height = '';             }             else             {                 $width = $size[0];                 $height = $size[1];             }         }         else         { // we already have the size             $width = $match[1];             $height = $match[2];         }         $tag = explode( ':', $tag ); // remove any possible left over : stuff         $tag = $tag[0];         // lastly we replace it within the text         $text = str_replace( $m, '[' . $tag . ':' . $width . ':' . $height . ':' . $uid . ']' . $url1 . $url2 . '[/img]', $text );     }  # #-----[ IN-LINE FIND ]------------------------------------------ #  $text  # #-----[ IN-LINE BEFORE, ADD ]------------------------------------------ #  //  # #-----[ AFTER, ADD ]------------------------------------------ #  // end mod img size changes  # #-----[ OPEN ]------------------------------------------ #  admin/admin_board.php  # #-----[ FIND ]------------------------------------------ #  $namechange_no = ( !$new['allow_namechange'] ) ? "checked="checked"" : "";  # #-----[ AFTER, ADD ]------------------------------------------ #  // mod img size add$postimg_width = $new['postimg_width'];$postimg_height = $new['postimg_height'];// mod img size end  # #-----[ FIND ]------------------------------------------ #  "L_RESET" => $lang['Reset'],  # #-----[ AFTER, ADD ]------------------------------------------ #  // mod img size add"L_POSTIMG_SIZE" => $lang['postimg_size'],"POSTIMG_WIDTH" => $postimg_width,"POSTIMG_HEIGHT" => $postimg_height,// mod img size end  # #-----[ OPEN ]------------------------------------------ #  templates/subSilver/bbcode.tpl  # #-----[ FIND ]------------------------------------------ #  <END>  # #-----[ AFTER, ADD ]------------------------------------------ #  <BEGIN><div>  <table>   <tr>    <td><img></td>   </tr>   <tr>    <td><i>{NOTICE}</i></td>   </tr>  </table></div><END>  # #-----[ OPEN ]------------------------------------------ #  templates/subSilver/admin/board_config_body.tpl         # #-----[ FIND ]------------------------------------------ #       <tr>         <td>{L_ENABLE_PRUNE}</td>         <td><input> {L_YES}  <input> {L_NO}</td>     </tr>     # #-----[ AFTER, ADD ]------------------------------------------ #       <tr>         <td>{L_POSTIMG_SIZE}</td>         <td><input> X <input></td>     </tr>  # #-----[ OPEN ]------------------------------------------ #  language/lang_english/lang_main.php  # #-----[ FIND ]------------------------------------------ #  ?>  # #-----[ BEFORE, ADD ]------------------------------------------ #  // mod img size add$lang['postimg_clickme'] = 'Thumbnail, click to enlarge.';     # #-----[ OPEN ]------------------------------------------ #  language/lang_english/lang_admin.php  # #-----[ FIND ]------------------------------------------ #  ?>  # #-----[ BEFORE, ADD ]------------------------------------------ #  // mod img size add$lang['postimg_size'] = 'Maximum size of images in posts';  # #-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ # # EoMp


REMEMBER: This is not my code above, but i have tested it. PLEASE backup all files and database befor installing this MOD ^_^

Hope this helps,

Bush

PostPosted: Sat Apr 29, 2006 2:23 pm
Author: DaveSmooth
Yea, I've got some of that implemented to help with text, but inevitably someone will link to a 800px wide image and the whole thing goes south. I'll look into that mod though, thanks!

Re: Limiting Image Width

PostPosted: Sat Apr 29, 2006 4:15 pm
Author: evolver
We have also been discussing this on
http://integramod.com/forum/viewtopic.php?p=3212#3212
...for the IMG-tag

I think that there has to be a way to use the no_thread_stretch MOD on those images as well...
...but we are still looking into this...

For attachments see this topic:
http://www.integramod.com/forum/viewtop ... =3543#3543