diff options
author | Romain LE DISEZ <romain.git@ledisez.net> | 2009-07-16 17:31:20 +0200 |
---|---|---|
committer | Romain LE DISEZ <romain.git@ledisez.net> | 2009-07-16 17:31:20 +0200 |
commit | 7f5030ac208c30a7dc576a57cd9e665022ccbde5 (patch) | |
tree | 6b23e78aa8cc2dd363def46e083217e3c9b52f1b /modules/digibug/controllers | |
parent | 923732ca4dca6db218f6252a7133cd72f98fa086 (diff) | |
parent | 85b0f580291e375a2c5ec21b8210e59023ee24c2 (diff) |
Merge commit 'upstream/master'
Diffstat (limited to 'modules/digibug/controllers')
-rw-r--r-- | modules/digibug/controllers/admin_digibug.php | 50 | ||||
-rw-r--r-- | modules/digibug/controllers/digibug.php | 60 |
2 files changed, 32 insertions, 78 deletions
diff --git a/modules/digibug/controllers/admin_digibug.php b/modules/digibug/controllers/admin_digibug.php index 8263fc83..7124338f 100644 --- a/modules/digibug/controllers/admin_digibug.php +++ b/modules/digibug/controllers/admin_digibug.php @@ -19,56 +19,8 @@ */ class Admin_Digibug_Controller extends Admin_Controller { public function index() { - print $this->_get_view(); - } - - public function basic() { - access::verify_csrf(); - - module::set_var("digibug", "mode", "basic"); - message::success(t("Successfully set Digibug mode to basic")); - - url::redirect("admin/digibug"); - } - - public function advanced() { - access::verify_csrf(); - - $form = $this->_get_form(); - if ($form->validate()) { - module::set_var("digibug", "company_id", $form->group->company_id->value); - module::set_var("digibug", "event_id", $form->group->event_id->value); - module::set_var("digibug", "mode", "advanced"); - message::success(t("Successfully set Digibug mode to advanced")); - - url::redirect("admin/digibug"); - } - - print $this->_get_view($form); - } - - private function _get_view($form=null) { $v = new Admin_View("admin.html"); $v->content = new View("admin_digibug.html"); - $v->content->mode = module::get_var("digibug", "mode", "basic"); - $v->content->form = empty($form) ? $this->_get_form() : $form; - return $v; - } - - private function _get_form() { - $form = new Forge("admin/digibug/advanced", "", "post", - array("id" => "gAdminForm")); - $group = $form->group("group"); - $group->input("company_id") - ->label(t("Company Id")) - ->rules("required") - ->value(module::get_var("digibug", "company_id", "")); - $group->input("event_id") - ->label(t("Event Id")) - ->rules("required") - ->value(module::get_var("digibug", "event_id", "")); - $group->submit("submit")->value(t("Submit")); - - return $form; + print $v; } }
\ No newline at end of file diff --git a/modules/digibug/controllers/digibug.php b/modules/digibug/controllers/digibug.php index 3a427149..d881db9b 100644 --- a/modules/digibug/controllers/digibug.php +++ b/modules/digibug/controllers/digibug.php @@ -20,55 +20,48 @@ class Digibug_Controller extends Controller { public function print_photo($id) { access::verify_csrf(); - $item = ORM::factory("item", $id); + access::required("view_full", $item); - $proxy = ORM::factory("proxy"); - $proxy->uuid = digibug::uuid(); - $proxy->item_id = $item->id; - $proxy->save(); - - $url = url::abs_site("digibug/print_proxy/{$proxy->uuid}"); - if (module::get_var("digibug", "mode", "basic")) { - $company_id = module::get_var("digibug", "basic_company_id"); - $event_id = module::get_var("digibug", "basic_event_id"); + if (access::group_can(group::everybody(), "view_full", $item)) { + $full_url = $item->file_url(true); + $thumb_url = $item->thumb_url(true); } else { - $company_id = module::get_var("digibug", "company_id"); - $event_id = module::get_var("digibug", "event_id"); + $proxy = ORM::factory("digibug_proxy"); + $proxy->uuid = md5(rand()); + $proxy->item_id = $item->id; + $proxy->save(); + $full_url = url::abs_site("digibug/print_proxy/full/$proxy->uuid"); + $thumb_url = url::abs_site("digibug/print_proxy/thumb/$proxy->uuid"); } + $v = new View("digibug_form.html"); $v->order_parms = array( "digibug_api_version" => "100", - "company_id" => $company_id, - "event_id" => $event_id, + "company_id" => module::get_var("digibug", "company_id"), + "event_id" => module::get_var("digibug", "event_id"), "cmd" => "addimg", + "partner_code" => "69", "return_url" => url::abs_site("digibug/close_window"), "num_images" => "1", - "image_1" => $url, - "thumb_1" => "$url/thumb", + "image_1" => $full_url, + "thumb_1" => $thumb_url, "image_height_1" => $item->height, "image_width_1" => $item->width, "thumb_height_1" => $item->thumb_height, "thumb_width_1" => $item->thumb_width, - "title_1" => $item->title); + "title_1" => p::purify($item->title)); print $v; } - public function print_proxy($id, $thumb=null) { - $proxy = ORM::factory("proxy") - ->where("uuid", $id) - ->find(); - - if (!$proxy->loaded) { - Kohana::show_404(); - } - - if (!$proxy->item->loaded) { + public function print_proxy($type, $id) { + $proxy = ORM::factory("digibug_proxy", array("uuid" => $id)); + if (!$proxy->loaded || !$proxy->item->loaded) { Kohana::show_404(); } - $file = empty($thumb) ? $proxy->item->file_path() : $proxy->item->thumb_path(); + $file = $type == "full" ? $proxy->item->file_path() : $proxy->item->thumb_path(); if (!file_exists($file)) { kohana::show_404(); } @@ -84,12 +77,21 @@ class Digibug_Controller extends Controller { fclose($fd); // If the request was for the image and not the thumb, then delete the proxy. - if (empty($thumb)) { + if ($type == "full") { $proxy->delete(); } + + $this->_clean_expired(); } public function close_window() { print "<script type=\"text/javascript\">window.close();</script>"; } + + private function _clean_expired() { + Database::instance()>query( + "DELETE FROM {digibug_proxy} " . + "WHERE request_date <= (CURDATE() - INTERVAL 10 DAY) " . + "LIMIT 20"); + } }
\ No newline at end of file |