summaryrefslogtreecommitdiff
path: root/modules/g2_import
diff options
context:
space:
mode:
authorBharat Mediratta <bharat@menalto.com>2010-09-18 15:12:43 -0700
committerBharat Mediratta <bharat@menalto.com>2010-09-18 15:12:43 -0700
commit77ec06166320dee631bbffcf3d57b0e2debcb157 (patch)
tree5aec43f45771a569e2e6b0eb51de7138224a87c6 /modules/g2_import
parentc65ce125cb50057b005ce45d8c050f3d2b0492e4 (diff)
Redirect to the root album when there's an empty path and empty id.
Fixes ticket #1387.
Diffstat (limited to 'modules/g2_import')
-rw-r--r--modules/g2_import/controllers/g2.php54
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));