include("classes/DB.php");
include("classes/DirList.php");
include("classes/TagList.php");
include("classes/FileInfo.php");
include("classes/Tags.php");
include("classes/MegaHTML.php");
$DB=new DB;
$DB->user="mendel";
$DB->password="l4fp4d";
$DB->host="localhost";
$DB->db="mendel";
if(!$DB->Connect()) die("Cannot connect to mysql");
$dir=$_GET["path"];
$file=$_GET["file"];
$tag=$_GET["tag"];
$deltag=$_GET["deltag"];
$raddr=$_GET["raddr"];
$xg=(int)$_GET["x"];
$yg=(int)$_GET["y"];
$xc=(int)$_COOKIE["x"];
$yc=(int)$_COOKIE["y"];
// iets in koekje, niet in get
if($xg==0 and $xc!=0 && $yg==0 and $yc!=0) {
$fromcookie=true;
$x=$xc;
$y=$yc;
// koekje en get zijn gelijk
} elseif($xg==$xc and $yg==$yc) {
$x=$xc;
$y=$yc;
$fromcookie=true;
// koekje gaan zetten en eens kijken of er wat in de get staat
} else {
$fromcookie=false;
if($xg==0 && $xc==0) {
$x=640;
$y=480;
} elseif($xg!=0 && $yg!=0) {
$x=$xg;
$y=$yg;
}
setcookie("x",$x,time()+3600);
setcookie("y",$y,time()+3600);
}
if($x==0) {
$x=640;
setcookie("x",$x,time()+3600);
}
if($y==0) {
$y=480;
setcookie("y",$y,time()+3600);
}
if(!$fromcookie) {
$dox=$x;
$doy=$y;
}
if(preg_match('%(\.\.|^/)%',$dir)) die("Not allowed!");
if($tag!="") {
$dl=new TagList($tag,$dir,$file);
$mode="tag";
} else {
$dl=new DirList($dir,$file);
$mode="dir";
}
if($dl->file!="" && $mode=="dir") {
$tags=new Tags($dl->dir,$dl->file);
$addtag=(int)$_POST["addtag"];
$newtag=$_POST["newtag"];
if($addtag>0) {
$tags->AddTag($addtag,$dl->dir,$dl->file);
$tags=new Tags($dl->dir,$dl->file);
}
if($newtag!="") {
$s=@split(",",$newtag);
if(count($s)) foreach($s as $ntag) {
$ntag=trim($ntag);
$tags->NewTag($ntag,$dl->dir,$dl->file);
$tags=new Tags($dl->dir,$dl->file);
}
}
if($deltag!="" && $raddr=$_SERVER["REMOTE_ADDR"]) {
// $tags->DelTag($deltag);
// $tags=new Tags($dl->dir,$dl->file);
}
}
if($dl->file!="" && $mode=="tag") {
$tags=new Tags($dl->path,$dl->file);
$addtag=(int)$_POST["addtag"];
$newtag=$_POST["newtag"];
if($addtag>0) {
$tags->AddTag($addtag,$dl->path,$dl->file);
$tags=new Tags($dl->path,$dl->file);
}
if($newtag!="") {
$s=@split(",",$newtag);
if(count($s)) foreach($s as $ntag) {
$ntag=trim($ntag);
$tags->NewTag($ntag,$dl->path,$dl->file);
$tags=new Tags($dl->path,$dl->file);
}
}
if($deltag!="") {
$tags->DelTag($deltag);
$tags=new Tags($dl->path,$dl->file);
}
}
$linker=New Link;
$photo=New Photo;
$html=new HTML;
$html->title('Album');
$html->css('/css/album.css');
$html->meta("Content-Type","text/html; charset=utf-8");
$page=new Div("page");
$header=new Div("header");
$header->content[]='
';
$clear=new Div("","clear");
$left=new Div("left");
$menu=new Menu;
$left->content[]=$menu->MakeMenu(array(
"index.php" => "Home",
"album.php" => "Foto's",
"video.php" => "Video's",
"mensen.php" => "Mensen",
"prive.php" => "Prive&Werk&Enzo",
"projects.php" => "Projecten",
"album.php?path=funny_platen" => "Funny Pics",
"files.php" => "Funny Files",
"strafblad.php" => "Strafblad",
"ookmegabot.php" => "Ook megabot",
"usenet.php" => "Usenet",
"bevelander.php" => "Bevelander&Megaprovider",
"spam.php" => "Spam",
"legal.php" => "Legaal"));
$right=new Div("right");
// Rechterkant
// Views
$views=new Div("views","menuitem");
$shead=new Div("subhead");
$scont=new Div("subcont");
$shead->content[]="Views";
$tviews=0;
if($dl->file=="") {
if($mode=="tag") {
if(count($dl->files)) foreach($dl->files as $objects) $tviews=$tviews+$objects['count'];
} else {
if(count($dl->count)) foreach($dl->count as $xviews) $tviews+=$xviews;
}
$scont->content[]="Total views here: $tviews";
} else {
$scont->content[]="Views for this file: ".$dl->count["$dl->file"];
}
$views->content[]=$shead;
$views->content[]=$scont;
$right->content[]=$views;
// Albums
if($mode=="dir") {
$album=new Div("albums","menuitem");
$shead=new Div("subhead");
$scont=new Div("subcont");
$shead->content[]="Albums";
$s=@split("/",$dl->dir);
$spaces=0;
$cpath="";
foreach($s as $dpart) {
if($dpart!=".." && $dpart!=".") {
if($cpath!="") $cpath.="/";
$cpath.=$dpart;
$sp="";
for($i=0;$i<$spaces;$i++) {
$sp.=" ";
}
$scont->content[]="$sp $dpart
";
$spaces++;
}
}
$album->content[]=$shead;
$album->content[]=$scont;
$right->content[]=$album;
}
if($dl->file!="") {
// Sizes
$sizes=new Div("sizes","menuitem");
$shead=new Div("subhead");
$scont=new Div("subcont");
$shead->content[]="Sizes";
foreach($dl->extfileinfo->sizes as $size) {
if($size['x']==$x && $size['y']==$y) {
$scont->content[]=" ".$size['x']."x".$size['y']."
";
} else {
$tlink=$linker->Link(array("tag" => $dl->utag,
"path" => $dl->udir,
"file" => $dl->ufile,
"x" => $size['x'],
"y" => $size['y']),$size['x']."x".$size['y']);
$scont->content[]=" $tlink
";
}
}
$sizes->content[]=$shead;
$sizes->content[]=$scont;
$right->content[]=$sizes;
// Exif
$exif=new Div("exif","menuitem");
$shead=new Div("subhead");
$scont=new Div("subcont");
$shead->content[]="Exif";
if(count($dl->extfileinfo->pexif)) foreach($dl->extfileinfo->pexif as $tag => $data) {
$scont->content[]=" $tag: $data
\n";
}
$exif->content[]=$shead;
$exif->content[]=$scont;
$right->content[]=$exif;
// Tags
$ptags=new Div("tags","menuitem");
$shead=new Div("subhead");
$scont=new Div("subcont");
$shead->content[]="Tags";
if(count($tags->filetags)) foreach($tags->filetags as $id => $tag) {
unset($tags->tags[$id]);
if($dl->path!="") $delid=$tags->getID($id,$dl->path,$dl->file);
if($dl->dir!="") $delid=$tags->getID($id,$dl->dir,$dl->file);
$dellink=$linker->Link(array("tag" => $dl->utag,
"path" => $dl->udir,
"file" => $dl->ufile,
"deltag" => $delid,
"raddr" => $_SERVER["REMOTE_ADDR"],
"x" => $dox,
"y" => $doy),"-");
$taglink=$linker->Link(array("tag" => myurlencode($tag)),htmlentities($tag));
$scont->content[]=" ".$dellink." ".$taglink."
";
}
$ptags->content[]=$shead;
$ptags->content[]=$scont;
$right->content[]=$ptags;
// Assign Tags
$atags=new Div("assigntag","menuitem");
$shead=new Div("subhead");
$scont=new Div("subcont");
$shead->content[]="Add Tag";
$scont->content[]="
';
$scont->content[]='New Tag (separate with ,)
';
$scont->content[]='
';
$atags->content[]=$shead;
$atags->content[]=$scont;
$right->content[]=$atags;
}
$content=new Div("content$x","priveitem","width=$x;");
$content->content[]="";
// Navigatie ...
$nav=New Div("navitem");
if($mode=="tag") {
$ul=new UL("navitem");
if($dl->file=="") {
$uli=new LI("navitem","navitem");
$ulink=$linker->Link(array("x" => $dox,
"y" => $doy),
"
fotoalbum");
$uli->content[]=$ulink;
$ul->content[]=$uli;
} else {
if($dl->prevfile!="") {
$pli=new LI("navitem","navitem");
$hpath=preg_replace("%/%"," ",htmlentities($dl->prevpath));
$plink=$linker->Link(array("tag" => $dl->utag,
"path" => $dl->prevpath,
"file" => $dl->prevfile,
"x" => $dox,
"y" => $doy),
$photo->make($dl->prevpath,$dl->prevfile,120,120,"$hpath / ".$dl->prevfile."$hpath / ".$dl->prevfile));
$pli->content[]=$plink;
$ul->content[]=$pli;
}
$uli=new LI("navitem","navitem");
$ulink=$linker->Link(array("tag" => $dl->utag,
"x" => $dox,
"y" => $doy),
"
".htmlentities($dl->tag));
$uli->content[]=$ulink;
$ul->content[]=$uli;
if($dl->nextfile!="") {
$nli=new LI("navitem","navitem");
$hpath=preg_replace("%/%"," ",htmlentities($dl->nextpath));
$nlink=$linker->Link(array("tag" => $dl->utag,
"path" => $dl->nextpath,
"file" => $dl->nextfile,
"x" => $dox,
"y" => $doy),
$photo->make($dl->nextpath,$dl->nextfile,120,120,"$hpath / ".$dl->nextfile."$hpath / ".$dl->nextfile));
$nli->content[]=$nlink;
$ul->content[]=$nli;
}
}
} else {
$ul=new UL("navitem");
if($dl->file=="") {
$s=@split("/",$dl->dir);
unset($s[count($s)-1]);
$upname=$s[count($s)-1];
$uppath=implode("/",$s);
if($dl->prevdir!="") $prevpath=$uppath."/".$dl->prevdir;
if($dl->nextdir!="") $nextpath=$uppath."/".$dl->nextdir;
if($prevpath!="") {
$pli=new LI("navitem","navitem");
$plink=$linker->Link(array("path" => myurlencode($prevpath),
"x" => $dox,
"y" => $doy),
"
".htmlentities($dl->prevdir));
$pli->content[]=$plink;
$ul->content[]=$pli;
}
$uli=new LI("navitem","navitem");
$ulink=$linker->Link(array("path" => myurlencode($uppath),
"x" => $dox,
"y" => $doy),
"
".htmlentities($upname));
$uli->content[]=$ulink;
$ul->content[]=$uli;
if($nextpath!="") {
$nli=new LI("navitem","navitem");
$nlink=$linker->Link(array("path" => myurlencode($nextpath),
"x" => $dox,
"y" => $doy),
"
".htmlentities($dl->nextdir));
$nli->content[]=$nlink;
$ul->content[]=$nli;
}
} else {
$s=@split("/",$dl->dir);
$upname=$s[count($s)-1];
$uppath=$dl->dir;
$uprev=myurlencode($dl->prevfile);
$hprev=htmlentities($dl->prevfile);
$unext=myurlencode($dl->nextfile);
$hnext=htmlentities($dl->nextfile);
if($dl->prevfile!="") {
$pli=new LI("navitem","navitem");
$plink=$linker->Link(array("path" => $dl->udir,
"file" => $uprev,
"x" => $dox,
"y" => $doy),
$photo->make($dl->udir,$uprev,120,120,$hnext."
$hnext"));
$pli->content[]="Previous
";
$pli->content[]=$plink;
$ul->content[]=$pli;
}
$uli=new LI("navitem","navitem");
$ulink=$linker->Link(array("path" => myurlencode($uppath),
"x" => $dox,
"y" => $doy),
"
".htmlentities($upname));
$uli->content[]=$ulink;
$ul->content[]=$uli;
if($dl->nextfile!="") {
$nli=new LI("navitem","navitem");
$nlink=$linker->Link(array("path" => $dl->udir,
"file" => $unext,
"x" => $dox,
"y" => $doy),
$photo->make($dl->udir,$unext,120,120,$hnext."
$hnext"));
$nli->content[]="Next
";
$nli->content[]=$nlink;
$ul->content[]=$nli;
}
}
}
$nav->content[]=$ul;
$content->content[]=$nav;
// De echte content
if($dl->file!="") {
$ufile=myurlencode($dl->file);
$hfile=htmlentities($dl->file);
$foto=new Div('fotoitem');
$foto->content[]="";
$foto->content[]="";
$foto->content[]="$hfile
";
$foto->content[]=$photo->make($dl->udir,$dl->file,$x,$y,$hfile);
$content->content[]=$foto;
}
if(count($dl->files) && $dl->file=="" && $mode=="tag") {
$fotolist=New Div("fotoitem");
$ul=new UL("fotoitem");
foreach($dl->files as $objects) {
$nfile=$objects['file'];
$ufile=myurlencode($nfile);
$hfile=htmlentities($nfile);
$npath=$objects['path'];
$upath=myurlencode($npath);
$hpath=preg_replace("%/%"," ",htmlentities($npath));
$x=$dl->info["$npath"]["$nfile"][0];
$y=$dl->info["$npath"]["$nfile"][1];
$bits=$dl->info["$npath"]["$nfile"]["bits"];
$chan=$dl->info["$npath"]["$nfile"]["channels"];
if($chan) $bits=$bits*$chan;
if($bits>0) $xbits="x${bits}";
$li=new LI("fotoitem","fotoitem");
$img=$photo->make($upath,$ufile,120,120,$hfile);
$link=$linker->Link(array("tag" => $dl->utag,
"path" => $upath,
"file" => $ufile,
"x" => $dox,
"y" => $doy),$img."
$hpath / $hfile");
$li->content[]=$link;
$t=new Tags($npath,$nfile);
if(count($t->filetags)) {
$li->content[]="
Tags:";
foreach($t->filetags as $tag) {
$li->content[]=$linker->Link(array("tag" => myurlencode($tag)),htmlentities($tag));
}
}
if($objects['count']>0) $li->content[]="
Views:".$objects['count'];
if($x>0 && $y>0) $li->content[]="
${x}x${y}${xbits}";
$ul->content[]=$li;
}
$fotolist->content[]=$ul;
$content->content[]=$fotolist;
} elseif($dl->file=="" && $mode=="dir") {
if(count($dl->dirs)) {
$dirlist=New Div("fotoitem");
$ul=new UL("fotoitem");
foreach($dl->dirs as $ndir) {
$udir=$dl->udir."/".myurlencode($ndir);
$hdir=htmlentities($ndir);
$li=new LI("fotoitem","fotoitem");
$li->content[]=$linker->Link(array("path" => $udir),'
'.$hdir);
//FIXME: if($views) $li->content[]="Views: $views";
$ul->content[]=$li;
}
$dirlist->content[]=$ul;
}
if($dl->dir=="fotoalbum") {
$tl=new Div("fotoitem");
$tl->content[]="Tags:
";
$t=new Tags('','');
foreach($t->tags as $id => $tag) {
$fontplus=floor(log10($t->counts[$id]))-2;
$tl->content[]=$linker->Link(array("tag" => myurlencode($tag)), "".htmlentities($tag)." (".$t->counts[$id].")");
}
}
if(count($dl->files)) {
$fotolist=New Div("fotoitem");
$ul=new UL("fotoitem");
foreach($dl->files as $nfile) {
$ufile=myurlencode($nfile);
$hfile=htmlentities($nfile);
$x=$dl->info["$nfile"][0];
$y=$dl->info["$nfile"][1];
$bits=$dl->info["$nfile"]["bits"];
$chan=$dl->info["$nfile"]["channels"];
if($chan) $bits=$bits*$chan;
if($bits>0) $xbits="x${bits}";
$li=new LI("fotoitem","fotoitem");
$img=$photo->make($dl->udir,$ufile,120,120,$hfile);
$link=$linker->Link(array("path" => $dl->udir,
"file" => $ufile,
"x" => $dox,
"y" => $doy),$img."
$hfile");
$li->content[]=$link;
$t=new Tags($dl->dir,$nfile);
if(count($t->filetags)) {
$li->content[]="
Tags:";
foreach($t->filetags as $tag) {
$li->content[]=$linker->Link(array("tag" => myurlencode($tag)),htmlentities($tag));
}
}
if($dl->count["$nfile"]>0) $li->content[]="
Views:".$dl->count["$nfile"];
$ul->content[]=$li;
}
$fotolist->content[]=$ul;
}
$content->content[]=$dirlist;
$content->content[]=$tl;
$content->content[]=$fotolist;
}
$content->content[]="";
$page->content[]=$header;
$page->content[]=$clear;
$page->content[]=$left;
//$page->content[]=$clear;
$page->content[]=$content;
$page->content[]=$right;
$page->content[]=$clear;
$html->body=$page;
$html->output();
die();
?>