diff options
author | Bharat Mediratta <bharat@menalto.com> | 2010-09-18 15:12:43 -0700 |
---|---|---|
committer | Bharat Mediratta <bharat@menalto.com> | 2010-09-18 15:12:43 -0700 |
commit | 77ec06166320dee631bbffcf3d57b0e2debcb157 (patch) | |
tree | 5aec43f45771a569e2e6b0eb51de7138224a87c6 /modules | |
parent | c65ce125cb50057b005ce45d8c050f3d2b0492e4 (diff) |
Redirect to the root album when there's an empty path and empty id.
Fixes ticket #1387.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/g2_import/controllers/g2.php | 54 |
1 files changed, 30 insertions, 24 deletions
diff --git a/modules/g2_import/controllers/g2.php b/modules/g2_import/controllers/g2.php index d260c9b4..1c07c729 100644 --- a/modules/g2_import/controllers/g2.php +++ b/modules/g2_import/controllers/g2.php @@ -34,38 +34,44 @@ class G2_Controller extends Controller { $path = $input->get("path"); $id = $input->get("g2_itemId"); - if ($id) { - // Requests by id are either core.DownloadItem or core.ShowItem requests. Later versions of - // Gallery 2 don't specify g2_view if it's the default (core.ShowItem). And in some cases - // (bbcode, embedding) people are using the id style URLs although URL rewriting is enabled. - $where = array(array("g2_id", "=", $id)); - $view = $input->get("g2_view"); - if ($view) { - $where[] = array("g2_url", "like", "%g2_view=$view%"); - } // else: Assuming that the first search hit is sufficiently good. - } else if ($path) { - $where = array(array("g2_url", "=", $path)); - } else { - throw new Kohana_404_Exception(); - } + if ($path || $id) { + if ($id) { + // Requests by id are either core.DownloadItem or core.ShowItem requests. Later versions of + // Gallery 2 don't specify g2_view if it's the default (core.ShowItem). And in some cases + // (bbcode, embedding) people are using the id style URLs although URL rewriting is enabled. + $where = array(array("g2_id", "=", $id)); + $view = $input->get("g2_view"); + if ($view) { + $where[] = array("g2_url", "like", "%g2_view=$view%"); + } // else: Assuming that the first search hit is sufficiently good. + } else if ($path) { + $where = array(array("g2_url", "=", $path)); + } else { + throw new Kohana_404_Exception(); + } - $g2_map = ORM::factory("g2_map") - ->merge_where($where) - ->find(); + $g2_map = ORM::factory("g2_map") + ->merge_where($where) + ->find(); - if (!$g2_map->loaded()) { - throw new Kohana_404_Exception(); - } + if (!$g2_map->loaded()) { + throw new Kohana_404_Exception(); + } - $item = ORM::factory("item", $g2_map->g3_id); - if (!$item->loaded()) { - throw new Kohana_404_Exception(); + $item = ORM::factory("item", $g2_map->g3_id); + if (!$item->loaded()) { + throw new Kohana_404_Exception(); + } + $resource_type = $g2_map->resource_type(); + } else { + $item = item::root(); + $resource_type = "album"; } access::required("view", $item); // Redirect the user to the new url - switch ($g2_map->resource_type) { + switch ($resource_type) { case "thumbnail": url::redirect($item->thumb_url(true)); |