diff options
| author | cash <cash.costello@gmail.com> | 2012-01-02 09:48:22 -0500 | 
|---|---|---|
| committer | cash <cash.costello@gmail.com> | 2012-01-02 09:48:22 -0500 | 
| commit | 86535f77d6b32a2c8a403609ded299a76c73bba0 (patch) | |
| tree | 94341c59aa175683618f16e602ab00752bad04f5 /pages | |
| parent | 30e4d9f0a2e45e640de3e57bd5f432022141317c (diff) | |
| download | elgg-86535f77d6b32a2c8a403609ded299a76c73bba0.tar.gz elgg-86535f77d6b32a2c8a403609ded299a76c73bba0.tar.bz2  | |
added support for downloading images
Diffstat (limited to 'pages')
| -rw-r--r-- | pages/download.php | 50 | ||||
| -rw-r--r-- | pages/photos/image/download.php | 41 | ||||
| -rw-r--r-- | pages/photos/image/view.php | 16 | 
3 files changed, 50 insertions, 57 deletions
diff --git a/pages/download.php b/pages/download.php deleted file mode 100644 index 23c3e39f4..000000000 --- a/pages/download.php +++ /dev/null @@ -1,50 +0,0 @@ -<?php -/** - * Tidypics Download Photos - * - * do not call this directly - call through page handler - */ - -global $CONFIG; - -$file_guid = (int) get_input("file_guid"); -$file = get_entity($file_guid); - -$type = get_input("type"); - -if ($file) { -	$filename = $file->originalfilename; -	$mime = $file->mimetype; - -	header("Content-Type: $mime"); -	if ($type == "inline") { -		header("Content-Disposition: inline; filename=\"$filename\""); -	} else { -		header("Content-Disposition: attachment; filename=\"$filename\""); -	} - -	$readfile = new ElggFile($file_guid); -	$readfile->owner_guid = $file->owner_guid; - -	$contents = $readfile->grabFile(); - -	if (empty($contents)) { -		echo file_get_contents(dirname(dirname(__FILE__)) . "/graphics/image_error_large.png" ); -	} else { - -		// expires every 60 days -		$expires = 60 * 60*60*24; - -		header("Content-Length: " . strlen($contents)); -		header("Cache-Control: public", true); -		header("Pragma: public", true); -		header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $expires) . ' GMT', true); - - -		echo $contents; -	} - -	exit; -} else { -	register_error(elgg_echo("image:downloadfailed")); -}
\ No newline at end of file diff --git a/pages/photos/image/download.php b/pages/photos/image/download.php new file mode 100644 index 000000000..ef47b7638 --- /dev/null +++ b/pages/photos/image/download.php @@ -0,0 +1,41 @@ +<?php +/** + * Download a photo + * + * @author Cash Costello + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License v2 + */ + +$guid = (int) get_input('guid'); +$image = get_entity($guid); + +$disposition = get_input('disposition', 'attachment'); + +if ($image) { +	$filename = $image->originalfilename; +	$mime = $image->mimetype; + +	header("Content-Type: $mime"); +	header("Content-Disposition: $disposition; filename=\"$filename\""); + +	$contents = $image->grabFile(); + +	if (empty($contents)) { +		echo file_get_contents(dirname(dirname(__FILE__)) . "/graphics/image_error_large.png" ); +	} else { + +		// expires every 60 days +		$expires = 60 * 60*60*24; + +		header("Content-Length: " . strlen($contents)); +		header("Cache-Control: public", true); +		header("Pragma: public", true); +		header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $expires) . ' GMT', true); + +		echo $contents; +	} + +	exit; +} else { +	register_error(elgg_echo("image:downloadfailed")); +} diff --git a/pages/photos/image/view.php b/pages/photos/image/view.php index 22ccfb34d..f9157a900 100644 --- a/pages/photos/image/view.php +++ b/pages/photos/image/view.php @@ -34,13 +34,15 @@ if (elgg_instanceof($owner, 'group')) {  elgg_push_breadcrumb($album->title, $album->getURL());  elgg_push_breadcrumb($photo->title); -// add download button to title menu -elgg_register_menu_item('title', array( -	'name' => 'download', -	'href' => 'photos/download', -	'text' => elgg_echo('image:download'), -	'link_class' => 'elgg-button elgg-button-action', -)); +if (elgg_get_plugin_setting('download_link', 'tidypics')) { +	// add download button to title menu +	elgg_register_menu_item('title', array( +		'name' => 'download', +		'href' => "photos/download/$photo_guid", +		'text' => elgg_echo('image:download'), +		'link_class' => 'elgg-button elgg-button-action', +	)); +}  $content = elgg_view_entity($photo, array('full_view' => true));  | 
