login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Foto gallerijen > Galleryscript

Galleryscript

Auteur: niels - 31 augustus 2004 - 11:52 - Gekeurd door: Dennisvb - Hits: 22530 - Aantal punten: 3.83 (3 stemmen)




upload de scripts naar je webspace, standaard staan de mappen op meetings en meetingcomments maar in config.php kan je dit aanpassen, ook verdere variabelen die je kan aanpassen staan daar omschreven.

Gelieve wel de copyrights te laten staan, aangezien het ook voor mij het nodige werk gekost heeft om het script te maken.

Het uiteindelijke gebruik is eenvoudig, upload gewoon per "event" dat je organiseert een mapje dat je een zelf gekozen naam geeft, waarin de foto's zitten.

Code:
---config.php---

  1. <?
  2. ?><head>
  3. <style type="text/css">
  4. <!--
  5. body{font-family: Tahoma, arial, serif;color: #0099FF;font-size:12pt;margin:0px}
  6. a:link, a:visited, a:active {color: #0099FF;text-decoration:none;font-weight:bold}
  7. a:hover{text-decoration:underline}
  8. table{}
  9. .comment{width:640px}
  10. td{}
  11. .centreer{text-align:center}
  12. .eventtitel{text-decoration:underline;font-weight:bold;font-size:16pt}
  13. .comment{width:640px}
  14. div{}
  15. .copyright{font-size:10pt;text-align:center}
  16. -->
  17. </style>
  18. <?
  19. /*
  20. Met behulp van dit script kan je gemakkelijk afbeeldingen in galleryvorm weergeven op je site.
  21. De bestandsnaam mag je wijzigen in eenderwelke, daar deze door het script toch wordt opgevraagd van de server.
  22. Zorg wel dat thumb.php zich in dezelfde directory bevindt.
  23.  
  24. In de map waar de verschillende events staan, mogen geen andere mappen staan.
  25. */
  26.  
  27. /*Als het script op een subdomein staat, gelieve dit dan hieronder te vermelden*/
  28. $subdomain="";
  29.  
  30. /*poort waarmee het (sub)domein bereikt wordt*/
  31. $serverport=80; //poort 80 is standaardpoort
  32.  
  33. /*Geef het relatief pad op vanaf de www-root naar de gallerydir en de comments_dir.
  34. Bij gratis webspace uw gebruikersnaam mee geven indien deze in de url staat achter het domein van uw host.
  35. In de comments_dir kan u per foto een beschrijving geven. De bestandsnaam moet,
  36. op de extensie na, dezelfde zijn als die van de bijhorende foto.
  37. */
  38. $rel_meetings_dir="meetings";
  39. $rel_comments_dir="meetingcomments";
  40.  
  41. /*Extensie van de commentaarbestanden*/
  42. $comment_extension="htm";
  43.  
  44. /*Aantal kolommen voor de thumbnailgalleries*/
  45. $col=3;
  46.  
  47. /*Pagina titels*/
  48. $eventtype='meeting';
  49. $eventtypes='meetings';
  50. $titel_overzicht='Milleniumchat - meetings';
  51. $titel_event='Milleniumchat '.$eventtype.' :';// $event wordt er nog aan gekoppeld
  52.  
  53. /*default mode: slideshow / static */
  54. $defaultmode='slideshow';
  55.  
  56. /*tijd in s dat er gewacht wordt bij het weergeven in slideshow*/
  57. $sleep=4;
  58.  
  59. /*HIER ONDER NIETS VERANDEREN (of op eigen risico)*/
  60. /*DO NOT CHANGE ANYTHING BELOW (or at your own risk)*/
  61.  
  62. if($sleep<1){
  63. $sleep=1;
  64. }
  65.  
  66. $event=$_GET['eid'];
  67. $photo=$_GET['pid'];
  68.  
  69. $domain= $_SERVER['HTTP_HOST'];
  70. $www_root=$_SERVER['DOCUMENT_ROOT'];
  71. $scriptname=$_SERVER['PHP_SELF'];
  72.  
  73. $titel_event.=$event;
  74.  
  75. if($subdomain!=""){
  76. $fp = @fsockopen ("$subdomain.$domain", $serverport, $errno, $errstr, 2);
  77. if ($fp){
  78. for($i=0;$i<strlen($www_root);$i++){
  79. if(substr($www_root,$i,1)=="/"){
  80. $bovenliggend=$i;
  81. }
  82. }
  83. $bovenliggende_map=substr($www_root,0,$bovenliggend);
  84. if ($handle = opendir($bovenliggende_map)) {
  85. while (false !== ($file = readdir($handle))) {
  86. if($file!="." and $file!=".."){
  87. $rootentries[]= $file;
  88. }
  89. }
  90. }
  91. for($i=0;$i<count($rootentries);$i++){
  92. for($j=0;$j
  93. <=strlen($rootentries[$i]);$j++){
  94. if($subdomain==substr($rootentries[$i],$j,strlen($subdomain))){
  95. $new_www_root="$bovenliggende_map/$rootentries[$i]";
  96. }
  97. }
  98. }
  99. $www_root=$new_www_root;
  100. }
  101. }
  102.  
  103. $meetings_dir="$www_root/$rel_meetings_dir";
  104. $comments_dir="$www_root/$rel_comments_dir";
  105.  
  106. $temp_rel_meetings_dir=$rel_meetings_dir;
  107. $temp_rel_comments_dir=$rel_comments_dir;
  108.  
  109. if(!is_dir($meetings_dir)){
  110. for($i=0;$i<strlen($rel_meetings_dir);$i++){
  111. if(substr($rel_meetings_dir,$i,1)=="/"){
  112. $rel_meetings_dir=substr($rel_meetings_dir,$i+1);
  113. break;
  114. }
  115. }
  116. }
  117. if(!is_dir($comments_dir)){
  118. for($i=0;$i<strlen($rel_comments_dir);$i++){
  119. if(substr($rel_comments_dir,$i,1)=="/"){
  120. $rel_comments_dir=substr($rel_comments_dir,$i+1);
  121. break;
  122. }
  123. }
  124. }
  125. $meetings_dir="$www_root/$rel_meetings_dir";
  126. $comments_dir="$www_root/$rel_comments_dir";
  127. ?>

  1. ---thumb.php---
  2.  
  3. <?php
  4. header('Content-type: image/jpeg');
  5.  
  6. $file=$_GET['file'];
  7. $factor=1;
  8.  
  9. $foto = @imagecreatefromjpeg($file);
  10. if(!$foto){
  11. $foto = @imagecreatefromgif($file);
  12. }
  13. if(!$foto){
  14. $foto = @imagecreatefrompng($file);
  15. }
  16. if(!$foto){
  17. $foto = @imagecreatefromwbmp($file);
  18. }
  19. if(!$foto){
  20. $foto = @imagecreatefromstring($file);
  21. }
  22. if(!$foto){
  23. $foto = imagecreate (320, 120); /* Create a blank image */
  24. $bgc = imagecolorallocate ($foto, 255, 255, 255);
  25. $tc = imagecolorallocate ($foto, 0, 0, 0);
  26. imagefilledrectangle ($foto, 0, 0, 160, 120, $bgc);
  27. /* Output an errmsg */
  28. imagestring ($foto, 4, 5, 5, "Thumb kon niet gemaakt worden", $tc);
  29. $factor=2;
  30. }
  31. $foto_dimensions_width = imagesx ($foto);
  32. $foto_dimensions_height = imagesy ($foto);
  33.  
  34. $create_thumb = imagecreatetruecolor (160*$factor, 120);
  35. imagecopyresampled ($create_thumb, $foto, 0, 0, 0, 0, 160*$factor, 120, $foto_dimensions_width, $foto_dimensions_height);
  36. ImageJpeg($create_thumb,'',100);
  37. ?>

  1. ---index.php---
  2.  
  3. <?
  4. include("config.php");
  5. /*HIER ONDER NIETS VERANDEREN (of op eigen risico)*/
  6. /*DO NOT CHANGE ANYTHING BELOW (or at your own risk)*/
  7.  
  8. $eid=$_GET['eid'];
  9. $pid=$_GET['pid'];
  10. if($_SESSION['maxfiles']==''){
  11. $_SESSION['maxfiles']=1;
  12. }
  13.  
  14. if($_GET['mode']=='slideshow'){
  15. if($pid>=$_SESSION['maxfiles']-1){
  16. $pid=0;
  17. }
  18. ?>
  19. <META HTTP-EQUIV="refresh" CONTENT="<? echo $sleep;?>;URL=/<? echo $rel_meetings_dir;?>/index.php?mode=slideshow&eid=<? echo $eid;?>&pid=<? echo $pid+1;?>">
  20. <!-- // Waar 4 het aantal seconden wachten is. // -->
  21. <?
  22. }
  23.  
  24. /*controleren of meetingdir bestaat*/
  25. if(is_dir($meetings_dir)){
  26.  
  27. /*controleren of event bestaat als directory*/
  28. if(!is_dir("$meetings_dir/$event") or $event==""){
  29. if ($handle = opendir($meetings_dir)) {
  30.  
  31. echo "<title>$titel_overzicht</title>";
  32. ?>
  33. </head>
  34. <body>
  35. <div align="center">
  36. Kies uit onderstaande <? echo $eventtypes; ?> om de foto's weer te geven:<br/>
  37. <?
  38. while (false !== ($file = readdir($handle))) {
  39. /*controleren of ingangen directories zijn*/
  40. if(is_dir("$meetings_dir/$file") and $file!="." and $file!=".."){
  41. /*2 arrays vullen met map namen, waarvan 1 met lowercase mapnamen*/
  42. $totaldirs+=1;
  43. $dirlijst[$totaldirs]=$file;
  44. $temp[$totaldirs]=strtolower($file);
  45. }
  46. }
  47. @sort($temp);
  48. @reset($temp);
  49. @sort($dirlijst);
  50. @reset($dirlijst);
  51. for($i=0;$i<count($temp);$i++){
  52. for($j=0;$j<count($temp);$j++){
  53. if($temp[$i]==strtolower($dirlijst[$j])){
  54. $temp[$i]=$dirlijst[$j];
  55. }
  56. }
  57. }
  58.  
  59. @reset($temp);
  60. $dirlijst[0]="";
  61.  
  62. $aant_meetings=count($temp);
  63. if($aant_meetings==0){
  64. echo "<br/>Er zijn nog geen $eventtypes aanwezig.<br/>\n";
  65. }else{
  66. for($i=0;$i<$aant_meetings;$i++){
  67. echo "<a href=\"$scriptname?eid=$temp[$i]\">$temp[$i]</a><br/>\n";
  68. $dirlijst[$i]=$temp[$i];
  69. }
  70. }
  71. /*Gelieve volgende regel te laten staan*/
  72. include('./copyright.htm');
  73. }
  74. }else{
  75. ?>
  76. <title><? echo $titel_event; ?></title>
  77. </head>
  78. <body>
  79. <div align="center">
  80. <?
  81. echo "";
  82. ?>
  83. </head>
  84. <table class=pagina>
  85. <?
  86. /*bestandsnaam samenstellen van opgevraagde foto*/
  87. if ($handle = opendir("$meetings_dir/$event")) {
  88. //echo "Directory handle: $handle\n";
  89. //echo "Files:\n";
  90.  
  91. /* Dit is de juiste manier om door een directory te wandelen. */
  92. /*aantal afbeeldingen tellen*/
  93. $bestandslijst[0]="";
  94. while (false !== ($file = readdir($handle))) {
  95. if($file != "." && $file != ".."){
  96. $totalfiles+=1;
  97. $bestandslijst[$totalfiles]=$file;
  98. }
  99. }
  100. $_SESSION['maxfiles']=count($bestandslijst);
  101. sort($bestandslijst);
  102. reset($bestandslijst);
  103. /*als foto bestaat, deze weergeven*/
  104. if(file_exists("$meetings_dir/$event/".$bestandslijst[$photo]) and !is_dir("$meetings_dir/$event/".$bestandslijst[$photo])){
  105. ?>
  106. <tr>
  107. <td colspan="<? echo $col;?>">
  108. <a href="<? echo $scriptname;?>?eid=<? echo $event;?>">Overzicht <? echo $event;?></a>
  109. </td>
  110. </tr>
  111. <tr>
  112. <td align="left" width="205">
  113. <?
  114. /*als foto id groter is dan 1 een link weergeven naar de vorige en naar de eerste*/
  115. if($photo>1){
  116. echo "<a href=\"$scriptname?mode=".$_GET['mode']."&eid=$event&pid=" . ($photo-1) . "\">Vorige</a>";
  117. }else{
  118. echo "Vorige";
  119. }
  120. ?>
  121. </td>
  122. <td class=centreer>
  123. foto <? echo $photo;?> op <? echo $event;?><br />
  124. <?
  125. if($_GET['mode']=='slideshow'){
  126. echo "<a href=\"$scriptname?mode=static&eid=$event&pid=" . ($photo) . "\">Pauze</a>";
  127. }else{
  128. echo "<a href=\"$scriptname?mode=slideshow&eid=$event&pid=" . ($photo+1) . "\">Afspelen</a>";
  129. }
  130. ?>
  131. </td>
  132. <td align="right" width="205">
  133. <?
  134. /*als foto id kleiner is dan het maximum een link weergeven naar de volgende en naar de laatste*/
  135. if($photo<$totalfiles){
  136. echo "<a href=\"$scriptname?mode=".$_GET['mode']."&eid=$event&pid=" . ($photo+1) . "\">Volgende</a>";
  137. }else{
  138. echo "Volgende";
  139. }
  140. ?>
  141. </td>
  142. </tr>
  143. <tr>
  144. <td colspan="3" align="right">ga naar foto
  145. <?
  146. for($i=1;$i<=$totalfiles;$i++){
  147. if($photo==$i){
  148. echo $i;
  149. }else{
  150. echo " <a href=\"$scriptname?mode=".$_GET['mode']."&eid=$event&pid=" . $i . "\">".$i."</a> ";
  151. }
  152. }
  153. ?>
  154. </td>
  155. </tr>
  156. <tr>
  157. <td colspan="<? echo $col;?>" align="center">
  158. <?
  159. $image_dimensions = @getimagesize("$meetings_dir/$event/".$bestandslijst[$photo]);
  160. $image_width = $image_dimensions[0];
  161. $image_height = $image_dimensions[1];
  162. $factor=$image_width/$image_height;
  163. if($image_width>640){
  164. $image_width=640;
  165. $image_height=$image_width/$factor;
  166. }
  167. if($image_height>480){
  168. $image_height=480;
  169. $image_width=$image_height*$factor;
  170. }
  171. /*if($image_width>$image_height){
  172. $factor=$image_width/$image_height;
  173. $image_width=640;
  174. $image_height=$image_width/$factor;
  175. }else{
  176. $factor=$image_height/$image_width;
  177. $image_height=480;
  178. $image_width=$image_height/$factor;
  179. }*/
  180.  
  181. /*afbeelding weergeven*/
  182. echo "<img src=\"/$rel_meetings_dir/$event/".$bestandslijst[$photo]."\" width=\"$image_width\" height=\"$image_height\">\n";
  183. ?>
  184. </td>
  185. </tr>
  186. <?
  187. $img_prefix_len=strlen($bestandslijst[$photo])-3;
  188. $comment="$comments_dir/$event/".substr($bestandslijst[$photo],0,$img_prefix_len).$comment_extension;
  189. if(file_exists($comment)){
  190. ?>
  191. <tr>
  192. <td colspan="<? echo $col;?>">
  193. <table class=comment><tr><td class=centreer>
  194. <?
  195. include($comment);
  196. ?>
  197. </td></tr>
  198. <?
  199. }
  200. ?>
  201. <tr>
  202. <td colspan="3" align="right">ga naar foto
  203. <?
  204. for($i=1;$i<=$totalfiles;$i++){
  205. if($photo==$i){
  206. echo $i;
  207. }else{
  208. echo " <a href=\"$scriptname?mode=".$_GET['mode']."&eid=$event&pid=" . $i . "\">".$i."</a> ";
  209. }
  210. }
  211. ?>
  212. </td>
  213. </tr>
  214. </table>
  215. </td>
  216. </tr>
  217. <tr>
  218. <td>&nbsp;
  219.  
  220. </td>
  221. <td>
  222. <? include('./copyright.htm');?>
  223. </td>
  224. <td>&nbsp;
  225.  
  226. </td>
  227. </tr>
  228. <?
  229. }else{
  230. /*anders thumbs weergeven*/
  231. ?><tr>
  232. <td colspan="<? echo $col; ?>">
  233. <a href="<? echo $scriptname; ?>">Terug naar het overzicht</a><br/>
  234. </td>
  235. </tr>
  236. <tr>
  237. <td class=eventtitel colspan="<? echo $col; ?>">
  238. <? echo "$event"; ?>
  239. </td>
  240. </tr>
  241. <tr>
  242. <td>
  243. <p style="width:100%; height:400; overflow:scroll;"><table>
  244. <?
  245. if ($handle = opendir("$meetings_dir/$event")) {
  246. while (false !==($file = readdir($handle))) {
  247. if ($file != "." && $file != "..") {
  248. if ($var - ($col * floor($var/$col)) == 0) {
  249. echo "<tr>";
  250. }
  251. $fotoid+=1;
  252.  
  253. $image_dimensions = @getimagesize("$meetings_dir/$event/".$bestandslijst[$fotoid]);
  254. $image_width = $image_dimensions[0];
  255. $image_height = $image_dimensions[1];
  256. $image_size = round(filesize("$meetings_dir/$event/".$bestandslijst[$fotoid])/1024);
  257. echo "<td>";
  258. echo "<a href=\"$scriptname?mode=slideshow&eid=$event&pid=".($fotoid)."\"><img src=\"thumb.php?file=$meetings_dir/$event/$bestandslijst[$fotoid]\" alt=\"foto $fotoid op $event\" style='border: 1px solid #000000;'></img></a>";
  259. echo "</td>";
  260. /*echo "<td valign='bottom' width='203' style='margin: 0px; padding: 2px;'>";
  261. echo "file:<b>$file</b><br/>dimensions: $image_width x $image_height <br/>size: $image_size kB<br/>";
  262. echo "</td>";*/
  263.  
  264. if ($var - ($col * floor($var/$col)) == $col-1){
  265. echo "</tr>";
  266. }
  267.  
  268.  
  269. $var+=1;
  270. }
  271. }
  272. }
  273. ?>
  274. </table></p></td></tr>
  275. <tr><td>
  276. <? include('./copyright.htm');?>
  277. </td></tr>
  278.  
  279. <?
  280. }
  281. closedir($handle);
  282. }
  283. }
  284. } else{
  285. ?>
  286. De map met <? echo $eventtypes; ?> kan niet worden gevonden op de server,<br/> gelieve de configuratie in het script te controleren.
  287. <?
  288. }
  289. ?>
  290. </table>
  291.  
  292. </div>
  293. </body>
  294. </html>
Download code! Download code (.txt)

Download dit script! Bekijk een voorbeeld van dit script!
 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (3)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.156s