Andy, GalleryManagerGD. Is it possible to have some sort of function that will pull the dimensions of the image and add width="" and height="" to the <img src=...> tag?
Feb 24, 2010, 11:54 PM
Veteran / Moderator (17366 posts)
Feb 24, 2010, 11:54 PM
Post #2 of 3
Views: 429
Hi,
This is something I use on my-free-css-templates.com to do it:
Add the following to /admin/Plugins/Thumb_Images_GD.pm:
# -------------------------------------------------------------------
# This subroutine will get called whenever a tag is called in the templates.
# It will grab the URL to the file...small file that is...and return it
# Call with <%Plugins::Thumb_Images::ThumbURL($ID,FieldName)%>
my ($ID,$field,$table) = @_;
use Image::Size 'html_imgsize';
$table ||= 'Links';
# make sure a fieldname and ID are provided...
if (!$ID || !$field) { return "You need to define the ID and fieldname. Example: <\;%Plugins::Thumb_Images::ThumbURL(\$ID,FieldName)%>\;"; }
# get the actual path to where the file is/will be saved...
my $schema = $DB->table('Links')->cols;
my $path = $schema->{$field}->{'file_save_in'};
$path =~ s,/$,,; # get rid of trailing / at end of $path
# now lets grab the path to this image...from $hit->{ID}
my $col = $field; # column name where file is held
my $tbl = $DB->table( 'Links' );
my $fh = $tbl->file_info( $col, $ID ); # return a glob reference to the file that you can print <$fh> if you want
my $rel_path;
if ($fh) {
$rel_path = $fh->File_RelativePath;
}
undef $fh; # explicit close of the filehandle for good measure
# create the variable for where the small image will be held...
my @img_create = split("/",$rel_path);
my $count = $#img_create;
# create the path, and small image name...
my $rel_path_small = undef; # make sure we have this variable as an undef, otherwise we get probs...
for (my $i = 0; $i < $count; $i++) { $rel_path_small .= $img_create[$i] . "/"; }
$rel_path_small .= "small-" . $img_create[$count]; # create the small image name...
my $the_path = $path . $rel_path_small;
return html_imgsize($the_path);
}
..then in your template (link.html), run:
Then just add this in the <img bit, where you want to set the dimensions:
This outputs stuff like:
<img src="http://my-free-css-templates.com.nmsrv.com/static/uploads/9/small-1089-Screenshots2.jpg" alt="Blue 3 Column Free Template" border="0" height="82" width="100">
Hope that helps :)
Cheers
Andy (mod)
andy@ultranerds.co.uk
IMPORTANT: I've now moved to ultranerds.co.uk, and the .com will no longer work!
Want to give me something back for my help? Please see my Amazon Wish List
GLinks ULTRA Package (plugins total "value" $3,325 & rising, for just $350)| GLinks ULTRA Package PRO (plugins total "value" $5,625 & rising, for just $500)
Support Forum | Links SQL Plugins | DMOZ Dumps | UltraNerds | ULTRAGLobals Plugin | Pre-Made Template Sets | FREE GLinks Plugins!
Compare our different Plugin packages *new* Free CSS Templates
This is something I use on my-free-css-templates.com to do it:
Add the following to /admin/Plugins/Thumb_Images_GD.pm:
Code:
sub ThumbSize { # -------------------------------------------------------------------
# This subroutine will get called whenever a tag is called in the templates.
# It will grab the URL to the file...small file that is...and return it
# Call with <%Plugins::Thumb_Images::ThumbURL($ID,FieldName)%>
my ($ID,$field,$table) = @_;
use Image::Size 'html_imgsize';
$table ||= 'Links';
# make sure a fieldname and ID are provided...
if (!$ID || !$field) { return "You need to define the ID and fieldname. Example: <\;%Plugins::Thumb_Images::ThumbURL(\$ID,FieldName)%>\;"; }
# get the actual path to where the file is/will be saved...
my $schema = $DB->table('Links')->cols;
my $path = $schema->{$field}->{'file_save_in'};
$path =~ s,/$,,; # get rid of trailing / at end of $path
# now lets grab the path to this image...from $hit->{ID}
my $col = $field; # column name where file is held
my $tbl = $DB->table( 'Links' );
my $fh = $tbl->file_info( $col, $ID ); # return a glob reference to the file that you can print <$fh> if you want
my $rel_path;
if ($fh) {
$rel_path = $fh->File_RelativePath;
}
undef $fh; # explicit close of the filehandle for good measure
# create the variable for where the small image will be held...
my @img_create = split("/",$rel_path);
my $count = $#img_create;
# create the path, and small image name...
my $rel_path_small = undef; # make sure we have this variable as an undef, otherwise we get probs...
for (my $i = 0; $i < $count; $i++) { $rel_path_small .= $img_create[$i] . "/"; }
$rel_path_small .= "small-" . $img_create[$count]; # create the small image name...
my $the_path = $path . $rel_path_small;
return html_imgsize($the_path);
}
..then in your template (link.html), run:
Code:
<%set image_size_small = Plugins::Thumb_Images::ThumbSize ($ID,'Image')%>Then just add this in the <img bit, where you want to set the dimensions:
Code:
<%image_size_small%>This outputs stuff like:
<img src="http://my-free-css-templates.com.nmsrv.com/static/uploads/9/small-1089-Screenshots2.jpg" alt="Blue 3 Column Free Template" border="0" height="82" width="100">
Hope that helps :)
Cheers
Andy (mod)
andy@ultranerds.co.uk
IMPORTANT: I've now moved to ultranerds.co.uk, and the .com will no longer work!
Want to give me something back for my help? Please see my Amazon Wish List
GLinks ULTRA Package (plugins total "value" $3,325 & rising, for just $350)| GLinks ULTRA Package PRO (plugins total "value" $5,625 & rising, for just $500)
Support Forum | Links SQL Plugins | DMOZ Dumps | UltraNerds | ULTRAGLobals Plugin | Pre-Made Template Sets | FREE GLinks Plugins!
Compare our different Plugin packages *new* Free CSS Templates

