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; } ?>