summaryrefslogtreecommitdiff
path: root/modules/gallery/helpers/MY_url.php
diff options
context:
space:
mode:
authorBharat Mediratta <bharat@menalto.com>2009-05-27 15:07:27 -0700
committerBharat Mediratta <bharat@menalto.com>2009-05-27 15:07:27 -0700
commit28b41056e3ea962dce1ad017a3c0a60252195e7a (patch)
tree82c11956bb13969e6c8ddeb39ccfce7ae70786ca /modules/gallery/helpers/MY_url.php
parent2e285cf3ecac742193457347ecb5c2d1121a1052 (diff)
Restructure things so that the application is now just another module.
Kohana makes this type of transition fairly straightforward in that all controllers/helpers/etc are still located in the cascading filesystem without any extra effort, except that I've temporarily added a hack to force modules/gallery into the module path. Rename what's left of "core" to be "application" so that it conforms more closely to the Kohana standard (basically, just application/config/config.php which is the minimal thing that you need in the application directory) There's still considerable work left to be done here.
Diffstat (limited to 'modules/gallery/helpers/MY_url.php')
-rw-r--r--modules/gallery/helpers/MY_url.php81
1 files changed, 81 insertions, 0 deletions
diff --git a/modules/gallery/helpers/MY_url.php b/modules/gallery/helpers/MY_url.php
new file mode 100644
index 00000000..81dcbe1e
--- /dev/null
+++ b/modules/gallery/helpers/MY_url.php
@@ -0,0 +1,81 @@
+<?php defined("SYSPATH") or die("No direct script access.");
+/**
+ * Gallery - a web based photo album viewer and editor
+ * Copyright (C) 2000-2009 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.
+ */
+class url extends url_Core {
+ static function site($uri, $protocol=false) {
+ if (($pos = strpos($uri, "?")) !== false) {
+ list ($uri, $query) = explode("?", $uri, 2);
+ $query = "?$query";
+ } else {
+ $query = "";
+ }
+
+ $parts = explode("/", $uri, 3);
+ if ($parts[0] == "albums" || $parts[0] == "photos") {
+ $uri = model_cache::get("item", $parts[1])->relative_path();
+ }
+ return parent::site($uri . $query, $protocol);
+ }
+
+ static function parse_url() {
+ if (Router::$controller) {
+ return;
+ }
+
+ $count = count(Router::$segments);
+ foreach (ORM::factory("item")
+ ->where("name", html_entity_decode(Router::$segments[$count - 1], ENT_QUOTES))
+ ->where("level", $count + 1)
+ ->find_all() as $match) {
+ if ($match->relative_path() == html_entity_decode(Router::$current_uri, ENT_QUOTES)) {
+ $item = $match;
+ }
+ }
+
+ if (!empty($item)) {
+ Router::$controller = "{$item->type}s";
+ Router::$controller_path = APPPATH . "controllers/{$item->type}s.php";
+ Router::$method = $item->id;
+ }
+ }
+
+ /**
+ * Just like url::file() except that it returns an absolute URI
+ */
+ static function abs_file($path) {
+ return url::base(
+ false, (empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] === 'off') ? 'http' : 'https') . $path;
+ }
+
+ /**
+ * Just like url::site() except that it returns an absolute URI and
+ * doesn't take a protocol parameter.
+ */
+ static function abs_site($path) {
+ return url::site(
+ $path, (empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] === 'off') ? 'http' : 'https');
+ }
+
+ /**
+ * Just like url::current except that it returns an absolute URI
+ */
+ static function abs_current($qs=false) {
+ return self::abs_site(url::current($qs));
+ }
+}