From: Garland F. <gar...@fi...> - 2002-11-28 14:24:25
|
Let me make a quick introduction to everybody: Evan is developing a patch to improve the Tiki thumbnail generation, thumbnails will keep the image aspect ration adjusted to the maximum thumbnail size for the gallery and if GD 2+ is installed thumbs will be generated using GD2+ functions instead of the resizebicubic used in the current code. We'll wait for the patched patch :-) ----- Original Message ----- From: "Evan" <ev...@un...> To: "Luis" <lra...@ya...>; <tik...@li...> Sent: Thursday, November 28, 2002 3:16 AM Subject: Re: [Tikiwiki-devel] Re: Tiki patch > Uhhh.... ignore this patch actually... chkgd2 seems to not be working and I > forgot to change something before the diff. I'll post another one in the > morning. > > On Thu, Nov 28, 2002 at 12:54:23AM -0500, Evan said: > > > > Here's a new patch with a new function to check for the existance of gd2. It > > also contains something I just finished tonight which allows for editing of > > existing images if the user uploaded the image or has $tiki_p_admin_galleries > > permissions. > > > > -Evan > > > > On Wed, Nov 27, 2002 at 06:09:10AM -0800, Luis said: > > > > > > > Hi evan, > > > > > > Thanks for your patch for Tiki, unfortunately with GD < 2.0 > > > it does not work, it seems like the function_exists calls > > > are not the way to check the GD version. > > > > > > Since I want to include your patch in 1.3 please contact me > > > at lra...@ya... to see if we can solve this. > > > > > > You can also subscribe and write to the Tiki mailing list if > > > you want. > > > --- lib/tikilib.php.bak Sun Nov 24 23:53:49 2002 > > +++ lib/tikilib.php Thu Nov 28 00:41:11 2002 > > @@ -3489,11 +3489,24 @@ > > $res["xsize"]=imagesx($img); > > $res["ysize"]=imagesy($img); > > // Rebuild the thumbnail for this image > > - $t = imagecreate($gal_info["thumbSizeX"],$gal_info["thumbSizeY"]); > > - print("From: ".$res["xsize"]."x".$res["ysize"]." to: ".$gal_info["thumbSizeX"]."x".$gal_info["thumbSizeY"]."<br/>"); > > - //imagecopyresized ( $t, $img, 0,0,0,0, $gal_info["thumbSizeX"],$gal_info["thumbSizeY"], $res["xsize"], $res["ysize"]); > > - $this->ImageCopyResampleBicubic( $t, $img, 0,0,0,0, $gal_info["thumbSizeX"],$gal_info["thumbSizeY"], $res["xsize"], $res["ysize"]); > > - $tmpfname = tempnam ("/tmp", "FOO").'.jpg'; > > + // First scale the image acording to whichever dimension is larger > > + if ($res["xsize"] > $res["ysize"]) > > + $tscale = ((int)$res["xsize"] / $gal_info["thumbSizeX"]); > > + else > > + $tscale = ((int)$res["ysize"] / $gal_info["thumbSizeY"]); > > + > > + $tw = ((int)($res["xsize"] / $tscale)); > > + $ty = ((int)($res["ysize"] / $tscale)); > > + //print("From: ".$res["xsize"]."x".$res["ysize"]." to: ".$tw."x".$ty."<br/>"); > > + //imagecopyresized ( $t, $img, 0,0,0,0, $tw,$ty, $res["xsize"], $res["ysize"]); > > + if (chkgd2()) { > > + $t = imagecreatetruecolor($tw,$ty); > > + imagecopyresampled($t, $img, 0,0,0,0, $tw,$ty, $res["xsize"], $res["ysize"]); > > + } else { > > + $t = imagecreate($tw,$ty); > > + $this->ImageCopyResampleBicubic( $t, $img, 0,0,0,0, $tw,$ty, $res["xsize"], $res["ysize"]); > > + } > > + $tmpfname = tempnam ("/tmp", "FOO").'.jpg'; > > imagejpeg($t,$tmpfname); > > // Now read the information > > $fp = fopen($tmpfname,"r"); > > @@ -3533,6 +3546,17 @@ > > $imageId = $this->db->getOne($query); > > return $imageId; > > } > > + function edit_image($id,$name,$description) { > > + $name = addslashes(strip_tags($name)); > > + $description = addslashes(strip_tags($description)); > > + $query = "update tiki_images set name='$name', description='$description' where imageId = $id"; > > + $result = $this->db->query($query); > > + if(DB::isError($result)) { > > + $this->sql_error($query,$result); > > + return false; > > + } > > + return true; > > + } > > > > function remove_image($id) > > { > > @@ -3802,6 +3826,23 @@ > > } > > return $ret; > > } > > + function get_random_image() > > + { > > + $query = "select count(*) from tiki_images where galleryId = 1"; > > + $cant = $this->db->getOne($query); > > + $pick = rand(0,$cant-1); > > + $ret = Array(); > > + $query = "select imageId,galleryId,name from tiki_images where galleryId = 1 limit $pick,1"; > > + $result=$this->db->query($query); > > + if(DB::isError($result)) $this->sql_error($query,$result); > > + $res = $result->fetchRow(DB_FETCHMODE_ASSOC); > > + $ret["galleryId"] = $res["galleryId"]; > > + $ret["imageId"] = $res["imageId"]; > > + $ret["name"] = $res["name"]; > > + $query = "select name from tiki_galleries where galleryId = " . $res["galleryId"]; > > + $ret["gallery"] = $this->db->getOne($query); > > + return($ret); > > + } > > > > function wiki_ranking_top_pages($limit) > > { > > @@ -4389,6 +4430,7 @@ > > function list_galleries($offset = 0, $maxRecords = -1, $sort_mode = 'name_desc', $user, $find) > > { > > // If $user is admin then get ALL galleries, if not only user galleries are shown > > + global $tiki_p_admin_galleries; > > $sort_mode = str_replace("_"," ",$sort_mode); > > $old_sort_mode =''; > > if(in_array($sort_mode,Array('images desc','images asc'))) { > > @@ -4401,7 +4443,8 @@ > > } > > > > // If the user is not admin then select it's own galleries or public galleries > > - if($user != 'admin') { > > + //if($user != 'admin') { > > + if ($tiki_p_admin_galleries != 'y') { > > $whuser = "where user='$user' or public='y'"; > > } else { > > $whuser = ""; > > @@ -5677,4 +5720,10 @@ > > function r_compare_changed($ar1, $ar2) { > > return $ar2["lastChanged"] - $ar1["lastChanged"]; > > } > > +function chkgd2(){ > > + $testGD = get_extension_funcs("gd"); // Grab function list > > + if (!$testGD){ echo "GD not even installed."; exit; } > > + if (in_array ("imagegd2",$testGD)) $gd_version = "<2"; // Check > > + if ($gd_version == "<2") return false; else return true; > > +} > > ?> > > > > --- tiki-upload_image.php.bak Mon Nov 25 01:05:42 2002 > > +++ tiki-upload_image.php Thu Nov 28 00:07:28 2002 > > @@ -123,8 +123,20 @@ > > $size_y = imagesy($img); > > // Create thumbnail here > > // Use the gallery preferences to get the data > > - $t = imagecreate($gal_info["thumbSizeX"],$gal_info["thumbSizeY"]); > > - $tikilib->ImageCopyResampleBicubic( $t, $img, 0,0,0,0, $gal_info["thumbSizeX"],$gal_info["thumbSizeY"], $size_x, $size_y); > > + if ($size_x > $size_y) > > + $tscale = ((int)$size_x / $gal_info["thumbSizeX"]); > > + else > > + $tscale = ((int)$size_y / $gal_info["thumbSizeY"]); > > + > > + $tw = ((int)($size_x / $tscale)); > > + $ty = ((int)($size_y / $tscale)); > > + if (chkgd2()) { > > + $t = imagecreatetruecolor($tw,$ty); > > + imagecopyresampled($t, $img, 0,0,0,0, $tw,$ty, $size_x, $size_y); > > + } else { > > + $t = imagecreate($tw,$ty); > > + $tikilib->ImageCopyResampleBicubic( $t, $img, 0,0,0,0, $tw,$ty, $size_x, $size_y); > > + } > > // CHECK IF THIS TEMP IS WRITEABLE OR CHANGE THE PATH TO A WRITEABLE DIRECTORY > > //$tmpfname = 'temp.jpg'; > > $tmpfname = tempnam ("/tmp", "FOO").'.jpg'; > > > > --- /dev/null Fri Nov 22 23:34:05 2002 > > +++ templates/modules/mod-random_image.tpl Mon Nov 25 00:58:19 2002 > > @@ -0,0 +1,19 @@ > > +{if $feature_wiki eq 'y'} > > +<div class="box"> > > +<div class="box-title"> > > +{tr}Random Image{/tr} > > +</div> > > +<div class="box-data"> > > +<center> > > +<table width="98%" border="0" cellpadding="0" cellspacing="0"> > > +<tr> > > +<td align=center> > > +<a href="tiki-browse_image.php?galleryId={$modRandomImage.galleryId}&imageI d={$modRandomImage.imageId}"><img alt="thumbnail" class="athumb" src="show_image.php?id={$modRandomImage.imageId}&thumb=1" /></a><br/> > > +<b>{$modRandomImage.name}</b><br> > > +<small>From <a href="tiki-browse_gallery.php?galleryId={$modRandomImage.galleryId}">{$modRa ndomImage.gallery}</a></small> > > +</td> > > +</tr> > > +</table> > > +</div> > > +</div> > > +{/if} > > > > --- /dev/null Fri Nov 22 23:34:05 2002 > > +++ modules/mod-random_image.php Mon Nov 25 00:31:15 2002 > > @@ -0,0 +1,4 @@ > > +<?php > > +$randimg = $tikilib->get_random_image(); > > +$smarty->assign('modRandomImage',$randimg); > > +?> > > > > --- /dev/null Fri Nov 22 23:34:05 2002 > > +++ templates/tiki-edit_image.tpl Thu Nov 28 00:49:36 2002 > > @@ -0,0 +1,27 @@ > > +<a href="tiki-edit_image.php?galleryId={$galleryId}&edit={$imageId}" class="pagetitle">{tr}Edit Image{/tr}</a><br/><br/> > > +<div align="center"> > > +{if $show eq 'y'}^M > > +<br/>^M > > +<hr>^M > > +<h2>{tr}Edit succesful!{/tr}</h2>^M > > +<h3>{tr}The following image was succesfully edited{/tr}:</h3>^M > > +<hr> > > +<br/> > > +{/if} > > +<img alt="image" src="show_image.php?id={$imageId}" /><br><br> > > +<form enctype="multipart/form-data" action="tiki-edit_image.php" method="post"> > > +<input type="hidden" name="edit" value="{$imageId}"> > > +<input type="hidden" name="galleryId" value="{$galleryId}"> > > +<table class="normal"> > > +<tr><td class="formcolor">{tr}Image Name{/tr}:</td><td class="formcolor"><input type="text" name="name" value="{$name}" /></td></tr> > > +<tr><td class="formcolor">{tr}Image Description{/tr}:</td><td class="formcolor"><textarea rows="5" cols="40" name="description">{$description}</textarea></tr></td> > > +<tr><td class="formcolor"> </td><td class="formcolor"><input type="submit" name="editimage" value="{tr}edit{/tr}" /></td></tr> > > +</table> > > +</form> > > +<br> > > +<div class="linksinfo"> > > +{tr}You can view this image in your browser using{tr}: <a class="gallink" href="http://{$url_browse}?imageId={$imageId}">http://{$url_browse}?imageId= {$imageId}</a><br/> > > +{tr}You can include the image in an HTML or Tiki page using{/tr} <img src="http://{$url_show}?id={$imageId}" /> > > +</div> > > +</div> > > +</div> > > > > --- /dev/null Fri Nov 22 23:34:05 2002 > > +++ tiki-edit_image.php Thu Nov 28 00:51:11 2002 > > @@ -0,0 +1,93 @@ > > +<?php > > +// Initialization > > +require_once('tiki-setup.php'); > > + > > +if($feature_galleries != 'y') { > > + $smarty->assign('msg',tra("This feature is disabled")); > > + $smarty->display('error.tpl'); > > + die; > > +} > > + > > +// Sanity anyone? > > +if (!$_REQUEST['edit'] or !$_REQUEST['galleryId']) { > > + $smarty->assign('msg',tra("Invalid request to edit an image")); > > + $smarty->display('error.tpl'); > > + die; > > +} > > + > > +// Now check permissions to access this page > > +if($tiki_p_upload_images != 'y') { > > + $smarty->assign('msg',tra("Permission denied you cannot edit images")); > > + $smarty->display('error.tpl'); > > + die; > > +} > > + > > +$foo = parse_url($_SERVER["REQUEST_URI"]); > > +$foo1=str_replace("tiki-edit_image","tiki-browse_image",$foo["path"]); > > +$foo2=str_replace("tiki-edit_image","show_image",$foo["path"]); > > +$smarty->assign('url_browse',$_SERVER["SERVER_NAME"].$foo1); > > +$smarty->assign('url_show',$_SERVER["SERVER_NAME"].$foo2); > > + > > +if (isset($_REQUEST["editimage"])) { > > + $smarty->assign('individual','n'); > > + if($userlib->object_has_one_permission($_REQUEST["galleryId"],'image gallery')) { > > + $smarty->assign('individual','y'); > > + if($tiki_p_admin != 'y') { > > + // Now get all the permissions that are set for this type of permissions 'image gallery' > > + $perms = $userlib->get_permissions(0,-1,'permName_desc','','image galleries'); > > + foreach($perms["data"] as $perm) { > > + $permName=$perm["permName"]; > > + if($userlib->object_has_permission($user,$_REQUEST["galleryId"],'image gallery',$permName)) { > > + $$permName = 'y'; > > + $smarty->assign("$permName",'y'); > > + } else { > > + $$permName = 'n'; > > + $smarty->assign("$permName",'n'); > > + } > > + } > > + } > > + } > > + if($tiki_p_admin_galleries == 'y') { > > + $tiki_p_view_image_gallery = 'y'; > > + $tiki_p_upload_images = 'y'; > > + $tiki_p_create_galleries = 'y'; > > + } > > + > > + if($tiki_p_upload_images != 'y') { > > + $smarty->assign('msg',tra("Permission denied you cannot edit images")); > > + $smarty->display('error.tpl'); > > + die; > > + } > > + > > + > > + $gal_info = $tikilib->get_gallery($_REQUEST["galleryId"]); > > + if($gal_info["thumbSizeX"]==0) $gal_info["thumbSizeX"]=80; > > + if($gal_info["thumbSizeY"]==0) $gal_info["thumbSizeY"]=80; > > + // Check the user to be admin or owner or the gallery is public > > + if($tiki_p_admin_galleries!='y' && (!$user || $user!=$gal_info["user"]) && $gal_info["public"]!='y') { > > + $smarty->assign('msg',tra("Permission denied you can edit images but not in this gallery")); > > + $smarty->display('error.tpl'); > > + die; > > + } > > + $error_msg=''; > > + > > + if ($tikilib->edit_image($_REQUEST['edit'],$_REQUEST['name'],$_REQUEST['descrip tion'])) { > > + $smarty->assign('show','y'); > > + } else { > > + $smarty->assign('msg',tra("Failed to edit the image")); > > + $smarty->display('error.tpl'); > > + die; > > + } > > +} > > + > > +$info = $tikilib->get_image($_REQUEST["edit"]); > > +$smarty->assign('show','n'); > > +$smarty->assign_by_ref('imageId',$_REQUEST['edit']); > > +$smarty->assign_by_ref('galleryId',$info['galleryId']); > > +$smarty->assign_by_ref('name',$info['name']); > > +$smarty->assign_by_ref('description',$info['description']); > > + > > +// Display the template > > +$smarty->assign('mid','tiki-edit_image.tpl'); > > +$smarty->display('tiki.tpl'); > > +?> > > > > --- templates/tiki-browse_gallery.tpl.bak Mon Nov 25 00:02:48 2002 > > +++ templates/tiki-browse_gallery.tpl Thu Nov 28 00:18:19 2002 > > @@ -38,11 +38,15 @@ > > <br/> > > > > > > - <a href="tiki-browse_image.php?galleryId={$galleryId}&sort_mode={$sort_mode }&desp={$smarty.section.idx.index}&offset={$offset}&imageId={$im ages[idx].imageId}"><img alt="thumbnail" class="athumb" width="{$thx}" height="{$thy}" src="show_image.php?id={$images[idx].imageId}&thumb=1" /></a> > > + <a href="tiki-browse_image.php?galleryId={$galleryId}&sort_mode={$sort_mode }&desp={$smarty.section.idx.index}&offset={$offset}&imageId={$im ages[idx].imageId}"><img alt="thumbnail" class="athumb" src="show_image.php?id={$images[idx].imageId}&thumb=1" /></a> > > <br/> > > <small class="caption">{$images[idx].name} > > {if $tiki_p_admin_galleries eq 'y' or ($user and $user eq $owner)} > > - <a class="gallink" href="tiki-browse_gallery.php?galleryId={$galleryId}&remove={$images[idx ].imageId}">[x]</a> > > + [ > > + <a class="gallink" href="tiki-browse_gallery.php?galleryId={$galleryId}&remove={$images[idx ].imageId}">x</a> > > + | > > + <a class="gallink" href="tiki-edit_image.php?galleryId={$galleryId}&edit={$images[idx].imag eId}">edit</a> > > + ] > > {/if} > > <br/> > > ({$images[idx].xsize}x{$images[idx].ysize})[{$images[idx].hits} {tr}hits{/tr}]</small> > > > > --- templates/tiki-browse_image.tpl.bak Thu Nov 28 00:59:43 2002 > > +++ templates/tiki-browse_image.tpl Thu Nov 28 00:49:05 2002 > > @@ -6,6 +6,9 @@ > > > > <div class="gallerylink"> > > <a class="gallink" href="tiki-browse_gallery.php?galleryId={$galleryId}">{tr}return to gallery{/tr}</a> > > + {if $tiki_p_admin_galleries eq 'y' or ($user and $user eq $owner)} > > + | <a class="gallink" href="tiki-edit_image.php?galleryId={$galleryId}&edit={$imageId}">{tr}ed it image{/tr}</a> > > + {/if} > > </div> > > > > <div class="showimage"> > > > > ------------------------------------------------------- > This SF.net email is sponsored by: Get the new Palm Tungsten T > handheld. Power & Color in a compact size! > http://ads.sourceforge.net/cgi-bin/redirect.pl?palm0002en > _______________________________________________ > Tikiwiki-devel mailing list > Tik...@li... > https://lists.sourceforge.net/lists/listinfo/tikiwiki-devel |