file: " . $file);
$currdir = str_replace(dm_get_album_root(), get_option('DM_HOME_DIR'), dirname($_GET["file"]));
//dm_logerrors("dm_download -> curdir: " . $currdir);
$filename = dm_sanitize($currdir, 1) . "/" . $file;
//dm_logerrors("dm_download -> filename: " . $filename);
if(dm_is_image($filename))
{
$filesize = filesize($filename);
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Length: ' . $filesize);
header('Content-Disposition: attachment; filename="' . $file . '"');
readfile($filename);
}
}
function dm_loadjavascript()
{
// Removed version numbers from scripts.
if(get_option('DM_JQUERY_LIB') == "GOOGLE")
{
?>
}
?>
0)
{
return explode(";", $album_sortorder);
}
}
$dir = opendir($photoalbum);
if(!dir) return;
$contents = array();
$i = 0;
// Read files into array
while(false !== ($file = readdir($dir)))
{
if(dm_get_imagetype($dir . $file) >= 0)
{
$contents[$i] = $file;
$i++;
}
}
closedir($dir);
natcasesort($contents);
$contents = array_values($contents);
return $contents;
}
function dm_get_caption($photo)
{
$directory = dirname($photo);
$picturename = basename($photo);
$photoid = "dma-" . basename($directory) . "-" . $picturename . "-caption";
$caption = htmlspecialchars(get_option($photoid), ENT_QUOTES);
if(!empty($caption)) return $caption;
else if(file_exists(dirname($photo) . "/browse.cap"))
{
$lines = file(dirname($photo) . "/browse.cap");
foreach($lines as $line)
{
//line starts with the image name, remove image name and leading whitespace, display caption
$matches = array();
$matchcount = 0;
$matchcount = preg_match_all("/(^" . basename($photo) . ":\s)(.*)/i", $line, $matches);
if($matchcount > 0)
{
$filename = $matches[0][1];
$caption = trim($matches[2][0]);
if(strlen($caption) > 0) return htmlspecialchars(trim("$caption"), ENT_QUOTES);
else return htmlspecialchars(trim($caption), ENT_QUOTES);
}
}
}
return $caption;
}
function dm_put_caption($photo, $displaycaption)
{
$directory = dirname($photo);
$picturename = basename($photo);
$photoid = "dma-" . basename($directory) . "-" . $picturename . "-caption";
update_option($photoid, $displaycaption);
}
function dm_delete_caption($photo)
{
$directory = dirname($photo);
$picturename = basename($photo);
$photoid = "dma-" . basename($directory) . "-" . $picturename . "-caption";
delete_option($photoid);
}
function dm_get_link($photo)
{
$directory = dirname($photo);
$picturename = basename($photo);
$photoid = "dma-" . basename($directory) . "-" . $picturename . "-link";
$caption = htmlspecialchars(get_option($photoid), ENT_QUOTES);
if(!empty($caption)) return $caption;
else if(file_exists(dirname($photo) . "/browse.cap"))
{
$lines = file(dirname($photo) . "/browse.cap");
foreach($lines as $line)
{
//line starts with the image name, remove image name and leading whitespace, display caption
$matches = array();
$matchcount = 0;
$matchcount = preg_match_all("/(^" . basename($photo) . "_LINK:\s)(.*)/i", $line, $matches);
if($matchcount > 0)
{
$filename = $matches[0][1];
$caption = trim($matches[2][0]);
if(strlen($caption) > 0) return trim("$caption");
else return trim($caption);
}
}
return $caption;
}
}
function dm_put_link($photo, $displaycaption)
{
$directory = dirname($photo);
$picturename = basename($photo);
$photoid = "dma-" . basename($directory) . "-" . $picturename . "-link";
update_option($photoid, $displaycaption);
}
function dm_delete_link($photo)
{
$directory = dirname($photo);
$picturename = basename($photo);
$photoid = "dma-" . basename($directory) . "-" . $picturename . "-link";
delete_option($photoid);
}
function dm_get_title($photoalbum)
{
$ablum_title = "";
$albumid = "dma-" . basename($photoalbum) . "-title";
$ablum_title = htmlspecialchars(get_option($albumid), ENT_QUOTES); //get_option($albumid);
if(!empty($ablum_title)) return $ablum_title;
else if(file_exists($photoalbum . "/browse.cap"))
{
$lines = file($photoalbum . "/browse.cap");
foreach($lines as $line)
{
//line starts with the image name, remove image name and leading whitespace, display caption
$matches = array();
$matchcount = 0;
$matchcount = preg_match_all("/(^DM_ALBUM_TITLE:\s)(.*)/i", $line, $matches);
if($matchcount > 0)
{
$filename = $matches[0][1];
$ablum_title = trim($matches[2][0]);
if(strlen($ablum_title) > 0) return trim("$ablum_title");
else return trim($ablum_title);
}
}
return $ablum_title;
}
}
function dm_put_title($album, $displaycaption)
{
$directory = $album;
$albumid = "dma-" . basename($directory) . "-title";
update_option($albumid, $displaycaption);
}
function dm_delete_title($album)
{
$directory = $album;
$albumid = "dma-" . basename($directory) . "-title";
delete_option($albumid);
}
function dm_get_sortorder($photoalbum)
{
//echo "dm_get_sortorder: " . $photoalbum . "
";
$ablum_sortorder = "";
$albumid = "dma-" . basename($photoalbum) . "-sortorder";
$ablum_sortorder = get_option($albumid);
if(!empty($ablum_sortorder)) return $ablum_sortorder;
else if(file_exists($photoalbum . "/browse.cap"))
{
$lines = file($photoalbum . "/browse.cap");
foreach($lines as $line)
{
//line starts with the image name, remove image name and leading whitespace, display caption
$matches = array();
$matchcount = 0;
$matchcount = preg_match_all("/(^DM_ALBUM_SORTORDER:\s)(.*)/i", $line, $matches);
if($matchcount > 0)
{
$filename = $matches[0][1];
$ablum_sortorder = trim($matches[2][0]);
if(strlen($ablum_sortorder) > 0) return trim("$ablum_sortorder");
else return trim($ablum_sortorder);
}
}
}
/*
//echo "ablum_sortorder: " . $ablum_sortorder . "
";
$album_cleansed_sortorder = array();
if(is_array($ablum_sortorder))
{
foreach($ablum_sortorder as $photo)
{
if(file_exists($photoalbum . "/$photo")) $album_cleansed_sortorder[] = $photo;
}
}
return $album_cleansed_sortorder;*/
}
function dm_put_sortorder($album, $ablum_sortorder)
{
$directory = $album;
$albumid = "dma-" . basename($directory) . "-sortorder";
update_option($albumid, $ablum_sortorder);
}
function dm_delete_sortorder($album)
{
$directory = $album;
$albumid = "dma-" . basename($directory) . "-sortorder";
delete_option($albumid);
}
function dm_remove_photo_from_sortorder($photoalbum, $photo)
{
$album_sortorder = dm_get_sortorder($photoalbum);
if(strlen(trim($album_sortorder)) > 0)
{
$album_sortorder = str_replace($photo, "", $album_sortorder);
$album_sortorder = str_replace(";;", "", $album_sortorder); //clean up
dm_put_sortorder($photoalbum, $album_sortorder);
}
}
function dm_add_photo_to_sortorder($photoalbum, $photo)
{
$album_sortorder = dm_get_sortorder($photoalbum);
if(strlen(trim($album_sortorder)) > 0)
{
if(strpos($album_sortorder, $photo) === FALSE)
{
$album_sortorder = $album_sortorder . ";$photo";
dm_put_sortorder($photoalbum, $album_sortorder);
}
}
}
function dm_reset_photo_sortorder($photoalbum)
{
$album_sortorder = dm_get_sortorder($photoalbum);
if(strlen(trim($album_sortorder)) > 0)
{
dm_put_sortorder($photoalbum, "");
}
}
function dm_refresh_photo_sortorder($photoalbum)
{
$album_sortorder = dm_get_sortorder($photoalbum);
if(strlen(trim($album_sortorder)) > 0)
{
$album = explode(";", $album_sortorder);
$photos = dm_get_photo_list($photoalbum, true);
$missing = array_diff($photos, $album);
$album_sortorder = $album_sortorder . ";" . implode(";", $missing);
$album_sortorder = rtrim($album_sortorder, ";");
$album = explode(";", $album_sortorder);
$missing = array_diff($album, $photos);
foreach($missing as $item)
{
$album_sortorder = str_replace($item . ";", "", $album_sortorder);
}
$album_sortorder = rtrim($album_sortorder, ";");
dm_put_sortorder($photoalbum, $album_sortorder);
}
}
function dm_get_album_datecmp($a, $b)
{
return ($a[1] > $b[1]) ? -1 : 1;
}
function dm_get_album_alphacmp($a, $b)
{
return (strtolower(basename($a[0])) < strtolower(basename($b[0]))) ? -1 : 1;
}
function dm_get_album_delete($album)
{
$handle = opendir($album);
while (false!==($item = readdir($handle)))
{
$type = filetype($item);
if($item != '.' && $item != '..')
{
if($type != "link" && is_dir($album.'/'.$item))
{
dm_get_album_delete($album.'/'.$item);
}
else
{
unlink($album.'/'.$item);
dm_remove_photo_from_sortorder($album.'/'.$item);
dm_delete_caption($album.'/'.$item);
dm_delete_link($album.'/'.$item);
}
}
}
closedir($handle);
rmdir($album);
dm_delete_title($album);
dm_delete_sortorder($album);
}
function dm_sanitize($folder, $soft = 0)
{
$folder = str_replace("..", "", $folder);
if($soft == 0)
{
$bad_chars = "/[^\w\s\(\)\:\.-]+/";
$replacement_chars = "";
$folder = trim(preg_replace($bad_chars, $replacement_chars, $folder), '/\\');
$folder = str_replace("/", "", $folder);
$folder = str_replace("\\", "", $folder);
}
return $folder;
}
function dm_sanitize_var($var)
{
$var = html_entity_decode(stripslashes($var));
$var = htmlentities($var, ENT_QUOTES, 'cp1252');
return $var;
}
function dm_getuploaddirectory()
{
global $blog_id;
if(get_option('DM_ALBUMS_UPLOADDIR') == "" || get_option('DM_ALBUMS_UPLOADDIR') == "/")
{
update_option('DM_ALBUMS_UPLOADDIR', get_option('DM_ALBUMS_CORE_DEFAULT_UPLOADDIR'));
}
return str_replace("{BLOG_ID}", $blog_id, get_option('DM_ALBUMS_UPLOADDIR'));
}
function dm_user_uploaddirectory()
{
$DM_UUP = get_option('DM_ALBUMS_UUP');
if($DM_UUP == 1)
{
global $current_user, $_POST, $_GET;
get_currentuserinfo();
$user_upload_directory = $current_user->user_email;
if(!isset($user_upload_directory) || empty($user_upload_directory))
{
$user_upload_directory = isset($_POST["dm_uud"]) ? $_POST["dm_uud"] : $_GET["dm_uud"];
$user_upload_directory = str_replace("../", "", $user_upload_directory);
$user_upload_directory = str_replace("/", "", $user_upload_directory);
$user_upload_directory = str_replace("\\", "", $user_upload_directory);
$user_upload_directory = str_replace("'", "", $user_upload_directory);
$user_upload_directory = str_replace("\"", "", $user_upload_directory);
$user_upload_directory = trim($user_upload_directory, '/\\');
}
//$user_upload_directory = str_replace("@", "_at_", $user_upload_directory);
return $user_upload_directory . "/";
}
}
function dm_is_wpmu()
{
if(is_dir($_SERVER['DOCUMENT_ROOT'] . '/wp-content/mu-plugins')) return true;
else return false;
}
function dm_isUserAdmin()
{
global $blog_id;
// NON WPMU AND ADMINS
if(!dm_is_wpmu() && current_user_can('level_10')) return true;
// WPMU AND BASE BLOG
if(dm_is_wpmu() && $blog_id == 1) return true;
return false;
}
function dm_is_wamp()
{
//return eregi("WIN", strtoupper(php_uname()));
if(strpos(ABSPATH, ":/") === TRUE && strpos(ABSPATH, ":/") == 1) return true;
}
?>