Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Sortiranje galerije slika

[es] :: PHP :: Sortiranje galerije slika

[ Pregleda: 168 | Odgovora: 1 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

sarmudin

Član broj: 82990
Poruke: 20
*.dsl.iskon.hr.



Profil

icon Sortiranje galerije slika07.06.2008. u 14:16

Nasao sam odlicnu galeriju slika za web stranicu, koja radi baš ono šta ja želim. Ideja je bila da skripta prodje po direktoriju u kojem su slike i od slika napravi thumbove i polinka ih na original sliku (i kasnije ce bit dodan lightbox efekt) s mogucnoscu podesavanja izgleda u CSS-u. Nakon par dana trazenja i isprpobavanja sam nasao taman ono sta mi treba, ali s obzirm da se u PHP-u ne sanlazim zanima me moze li se prilagoditi da se slike sortiraju prema datumu kojeg su prebace na server (novije prije, ili starije prije), jer trenutno slike prikazuje po abecedi. Skripta je:

Code:

?php

 $columns     = 3;
 $thmb_width  = 120;
 $thmb_height = 80;

function resizeImage($originalImage,$toWidth,$toHeight){
    
    // Get the original geometry and calculate scales
    list($width, $height) = getimagesize($originalImage);
    $xscale=$width/$toWidth;
    $yscale=$height/$toHeight;
    
    // Recalculate new size with default ratio
    if ($yscale>$xscale){
        $new_width = round($width * (1/$yscale));
        $new_height = round($height * (1/$yscale));
    }
    else {
        $new_width = round($width * (1/$xscale));
        $new_height = round($height * (1/$xscale));
    }
    // Resize the original image
    $imageResized = imagecreatetruecolor($new_width, $new_height);
    $imageTmp     = imagecreatefromjpeg ($originalImage);
    imagecopyresampled($imageResized, $imageTmp, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

    return $imageResized;


function generateThumbnails(){
    global $thmb_width,$thmb_height;
    
    // Open the actual directory
    if ($handle = opendir(".")) {
        // Read all file from the actual directory
        while ($file = readdir($handle))  {
            // Check whether tha actual item is a valid file
            if (is_file($file)){
                // Check whether the actual image is a thumbnail
                  if (strpos($file,'_th.jpg')){
                      $isThumb = true;
                  } else {
                      $isThumb = false;
                  }
              
                  if (!$isThumb) {
                      // Process the file string
                      $dirName  = substr($file,0,strpos($file,basename($file)));
                      if (strlen($dirName) < 1) $dirName = '.';
                      $fileName = basename($file);
                      $fileMain = substr($fileName,0,strrpos($fileName,'.'));
                      $extName  = substr($fileName,strrpos($fileName,'.'),
                                          strlen($fileName)-strrpos($fileName,'.'));
                      
                      // Check if the actual file is a jpeg image
                      if (($extName == '.jpg') || ($extName == '.jpeg')){
                        $thmbFile = $dirName.'/'.$fileMain.'_th.jpg';
                        // If a thumbnail dosn't exists tahn create a new one
                        if (!file_exists($thmbFile)){
                            imagejpeg(resizeImage($file,$thmb_width,$thmb_height),$thmbFile,80);
                        }
                    }
                  } 
               }
           }
    }
    
}

function getNormalImage($file){
    $base = substr($file,0,strrpos($file,'_th.jpg'));
    if (file_exists($base.'.jpg')) return $base.'.jpg';
    elseif (file_exists($base.'.jpeg')) return $base.'.jpeg';
    else return "";
}

function displayPhotos(){
    global $columns;
    
    generateThumbnails();
    $act = 0;
    // Open the actual directory
    if ($handle = opendir(".")) {
        // Read all file from the actual directory
        while ($file = readdir($handle))  {
            // Check whether tha actual item is a valid file
            if (is_file($file)){
                // Check whether the actual image is a thumbnail
                  if (strpos($file,'_th.jpg')){
                    ++$act;
                    if ($act > $columns) {
                        echo '</tr><tr><td class="photo"><a href="'.getNormalImage($file).'"><img src="'.$file.'" alt="'.$file.'"/></a></td>';    
                        $act = 1;
                    } else {
                        echo '<td class="photo"><a href="'.getNormalImage($file).'"><img src="'.$file.'" alt="'.$file.'"/></a></td>';    
                    }
                      
                  }
              }
        }
    }    
}

?>


p.s. znam za mogucnost da je prevarim po sistemu da svaka slika ima 3 broja prije imena, ali mi se ta ideja bas i ne svidja.

Edit Dakipro: Koristi code tagove

[Ovu poruku je menjao dakipro dana 07.06.2008. u 15:42 GMT+1]
07.06.2008. u 14:16 

dakipro
Dalibor Jovic
PHP Developer, SMDesign, Ciplex
Novi Sad

Moderator
Član broj: 31848
Poruke: 677
*.dynamic.sbb.rs.



Profil

icon Re: Sortiranje galerije slika07.06.2008. u 14:50
Gomila rezultata kako se to moze odraditi: Google: "php get file date"
Za pocetak pogledaj kako http://php.net/filemtime radi. Gde si tacno zapeo?

Btw, ako ti treba neko da ti napise kod, obrati se ovde http://www.elitesecurity.org/f28-IT-berza-poslova gotovo uvek ima ornih ljudi spremnih da rade.
Na php forumu ljudi uglavnom razmenjuju iskustva ili pomazu (ne uradivsi umesto) jedni drugima, tako da ces mozda sacekati na odgovor koji tebe interesuje.
07.06.2008. u 14:50 

[es] :: PHP :: Sortiranje galerije slika

[ Pregleda: 168 | Odgovora: 1 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.