summaryrefslogtreecommitdiff
path: root/modules/g2_import
diff options
context:
space:
mode:
authorAndy Staudacher <andy.st@gmail.com>2010-02-06 16:29:51 -0800
committerAndy Staudacher <andy.st@gmail.com>2010-02-06 16:29:51 -0800
commit7232b6c026c3fe371b6846a8a4536a1b661804c4 (patch)
tree30810068d25e22367c3150f14eaf439b4cbaa043 /modules/g2_import
parent33b39efb491d730c8653ca3c06a22297338aa8b8 (diff)
Fixing G2 url mapping for G2 default style URLs (where ShowItem and DownloadItem URLs aren't rewritten in G2).
Note: For a perfect solution, we should add 2 map entries for each of G2's ShowItem and DownloadItem URLs, one for short and one for long style URLs. E.g. A G2 installation might have been using short style URLs not for its complete lifetime. And long style URLs are supposed to work in G2 even when short style URLs are enabled (and its used that way in bbcode / as a way to get permenant, id based URLs from G2).
Diffstat (limited to 'modules/g2_import')
-rw-r--r--modules/g2_import/controllers/g2.php16
1 files changed, 13 insertions, 3 deletions
diff --git a/modules/g2_import/controllers/g2.php b/modules/g2_import/controllers/g2.php
index 8260cf9f..347da649 100644
--- a/modules/g2_import/controllers/g2.php
+++ b/modules/g2_import/controllers/g2.php
@@ -35,15 +35,25 @@ class G2_Controller extends Controller {
$id = $input->get("g2_itemId");
if ($id) {
- $where = array("g2_id", "=", $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("g2_url", "=", $path);
+ $where = array(array("g2_url", "=", $path));
} else {
throw new Kohana_404_Exception();
}
$g2_map = ORM::factory("g2_map")
- ->merge_where(array($where))
+ ->merge_where($where)
->find();
if (!$g2_map->loaded()) {