summaryrefslogtreecommitdiff
path: root/modules/digibug/controllers
diff options
context:
space:
mode:
authorRomain LE DISEZ <romain.git@ledisez.net>2009-07-16 17:31:20 +0200
committerRomain LE DISEZ <romain.git@ledisez.net>2009-07-16 17:31:20 +0200
commit7f5030ac208c30a7dc576a57cd9e665022ccbde5 (patch)
tree6b23e78aa8cc2dd363def46e083217e3c9b52f1b /modules/digibug/controllers
parent923732ca4dca6db218f6252a7133cd72f98fa086 (diff)
parent85b0f580291e375a2c5ec21b8210e59023ee24c2 (diff)
Merge commit 'upstream/master'
Diffstat (limited to 'modules/digibug/controllers')
-rw-r--r--modules/digibug/controllers/admin_digibug.php50
-rw-r--r--modules/digibug/controllers/digibug.php60
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