summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorBharat Mediratta <bharat@menalto.com>2008-11-19 23:33:50 +0000
committerBharat Mediratta <bharat@menalto.com>2008-11-19 23:33:50 +0000
commit4a4eac31adc3e98802bb2b3c6fe1e9b4507ed32d (patch)
treedd5fe720cfbf9e85ebc8eb82be3eef0b1a6f021e /core
parentc25f21accbae7081d946cd2d4dd83ebc64e7f0f7 (diff)
Create url::abs_site() and url::abs_file() to allow us to generate
full URLs with a clean API, and isolate the cruddy party where we have to hardcode the server protocol into a single file.
Diffstat (limited to 'core')
-rw-r--r--core/helpers/MY_url.php36
-rw-r--r--core/models/item.php19
2 files changed, 47 insertions, 8 deletions
diff --git a/core/helpers/MY_url.php b/core/helpers/MY_url.php
new file mode 100644
index 00000000..b67981ab
--- /dev/null
+++ b/core/helpers/MY_url.php
@@ -0,0 +1,36 @@
+<?php defined("SYSPATH") or die("No direct script access.");
+/**
+ * Gallery - a web based photo album viewer and editor
+ * Copyright (C) 2000-2008 Bharat Mediratta
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+<?php
+class url extends url_Core {
+ /**
+ * Just like url::file() except that it returns an absolute URI
+ */
+ public static function abs_file($path) {
+ return url::base(false, "http") . $path;
+ }
+
+ /**
+ * Just like url::site() except that it returns an absolute URI and
+ * doesn't take a protocol parameter.
+ */
+ public static function abs_site($path) {
+ return url::site($path, "http");
+ }
+} \ No newline at end of file
diff --git a/core/models/item.php b/core/models/item.php
index af8a81fa..1c41805f 100644
--- a/core/models/item.php
+++ b/core/models/item.php
@@ -53,8 +53,9 @@ class Item_Model extends ORM_MPTT {
* album: http://example.com/gallery3/var/resizes/album1/
* photo: http://example.com/gallery3/var/albums/album1/photo.jpg
*/
- public function url($index=false, $protocol=false) {
- return $this->_relative_path(url::base($index, $protocol) . "var/albums", "", "");
+ public function file_url($full_uri=false) {
+ $func = $full_uri ? "abs_file" : "file";
+ return $this->_relative_path(url::$func("") . "var/albums", "", "");
}
/**
@@ -73,11 +74,12 @@ class Item_Model extends ORM_MPTT {
* album: http://example.com/gallery3/var/resizes/album1/.thumb.jpg
* photo: http://example.com/gallery3/var/albums/album1/photo.thumb.jpg
*/
- public function thumbnail_url($index=false, $protocol=false) {
+ public function thumbnail_url($full_uri=true) {
+ $func = $full_uri ? "abs_file" : "file";
if ($this->is_album()) {
- return $this->_relative_path(url::base($index, $protocol) . "var/resizes", "", "/.thumb.jpg");
+ return $this->_relative_path(url::$func(""), "var/resizes", "", "/.thumb.jpg");
} else {
- return $this->_relative_path(url::base($index, $protocol) . "var/resizes", ".thumb", "");
+ return $this->_relative_path(url::$func(""), "var/resizes", ".thumb", "");
}
}
@@ -97,11 +99,12 @@ class Item_Model extends ORM_MPTT {
* album: http://example.com/gallery3/var/resizes/album1/.resize.jpg
* photo: http://example.com/gallery3/var/albums/album1/photo.resize.jpg
*/
- public function resize_url($index=false, $protocol=false) {
+ public function resize_url($full_uri=true) {
+ $func = $full_uri ? "abs_file" : "file";
if ($this->is_album()) {
- return $this->_relative_path(url::base($index, $protocol) . "var/resizes", "", "/.resize.jpg");
+ return $this->_relative_path(url::$func("") . "var/resizes", "", "/.resize.jpg");
} else {
- return $this->_relative_path(url::base($index, $protocol) . "var/resizes", ".resize", "");
+ return $this->_relative_path(url::$func("") . "var/resizes", ".resize", "");
}
}