<?PHP

/**************************************
    Webutler V3.0 - www.webutler.de
    Copyright (c) 2008 - 2014
    Autor: Sven Zinke
    Free for any use
    Lizenz: GPL
**************************************/

if(preg_match('#/modules/galerie/galerie.php#i', $_SERVER['REQUEST_URI']))
    exit('no access');


class FolderGalerie {

    var $serverpath;
    var $get_page;
    var $get_galerie;
    var $menuposition;
    var $startordner;
    var $root;
    var $lightbox;
    var $tabellenspalten;
    var $sortierung;
    
    function makelinks($pfad)
    {
        $ausgabe = '';
        $contentpfad = $this->root.$pfad;
        if (is_dir($contentpfad."/")) {
            $verzeichnis = opendir($contentpfad);
            $count = 0;
            $last = $this->verzeichnisse($pfad);
            while(false !== ($inhalt = readdir($verzeichnis))) {
            	if($inhalt != "." && $inhalt != ".." && $inhalt != ".box" && is_dir($this->serverpath."/".$contentpfad."/".$inhalt."/") && $last > 0) {
            	    $menupunkt = strtoupper($inhalt);
            	    $menupunkt = str_replace("_", " ", $menupunkt);
            	    $menupunkt = str_replace("-", " ", $menupunkt);
            	    $menupunkt = str_replace(".", " ", $menupunkt);
            	    if($count == 0)
                        $ausgabe.= "\n<ul>\n";
            	    if($this->get_galerie == str_replace("/", "^", $pfad."/".$inhalt)) {
            		    $ausgabe.= '<li><strong>'.$menupunkt.'</strong>';
            		}
            		else {
            		    $ausgabe.= '<li><a href="index.php?page='.$this->get_page.'&galerie='.str_replace("/", "^", $pfad."/".$inhalt).'">'.$menupunkt.'</a>';                                                
            		}
            		$ausgabe.= $this->makelinks($pfad."/".$inhalt);
                    $ausgabe.= "</li>\n";
            	    if($count == $last-1)
                        $ausgabe.= "</ul>\n";
                    $count = $count + 1;
            	}
            }
            closedir($verzeichnis);
        }
        
        return $ausgabe;
    }

    function verzeichnisse($pfad)
    {
        $ausgabe = '';
        $contentpfad = $this->root.$pfad;
        if (is_dir($contentpfad."/")) {
            $verzeichnis = opendir($contentpfad);
            $count = 0;
            while(false !== ($inhalt = readdir($verzeichnis))) {
            	if($inhalt != "." && $inhalt != ".." && $inhalt != ".box" && is_dir($this->serverpath."/".$contentpfad."/".$inhalt."/")) {
                    $count = $count + 1;
            	}
            }
            closedir($verzeichnis);
            $ausgabe.= $count;
        }
        
        return $ausgabe;
    }
    
    function getfiles($pfad)
    {
        $ausgabe = '';
        $contentpfad = $this->root.$pfad;
        if(is_dir($contentpfad."/")) {
    	    $menupunkt = strtoupper($pfad);
            $menupunkt = str_replace("/", " &raquo; ", $menupunkt);
    	    $menupunkt = str_replace("_", " ", $menupunkt);
    	    $menupunkt = str_replace("-", " ", $menupunkt);
    	    $menupunkt = str_replace(".", " ", $menupunkt);
            $ausgabe.= '<tr>'."\n";
            $ausgabe.= '<td colspan="'.$this->tabellenspalten.'" class="headline">'.$menupunkt.'</td>'."\n";
            $ausgabe.= '</tr>'."\n";
            
            $verzeichnis = opendir($contentpfad);
            $bilder = array();
            while(false !== ($inhalt = readdir($verzeichnis))) {
            	if($inhalt != "." && $inhalt != ".." && !is_dir($this->serverpath."/".$contentpfad."/".$inhalt)) {
                    $format = getimagesize($this->serverpath."/".$contentpfad."/".$inhalt);
            	    if($format[2] == 1 || $format[2] == 2 || $format[2] == 3) {
            	        array_push($bilder, array(filemtime($contentpfad."/".$inhalt), $contentpfad."/".$inhalt, $contentpfad."/.box/".$inhalt));
                    }
            	}
            }
            closedir($verzeichnis);
            
            if($this->sortierung == '1') rsort($bilder); // neuste zuerst
            elseif($this->sortierung == '2') sort($bilder); // neuste zuletzt
            elseif($this->sortierung == '3') ksort($bilder); // alphabetisch
            elseif($this->sortierung == '4') shuffle($bilder); // zufällig
            
            $count = 0;
            foreach ($bilder as $nummer) {
                if($count == $this->tabellenspalten)
                    $count = 0;
                if($count == 0)
                    $ausgabe.= '<tr>'."\n";
        		$ausgabe.= '<td>'."\n";
                    if($this->lightbox == 1)
                         $ausgabe.= '<a href="'.$nummer[2].'" rel="lightbox1"><img src="'.$nummer[1].'" /></a>'."\n";
                    else
                         $ausgabe.= '<img src="'.$nummer[1].'" />'."\n";
                     '</td>'."\n";
                $count = $count+1;
                if($count == $this->tabellenspalten)
                    $ausgabe.= '</tr>'."\n";
            }        
            
            $rest = $this->tabellenspalten-$count;
            for($i = 0; $i < $rest; $i++) {
                $ausgabe.= '<td>&nbsp;</td>'."\n";
            }
            if($count != $this->tabellenspalten)
                $ausgabe.= '</tr>'."\n";
        }
        
        return $ausgabe;
    }
    
    function setmenu($pfad)
    {
        $ausgabe = '';
        $ausgabe.= '<td class="gallinks" width="30">'."\n";
        if($this->menuposition == '1') {
            $ausgabe.= '<ul class="ulleft">'."\n".'<li>';
        }
        if($this->menuposition == '2') {
            $ausgabe.= '<ul class="ulright">'."\n".'<li>';
        }
        $startname = str_replace("/", "", $this->startordner);
        $startname = str_replace("_", " ", $startname);
        $startname = str_replace("-", " ", $startname);
        $startname = str_replace(".", " ", $startname);
        $startname = strtoupper($startname);
        if($pfad == $this->startordner) {
            $ausgabe.= '<strong>'.$startname.'</strong>';
        }
        else {
            $ausgabe.= '<a href="index.php?page='.$this->get_page.'">'.$startname.'</a>';
        }
        $ausgabe.= $this->makelinks($this->startordner);
        $ausgabe.= '</li>'."\n".'</ul>'."\n".'</td>'."\n";
        
        return $ausgabe;
    }
    
    function rootpath($serverpath) {
        $docroot = str_replace(DIRECTORY_SEPARATOR, '/', dirname(__FILE__));
        if(substr($docroot, -1) != '/') $docroot = $docroot.'/';
        
        $hostroot = str_replace($this->serverpath, '', $docroot);
        if(substr($hostroot, 0, 1) == '/') $hostroot = substr($hostroot, 1, strlen($hostroot)-1);
        
        return $hostroot;
    }

}

?>
