diff options
| author | Chad Parry <github@chad.parry.org> | 2011-04-28 19:41:44 -0600 |
|---|---|---|
| committer | Chad Parry <github@chad.parry.org> | 2011-04-28 19:41:44 -0600 |
| commit | b875368167658fd7992812504674afeb61c64831 (patch) | |
| tree | 93360747c3655657f9e9bb5eb00386ec5b457228 /modules/gallery/helpers/system.php | |
| parent | 406064087662184ec7f85297b9cdf83a77976616 (diff) | |
This patch helps provide raw photo support with some small changes to the framework. Items can now change their extension and MIME type.
Squashed commit of the following:
commit 4c2b2ebd3f2052898fbfb175650ed4cf49c8006e
Author: Chad Parry <github@chad.parry.org>
Date: Wed Apr 27 20:52:35 2011 -0600
Remove a newline at the end of the file that I accidentally introduced.
commit 6d564f185e5279d6cca9a7385066514ff18a2455
Merge: 7ff485f 4060640
Author: Chad Parry <github@chad.parry.org>
Date: Wed Apr 27 20:35:58 2011 -0600
Merge branch 'master' of https://github.com/gallery/gallery3 into rawphoto
commit 7ff485fa48c392bbbb0370f67cb1bd6fcc00c2a4
Author: Chad Parry <github@chad.parry.org>
Date: Wed Apr 27 20:29:06 2011 -0600
Move the extensions helpers out of the Kohana system directory and into their own Gallery Extensions class.
commit 26585fed03236f0f70a75959e1d3002025f4e15e
Merge: 809567f c8f90e8
Author: Chad Parry <github@chad.parry.org>
Date: Sun Apr 24 08:28:39 2011 -0600
Merge branch 'master' of https://github.com/gallery/gallery3 into rawphoto
commit 809567f12850f59bdeb47a2963f6968b99b5a201
Author: Chad Parry <github@chad.parry.org>
Date: Sun Apr 24 08:10:04 2011 -0600
Expose the data file field.
commit fcb06bf175bb9eeff36d9c294e97ace9374ef0f3
Author: Chad Parry <github@chad.parry.org>
Date: Sun Apr 24 00:45:12 2011 -0600
Don't assign to the item->name field if the name is unchanged, because the save method will crash.
commit c6ef706d70c7e48bea1145eec1b13fb5683e023f
Author: Chad Parry <github@chad.parry.org>
Date: Sat Apr 23 22:55:59 2011 -0600
Preserve old data files long enough for them to be available to event handlers.
commit 0d6a3a3cfc4f38f450db9e18da47a5e2ad826af8
Author: Chad Parry <github@chad.parry.org>
Date: Sat Apr 23 21:19:47 2011 -0600
Create a tempnam substitute that safely creates files with a given extension.
commit e149cf7238a1f8eaddfc68580f2d636dd8255795
Author: Chad Parry <github@chad.parry.org>
Date: Sat Apr 23 16:39:25 2011 -0600
Support data files that change their extension and MIME type.
commit 6702104f571413e4d57db3515b2070c48d3e9b55
Author: Chad Parry <github@chad.parry.org>
Date: Sat Apr 23 16:35:00 2011 -0600
Resolve an infinite recursion that happens when the path caches are updated during saving.
commit 944cb72eea946f4c45a04b7e4c7c33929fa8b9f3
Merge: 567522b 5af74d4
Author: Chad Parry <github@chad.parry.org>
Date: Fri Apr 22 14:10:42 2011 -0600
Merge remote branch 'origin/master' into rawphoto
commit 567522bfa08c370bb5baf8454afc5b04bc9e49b4
Author: Chad Parry <github@chad.parry.org>
Date: Thu Apr 21 20:12:32 2011 -0600
Add an event for when a new graphics toolkit is chosen.
commit 31ba081b793141ca36866a6dd349cd2eac5af68e
Author: Chad Parry <github@chad.parry.org>
Date: Thu Apr 21 02:06:53 2011 -0600
Add an event that will collect all valid filename extensions.
Diffstat (limited to 'modules/gallery/helpers/system.php')
| -rw-r--r-- | modules/gallery/helpers/system.php | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/modules/gallery/helpers/system.php b/modules/gallery/helpers/system.php index c39c7227..31ecafa7 100644 --- a/modules/gallery/helpers/system.php +++ b/modules/gallery/helpers/system.php @@ -40,4 +40,29 @@ class system_Core { } return null; } + + /** + * Create a file with a unique file name. + * This helper is similar to the built-in tempnam, except that it supports an optional postfix. + */ + static function tempnam($dir = TMPPATH, $prefix = "", $postfix = "") { + return self::_tempnam($dir, $prefix, $postfix, "tempnam"); + } + + // This helper provides a dependency-injected implementation of tempnam. + static function _tempnam($dir, $prefix, $postfix, $builtin) { + $success = false; + do { + $basename = call_user_func($builtin, $dir, $prefix); + if (!$basename) { + return false; + } + $filename = $basename . $postfix; + $success = !file_exists($filename) && @rename($basename, $filename); + if (!$success) { + @unlink($basename); + } + } while (!$success); + return $filename; + } }
\ No newline at end of file |
