0byt3m1n1
Path:
/
data
/
applications
/
aps.bak
/
tikiwiki
/
1.9.7-31
/
htdocs
/
[
Home
]
File: tiki-map_download.phtml
<?php // $Header: /cvsroot/tikiwiki/tiki/tiki-map_download.phtml,v 1.5.4.9 2005/10/30 12:22:16 franck Exp $ // Copyright (c) 2002-2003, Luis Argerich, Garland Foster, Eduardo Polidor, et. al. // All Rights Reserved. See copyright.txt for details and a complete list of authors. // Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details. require_once ('tiki-setup.php'); if(@$feature_maps != 'y') { $smarty->assign('msg',tra("Feature disabled")); $smarty->display("error.tpl"); die; } if (isset($_REQUEST['view_user'])) { $userwatch = $_REQUEST['view_user']; } else { if ($user) { $userwatch = $user; } else { $smarty->assign('msg', tra("You are not logged in and no user indicated")); $smarty->display("error.tpl"); die; } } if (!isset($_GET['mapfile']) || !isset($_GET['layer'])) { $smarty->assign('msg', tra("You have not specified a mapfile and a layer")); $smarty->display("error.tpl"); die; } else { $smarty->assign('mapfile', $_GET['mapfile']); $smarty->assign('layer', $_GET['layer']); } if (!preg_match('/\.map$/i', $_GET['mapfile'])) { $smarty->assign('msg', tra("mapfile name incorrect")); $smarty->display("error.tpl"); die; } if (isset($_GET['mapfile'])) { // Validate to prevent displaying any file if (strstr($_GET["mapfile"], '..')) { $smarty->assign('msg', tra("You do not have permission to do that")); $smarty->display('error.tpl'); die; } $mapfile = $_GET['mapfile']; $map = ms_newMapObj($map_path.$mapfile); } else { $map = ms_newMapObj($map_path.$default_map); } // process the mapfile to define if the layer can be downloaded... for ($j=0;$j<$map->numlayers;$j++) { $my_layers=$map->getLayer($j); //Metadata handling $download=FALSE; if ($my_layers->name==$_GET['layer']) { if($my_layers->getMetadata("DOWNLOAD")=='T') { $download=TRUE; if ($my_layers->connection!="") { $download_path=$map_path.$my_layers->connection; } else { $download_path=$map_path.$my_layers->data; } } } } //get the path and the filename without extension $extension = array_pop(explode('.', basename($download_path))); $file_name = substr(basename($download_path), 0,"-" . (strlen($extension) + 1)); $file_path = dirname($download_path); // creates a temporary filename $tempfile="TM".date("YmdHis"); // Get all files from the layer reference $files = array(); $h = opendir($file_path); //first check if there is not a file with NDL extension // to stop download $nodownload=FALSE; while (($file = readdir($h)) !== false) { $extension = array_pop(explode('.', basename($file))); if (substr(basename($file), 0,"-" . (strlen($extension) + 1))==$file_name) { if ($extension=="NDL") { $nodownload=TRUE; } } } closedir ($h); $smarty->assign('nodownload', $nodownload); $DSEP=DIRECTORY_SEPARATOR; if (!$nodownload) { $h = opendir($file_path); while (($file = readdir($h)) !== false) { $extension = array_pop(explode('.', basename($file))); if (substr(basename($file), 0,"-" . (strlen($extension) + 1))==$file_name) { $files[] = $file; copy($file_path.$DSEP.$file,"files".$DSEP.$tempfile.".".$extension); $dfiles[]=$tempfile.".".$extension; } } closedir ($h); } //clean the files directory from old files $h = opendir("files"); while (($file = readdir($h)) !== false) { if (substr($file,0,2)=="TM") { $filedate=substr($file,2,14); if ($filedate<=date("YmdHis",mktime (0,0,0,date("m"),date("d")-2,date("Y")))) { unlink("files".$DSEP.$file); } } } closedir ($h); // record that the user wanted to download some files // to be fixed by adding the tiki_download table definitively $userid = $userlib->get_user_id($user); //$query = "insert into tiki_download (object,userid,type,date,IP) values ('$file_name',$userid,'maps',".date("U").",'".$_SERVER["REMOTE_ADDR"]."')"; //$result = $userlib->query($query); $smarty->assign('nodownload', $nodownload); $smarty->assign_by_ref('files',$files); $smarty->assign_by_ref('dfiles',$dfiles); $smarty->assign('mid', 'map/tiki-map_download.tpl'); $smarty->assign('userwatch', $userwatch); $smarty->display('tiki.tpl'); ?>