summaryrefslogtreecommitdiff
path: root/modules/digibug/helpers
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/helpers
parent923732ca4dca6db218f6252a7133cd72f98fa086 (diff)
parent85b0f580291e375a2c5ec21b8210e59023ee24c2 (diff)
Merge commit 'upstream/master'
Diffstat (limited to 'modules/digibug/helpers')
-rw-r--r--modules/digibug/helpers/digibug.php57
-rw-r--r--modules/digibug/helpers/digibug_installer.php37
-rw-r--r--modules/digibug/helpers/digibug_menu.php27
-rw-r--r--modules/digibug/helpers/digibug_task.php68
-rw-r--r--modules/digibug/helpers/digibug_theme.php20
5 files changed, 42 insertions, 167 deletions
diff --git a/modules/digibug/helpers/digibug.php b/modules/digibug/helpers/digibug.php
deleted file mode 100644
index 46c9d945..00000000
--- a/modules/digibug/helpers/digibug.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php defined("SYSPATH") or die("No direct script access.");
-/**
- * Gallery - a web based photo album viewer and editor
- * Copyright (C) 2000-2009 Bharat Mediratta
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or (at
- * your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
- */
-class digibug_Core {
- /**
- * Get a unique id for a print request.
- * Its a good thing we only support linux as this won't work on Windows
- */
- static function uuid() {
- $fp = @fopen("/dev/urandom", "rb");
- $bits = @fread($fp, 16);
- @fclose($fp);
-
- $time_low = bin2hex(substr($bits, 0, 4));
- $time_mid = bin2hex(substr($bits, 4, 2));
- $time_hi_and_version = bin2hex(substr($bits, 6, 2));
- $clock_seq_hi_and_reserved = bin2hex(substr($bits, 8, 2));
- $node = bin2hex ( substr ( $bits, 10, 6 ) );
-
- /**
- * Set the four most significant bits (bits 12 through 15) of the
- * time_hi_and_version field to the 4-bit version number from
- * Section 4.1.3.
- * @see http://tools.ietf.org/html/rfc4122#section-4.1.3
- */
- $time_hi_and_version = hexdec ( $time_hi_and_version );
- $time_hi_and_version = $time_hi_and_version >> 4;
- $time_hi_and_version = $time_hi_and_version | 0x4000;
-
- /**
- * Set the two most significant bits (bits 6 and 7) of the
- * clock_seq_hi_and_reserved to zero and one, respectively.
- */
- $clock_seq_hi_and_reserved = hexdec ( $clock_seq_hi_and_reserved );
- $clock_seq_hi_and_reserved = $clock_seq_hi_and_reserved >> 2;
- $clock_seq_hi_and_reserved = $clock_seq_hi_and_reserved | 0x8000;
-
- return sprintf ('%08s-%04s-%04x-%04x-%012s',
- $time_low, $time_mid, $time_hi_and_version, $clock_seq_hi_and_reserved, $node);
- }
-}
diff --git a/modules/digibug/helpers/digibug_installer.php b/modules/digibug/helpers/digibug_installer.php
index baff2075..1cd78b44 100644
--- a/modules/digibug/helpers/digibug_installer.php
+++ b/modules/digibug/helpers/digibug_installer.php
@@ -19,27 +19,34 @@
*/
class digibug_installer {
static function install() {
- $version = module::get_version("digibug");
- if ($version == 0) {
- Database::instance()
- ->query("CREATE TABLE {proxies} (
- `id` int(9) NOT NULL AUTO_INCREMENT,
- `uuid` char(36) NOT NULL,
- `request_date` TIMESTAMP NOT NULL DEFAULT current_timestamp,
- `item_id` int(9) NOT NULL,
- PRIMARY KEY (`id`))
- ENGINE=InnoDB DEFAULT CHARSET=utf8;");
+ Database::instance()
+ ->query("CREATE TABLE {digibug_proxies} (
+ `id` int(9) NOT NULL AUTO_INCREMENT,
+ `uuid` char(32) NOT NULL,
+ `request_date` TIMESTAMP NOT NULL DEFAULT current_timestamp,
+ `item_id` int(9) NOT NULL,
+ PRIMARY KEY (`id`))
+ ENGINE=InnoDB DEFAULT CHARSET=utf8;");
- module::set_var("digibug", "basic_company_id", "3153");
- module::set_var("digibug", "basic_event_id", "8491");
- module::set_var("digibug", "mode", "basic");
+ module::set_var("digibug", "company_id", "3153");
+ module::set_var("digibug", "event_id", "8491");
+ module::set_version("digibug", 2);
+ }
- module::set_version("digibug", 1);
+ static function upgrade($version) {
+ if ($version == 1) {
+ module::clear_var("digibug", "default_company_id");
+ module::clear_var("digibug", "default_event_id");
+ module::clear_var("digibug", "basic_default_company_id");
+ module::clear_var("digibug", "basic_event_id");
+ module::set_var("digibug", "company_id", "3153");
+ module::set_var("digibug", "event_id", "8491");
+ module::set_version("digibug", $version = 2);
}
}
static function uninstall() {
- Database::instance()->query("DROP TABLE IF EXISTS {proxies}");
+ Database::instance()->query("DROP TABLE IF EXISTS {digibug_proxies}");
module::delete("digibug");
}
}
diff --git a/modules/digibug/helpers/digibug_menu.php b/modules/digibug/helpers/digibug_menu.php
index 6c466031..c95cada2 100644
--- a/modules/digibug/helpers/digibug_menu.php
+++ b/modules/digibug/helpers/digibug_menu.php
@@ -22,18 +22,29 @@ class digibug_menu {
$menu->get("settings_menu")
->append(Menu::factory("link")
->id("digibug_menu")
- ->label(t("Digibug Administration"))
+ ->label(t("Digibug"))
->url(url::site("admin/digibug")));
}
static function photo($menu, $theme) {
$item = $theme->item();
- $csrf = access::csrf_token();
- $menu
- ->append(Menu::factory("link")
- ->id("digibug")
- ->label(t("Print with Digibug"))
- ->url(url::site("digibug/print_photo/{$item->id}?csrf={$csrf}"))
- ->css_id("gDigibugLink"));
+ $menu->append(
+ Menu::factory("link")
+ ->id("digibug")
+ ->label(t("Print with Digibug"))
+ ->url(url::site("digibug/print_photo/$item->id?csrf=$theme->csrf"))
+ ->css_id("gDigibugLink"));
+ }
+
+ static function thumb($menu, $theme, $item) {
+ if ($item->type == "photo" && access::can("view_full", $item)) {
+ $menu->get("options_menu")
+ ->append(
+ Menu::factory("link")
+ ->id("digibug")
+ ->label(t("Print with Digibug"))
+ ->url(url::site("digibug/print_photo/$item->id?csrf=$theme->csrf"))
+ ->css_id("gDigibugLink"));
+ }
}
}
diff --git a/modules/digibug/helpers/digibug_task.php b/modules/digibug/helpers/digibug_task.php
deleted file mode 100644
index 98f79731..00000000
--- a/modules/digibug/helpers/digibug_task.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php defined("SYSPATH") or die("No direct script access.");
-/**
- * Gallery - a web based photo album viewer and editor
- * Copyright (C) 2000-2009 Bharat Mediratta
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or (at
- * your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
- */
-class digibug_task_Core {
- static function available_tasks() {
- // Delete extra exif_records
- $expired_request_count = Database::instance()->query(
- "SELECT count(*) as print_requests
- FROM {proxies}
- WHERE `request_date` <= (CURDATE() - INTERVAL 10 DAY)")->current()->print_requests;
-
- return array(Task_Definition::factory()
- ->callback("digibug_task::remove_expired")
- ->name(t("Remove Digibug print requests"))
- ->description($expired_request_count
- ? t2("1 Digibug print request has expired",
- "%count Digibug print requests have expired",
- $expired_request_count)
- : t("All print requests are current"))
- ->severity($expired_request_count ? log::WARNING : log::SUCCESS));
- }
-
- static function remove_expired($task) {
- $completed = $task->get("completed", 0);
- $expired = ORM::factory("proxy")
- ->where("request_date <= (CURDATE() - INTERVAL 10 DAY)")
- ->find_all();
- $remaining = $expired->count();
-
- $start = microtime(true);
- foreach ($expired as $proxy) {
- if (microtime(true) - $start > 1.5) {
- break;
- }
- $proxy->delete();
- $completed++;
- $remaining--;
- }
-
- if ($completed + $remaining > 0) {
- $task->percent_complete = (int)(100 * $completed / ($completed + $remaining));
- } else {
- $task->percent_complete = 100;
- }
-
- $task->set("completed", $completed);
- if ($remaining == 0) {
- $task->done = true;
- $task->state = "success";
- }
- }
-}
diff --git a/modules/digibug/helpers/digibug_theme.php b/modules/digibug/helpers/digibug_theme.php
index e52fcc7f..f94d07c6 100644
--- a/modules/digibug/helpers/digibug_theme.php
+++ b/modules/digibug/helpers/digibug_theme.php
@@ -19,24 +19,6 @@
*/
class digibug_theme_Core {
static function head($theme) {
- $head[] = "<link media=\"screen, projection\" rel=\"stylesheet\" type=\"text/css\" href=\"" .
- url::file("modules/digibug/css/digibug.css") . "\" />";
- $head[] = html::script("modules/digibug/js/digibug.js");;
- return implode("\n", $head);
- }
-
- static function admin_head($theme) {
- return "<link media=\"screen, projection\" rel=\"stylesheet\" type=\"text/css\" href=\"" .
- url::file("modules/digibug/css/digibug.css") . "\" />";
- }
-
- static function thumb_bottom($theme, $child) {
- if ($theme->page_type() == "album" && $child->type == "photo") {
- $v = new View("digibug_album.html");
- $v->id = $child->id;
- $v->title = t("Print photo with Digibug");
- return $v->render();
- }
- return "";
+ $theme->script("modules/digibug/js/digibug.js");
}
}