|
[ dragan.zm @ 06.03.2006. 10:50 ] @
| Zdravo svima ja sam novi clan, mozete li mi pomoci oko ove galerije.
Hteo bi da mi slike cita iz foldera (to i radi) al da mi uvjek budu prve one koje sam zadnje stavio na server i da klikom otvara novi prozor. Te ako je moguce tam gdje pise Martch bude brojem mjesec koji je u godini.
|
[ dragan.zm @ 06.03.2006. 10:51 ] @
Code:
<?php
$limit = 8; // number of thumbs to show per page.
$w = 80; // max width of thumbnails.
$h = 59; // max height of thumbnails.
$show_folders = 1; // Set to 1 to show folder list, 0 to turn off
$isize = 1; // Set to 1 to display image filesize
$idim = 1; // Set to 1 to display image dimensions
$show_name = 1; // Set to 1 to show image name
$hide_extension = 0; // Set to 1 to hide image extensions from name (jpg, gif, png)
//============================================
// No further options below here.
if($pg = $_GET['pg'])
{
$thumb = (($pg-1)*$limit);
$i = $thumb;
}
//if($thumb = $_GET['thumb'])
// $i = $thumb;
else
$i = 0;
// get the directory name
$dirlist = dirname($_SERVER['SCRIPT_NAME']);
// split it up
$subdir = explode("/", $dirlist);
// reverse it so directory above images is listed
$subdir = array_reverse($subdir);
// page title name is root dir.
$title = str_replace("_", " ", $subdir['0']);
//$my_uri = "http://" . $_SERVER['HTTP_HOST'] . $HTTP_SERVER_VARS["SCRIPT_NAME"];
if(ereg("\.\.", $_GET['d']))
header ("Location: ?");
?>
<html>
<head>
<title>Foto galerija- <? echo $title; ?></title>
<style type="text/css">
body {background-color: #383F47; text-align: center; font-family: verdana; font-size: 12px; color: #000;}
h1 {font-size: 16px; margin: 1em; }
#dirnav {height: 16px; position: relative; margin: auto auto 5px auto; clear: both; border-bottom: 1px solid #aaa; text-align: center; padding: 3px; }
#dirnav ul, #dirnav li {margin: auto; padding: 0; list-style-type: none; }
#dirnav li {float: left; text-align: center; }
#dirnav a {display: block; padding: 2px 5px 2px 5px; }
#thumbs {width: 100%; margin: 10px; border: 1px solid black; clear: both; text-align: center; }
p.thumb {width: <? echo $w+18; ?>px; height: <? echo $h+32; ?>px; margin: 1em; padding: 3px; float: left; font-size: 12px; text-align: center; background-color: #53585D}
#nav {position: relative; margin: auto; clear: both; border-top: 1px solid #aaa; text-align: center; }
#nav ul, #nav li {margin: auto; padding: 0; list-style-type: none; }
#nav li {float: left; text-align: center; }
#nav li.current a.page {font-weight: bold; color: #ddd; }
#nav a {}
#nav a.page {display: block; padding: 2px 5px 2px 5px; }
#nav a.prev, #nav a.next, #nav .prev, #nav .next {display: block; width: 65px; padding: 2px 5px 2px 5px; }
#nav a:hover { }
a {color: #999; text-decoration: none; }
a:hover, a:active {color: #d0d0d0; }
a img {border: 1px solid #777; }
a:hover img {border: 1px solid #d0d0d0; }
a.page {color: #999; }
</style>
</head>
<body>
<?
//-------------------------------- Directory Navigation -----------------------------
function dir_list($dir)
{
global $title;
$dlist = array();
if ($hdir = opendir('./'.$dir))
{
while ($obj = readdir($hdir))
{
if (((preg_match("/^\./",$obj)==0) && (!eregi('^(.*).[php]$', $obj))) && is_dir($dir.$obj))
//if(is_dir($dir.$obj))
$dlist[] = $obj;
}
closedir($hdir);
}
else
die('Nemoguce izlistat fajlove iz direktorija ' . $dir);
asort($dlist);
echo "<div id='dirnav'><ul>\n<li>Folderi:</li>\n";
echo "<li> <a href='?'>$title » </a></li>\n";
$dirtree = explode("/", $_GET['d']); // parse directory tree from passed "d"
if(!$_GET['d'])
array_shift($dirtree); // remove redundant "." directory from tree
foreach ($dirtree as $dirsub)
{
echo "<li> <a href='?d=$dirparent$dirsub'>$dirsub » </a></li>\n";
$dirparent .= $dirsub.'/';
}
foreach ($dlist as $link)
{
echo "<li><a href='?d=$dir$link'>[$link]</a></li>\n";
}
echo "</ul>\n</div>\n";
}
//-------------------------------------Get image file size ----------------------------------
function getfilesize($size)
{
$units = array(' B', ' KB', ' MB', ' GB', ' TB');
for ($i = 0; $size > 1024; $i++) { $size /= 1024; }
return round($size, 2).$units[$i];
}
//-------------------------------------Set which folder we are viewing----------------
if($_GET['d'])
{
$d = $_GET['d'].'/';
$dd = 'd='.$_GET['d'].'&'; // for use in passing to URL strings
$current_dir .= $d;
}
opendir($current_dir);
if ($show_folders)
dir_list($current_dir);
//--------------------------------------- Create list of Images ------------------------
$list = array();
if ($dir = opendir('./'.$current_dir))
{
while ($file = readdir($dir))
{
//if((is_file($file)) && ((!eregi('^(.*).[php]$', $file)) && (!eregi('^(\.htaccess)$', $file))))
// find all JPG, PNG or GIF images
if (eregi('^(.+\.(((j|J)(p|P)(g|G))|((g|G)(i|I)(f|F))|((p|P)(n|N)(g|G))))$', $file))
$list[] = $file;
}
closedir($dir);
}
asort($list); // sort alpha
$numtotal = count($list); //total number of thumbs
if ($thumb)
{
$s = 0;
while($s < $thumb)
{
array_shift($list);
$s++;
}
}
$numremain = count($list); // total remaining thumbs
//-------------------------------------- Create Thumbnails and Gallery ------------------
foreach ($list as $pic)
{
$fp = $current_dir.$pic;
if($i < $thumb+$limit)
{
//echo "<p class='thumb'><tt><a href='$current_dir$pic'><img src='tn/$pic' alt='$pic' /><br />$pic</a> - [".getfilesize(filesize($fp))."]</tt></p>\n";
$image = $currentdir.$pic;
$i_size = getfilesize(filesize($fp));
$i_area = getimagesize($fp);
$i_width = $i_area[0];
$i_height = $i_area[1];
//$i_mtime = date("d F Y ", filemtime($fp));
if ($hide_extension)
$extensions = array(".jpg", ".JPG", ".gif", ".GIF", ".png", ".PNG");
if ($show_name)
$name = str_replace($extensions, '', $pic);
echo "<p class='thumb'>
<tt>
<a href='$current_dir$pic'><img src='image_resize.php?i=$d$pic&w=$w&h=$h' alt='$pic' /><br />
$name<br /></a>\n";
if($idim)
echo " [$i_width x $i_height]";
echo "<br>";
echo date("d F Y", filemtime($pic));
echo "<br>";
if($idim && $isize)
echo " - ";
if ($isize)
echo " [$i_size]";
echo " <br />
</tt>
</p>\n";
$i++;
}
}
//---------------------------------------Page Navigation -----------------------------
$page = 0;
if(!$pg)
$pg = 1;
echo "<div id='nav'>\n<ul>\n";
if($thumb > 0)
echo "<li><a class='prev' href='?".$dd."pg=".($pg-1)."'>« Prev $limit</a></li>\n";
else
echo "<li><div class='prev'>« Prev $limit</div></li>";
while($page*$limit < $numtotal)
{
$page ++;
unset($cur);
if($page == $pg)
{
$cur = ' class="current"';
}
echo "<li$cur><a class='page' href='?".$dd."pg=$page'>[".($page)."]</a></li>\n";
}
if($numremain > $limit)
echo "<li><a class='next' href='?".$dd."pg=".($pg+1)."'>Next $limit »</a></li>\n";
else
echo "<li><div class='next'>Next $limit »</div></li>\n";
?>
</body>
</html>
[ Nemanja Avramović @ 06.03.2006. 18:51 ] @
E mrzi me da prepravljam galeriju ali evo ti nesto sto sam ja pravio. Ovo cita slike sa diska i smeshta ih u bazu (samo zato da bi najnovije bile poslednje [na prvoj strani]). Imas folder ./slike/ i tu ubacujes velike slike a u ./slike/thumbs/ ubacujes male slike. Slike uploadujes preko FTP-a ili kako hoces ali nema web upload-a i GD-a i slicnih stvarcica (galerija je pravljena za odredjeni sajt).
Kada uploadujes nove slike ili obrises neku moras da pozoves ./admin/gal_resync.php
Moras da podesis sledeca dva fajla:
- gal_connection.php
Code:
//folder with images [files]
$picdir = "./slike/"; //start with ./ and include backslash at the end!!!
//MySQL data [table]
$pics = "slike";
//MySQL data [connection]
$dbname = "razno";
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
- gal_index.php
Code:
// Broj ispisa po strani
$per_page = 9; // koliko slika po strani
$perrow = 3; //koliko slika u redu
Samo to podesis, kreiras tabelu iz tables.sql, uploadujes slike (i ove fajlove), pozoves gal_resync.php iz admin foldera i eto ti galerije.
Srecno i vichi ako negde zapne 
[ dragan.zm @ 08.03.2006. 07:47 ] @
Hvala Drug, radi galerija extra. Mislim da kad bi se dodala mogucnost da sam kreira thumbse bila bi jedna od najjednostavnijih i boljih galerija.
Volim ovako jednostavan kod.
[ SmilieBG @ 08.03.2006. 08:49 ] @
pogledaj prvu stranicu PHP foruma, vec je bilo reci o kreiranju thumbnaila ;)
Poz,
Sale
[ migel @ 08.03.2006. 12:17 ] @
Evo ti code za kreiranje thumbnail-a, samo prepravi "gal_index.php".
Code: /*kreiranje thumbnaila*/
/* pocetak */
//dobijanje dimenzija slike i ucitavanje rezultata u niz
$mythumb = getimagesize("slike/".$filename);
function imageResize($width, $height, $target) {
//funkcija za promenu dimenzije slike
if ($width > $height) {
$percentage = ($target / $width);
} else {
$percentage = ($target / $height);
}
//dobijanje nove velicine slike i zaokruzivanje rezultata
$width = round($width * $percentage);
$height = round($height * $percentage);
//vracanje nove velicine u html image tag formatu...
return "width=\"$width\" height=\"$height\"";
}
$nova_velicina = imageResize($mythumb[0], $mythumb[1], 150);//nova velicina slike
echo "<td valign='center' align='center'><a href='".$picdir . $filename."' title='$name' target='_blank'>
<img src='slike/$filename' border='0' $nova_velicina alt='$name'><br />$name</a></td> ";//prikazivanje slike...
/*kreiranje thumbnaila*/
/* kraj */
[Ovu poruku je menjao migel dana 08.03.2006. u 13:48 GMT+1]
[ Nemanja Avramović @ 08.03.2006. 15:48 ] @
Pa koliko sam skontao ovo samo stavlja width i height atribute a ne resize-uje sliku (kao fajl). Sajt za koji sam pravio galeriju nema GD tako da nisam radio automatsko pravljenje thumbs-a... inace to nije problem da se uradi 
[ migel @ 08.03.2006. 20:23 ] @
Citat: JaHvram: Pa koliko sam skontao ovo samo stavlja width i height atribute a ne resize-uje sliku (kao fajl). Sajt za koji sam pravio galeriju nema GD tako da nisam radio automatsko pravljenje thumbs-a... inace to nije problem da se uradi ;)
U pravu si. Moja greska. Skript od malopre nece smanjiti velicinu fajla vec samo dimenzije slike na browser-u. Evo pravog koda. Ovaj skript podesava velicinu slike kao fajla. To radi pomocu funkcije ImageCopyResized.
Treba da se napravi »resize_image.php« i u njega upise sledeci kod:
Code:
<?php
$image = $HTTP_GET_VARS['image'];
if (!$max_width)
$max_width = 100;
if (!$max_height)
$max_height = 80;
$size = GetImageSize($image);
$width = $size[0];
$height = $size[1];
$x_ratio = $max_width / $width;
$y_ratio = $max_height / $height;
if ( ($width <= $max_width) && ($height <= $max_height) ) {
$tn_width = $width;
$tn_height = $height;
}
else if (($x_ratio * $height) < $max_height) {
$tn_height = ceil($x_ratio * $height);
$tn_width = $max_width;
}
else {
$tn_width = ceil($y_ratio * $width);
$tn_height = $max_height;
}
$src = ImageCreateFromJpeg($image);
$dst = ImageCreate($tn_width,$tn_height);
ImageCopyResized($dst, $src, 0, 0, 0, 0,
$tn_width,$tn_height,$width,$height);
header('Content-type: image/jpeg');
ImageJpeg($dst, null, -1);
ImageDestroy($src);
ImageDestroy($dst);
?>
U fajlu »gal_index.php« treba da se zameni sledeci deo koda:
Umesto ovoga
Code:
echo "<td valign='center' align='center'>
<a href='".$picdir . $filename."' title='$name' target='_blank'>
<img src='".$picdir ."thumbs/". $filename."'
border='0' width='300' height='200' alt='$name'>
<br />$name</a></td> ";
Treba ubaciti
Code:
echo "<td valign='center' align='center'>
<a href='".$picdir . $filename."' title='$name' target='_blank'>
<img src='resize_image.php?image=slike/$filename'
border='0' alt='$name'>
<br />$name</a></td> ";
To je sve. Sad bi trebalo da bude OK.
Pozdrav
[ Nemanja Avramović @ 08.03.2006. 22:20 ] @
koristi ImageCopyResampled... i nek se fajl zove gal_resize.php - da bude u stilu
[Ovu poruku je menjao JaHvram dana 08.03.2006. u 23:26 GMT+1]
[ dragan.zm @ 11.03.2006. 22:01 ] @
Hvala Vam puno, ali imam bed jedan. Obrisao sam mysql bazu a izgubio sam upit sto sma imao, moze li mi neko napraviti mysql upit koji ce mi napraviti bazu.
HVALA
[ Nemanja Avramović @ 11.03.2006. 22:18 ] @
Pa baze pravis sa CREATE DATABASE 'ime_baze';
hehe... a tabela za moju galeriju:
Code: CREATE TABLE `slike` (
`id` INT NOT NULL AUTO_INCREMENT ,
`filename` TEXT NOT NULL ,
`md5` TEXT NOT NULL ,
PRIMARY KEY ( `id` )
);
[ dragan.zm @ 16.03.2006. 11:23 ] @
Zasto mi neke slike izgledaju skrpz lose, jedva se vidi dobiju neku prljavu pepelastu boju kad se thmb sam pravi.
[ migel @ 16.03.2006. 12:42 ] @
Citat: dragan.zm: Zasto mi neke slike izgledaju skrpz lose, jedva se vidi dobiju neku prljavu pepelastu boju kad se thmb sam pravi.
Zameni sledece:
Code: $dst = ImageCreate($tn_width,$tn_height);
Sa ovim:
Code: $dst = ImageCreateTrueColor($tn_width,$tn_height);
[ dragan.zm @ 16.03.2006. 22:44 ] @
Hvala puno, probao sam da napravim da mi se slike otvaraju u popup prozoru ali je problem taj u java kodu imaju ' znakovi , tako da kad one ispred " prepravim na ' i ovi drugi ostanu i nece da radi, kako vi to rijesavate.
[ dragan.zm @ 19.03.2006. 20:01 ] @
Molim vas jel ima ko da pomogne da mi se otvaraju slike u popupu ev vec 5 dana pokusavam to uraditi i nece.
[ Nemanja Avramović @ 20.03.2006. 11:31 ] @
Pa najlakse je da ovo:
Code: echo "<td valign='center' align='center'>
<a href='".$picdir . $filename."' title='$name' target='_blank'>
<img src='resize_image.php?image=slike/$filename'
border='0' alt='$name'>
<br />$name</a></td> ";
zamenis sa:
Code: echo "<td valign='center' align='center'>
<a target='_blank' href='".$picdir . $filename."' title='$name' target='_blank'>
<img src='resize_image.php?image=slike/$filename'
border='0' alt='$name'>
<br />$name</a></td> ";
...i to ce otvarati u novom prozoru. A za popup ces morati preko javascripta sa window.open...
[ dragan.zm @ 21.03.2006. 09:21 ] @
Ma znam to, al bas sam zapeo, fora je da u kodu imam:
<a href="#" onClick="poptastic(' http://www.google.com'); return false;">Otvori popup</a>
e sad ako stavim ovo na vrh iznad php koda radi, ako stavim u kod neradi skripta vise jer sadrzi " znakove, ako zamjenim " sa ' onda bi to bilo ok da ti isti znak nema između google.com , pa zar niko nema da to uradi to je minuta posla ko je vec radio s tim.
[ Nemanja Avramović @ 21.03.2006. 19:09 ] @
Pa da sam radio sa tim i da znam napamet kako da ti pomognem rekao bih ti, ali zaista ne znam a trenutno nemam vremena da isprobavam. Da li si probao sa \' i/ili \" - mozda uspe...
[ migel @ 22.03.2006. 11:35 ] @
Ubaci Javascript funciju:
Code:
<script>
<!--
function PopOpen(ime)
{
prozor = window.open (ime, 'Slika',
'height=400,width=500,location=no,menubar=no,resizable=no,status=no,toolbar=no,scrollbars=yes');
}
//-->
</script>
i promeni gal_index.php:
Code:
$href= $picdir . $filename;
echo "<td valign='center' align='center'>
<a href= \"javascript:PopOpen('$href');\" title='$name'><img src='gal_resize.php?image=slike/$filename'
border='0' alt='$name'><br />$name</a></td> ";
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|