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/helpers | |
parent | 923732ca4dca6db218f6252a7133cd72f98fa086 (diff) | |
parent | 85b0f580291e375a2c5ec21b8210e59023ee24c2 (diff) |
Merge commit 'upstream/master'
Diffstat (limited to 'modules/digibug/helpers')
-rw-r--r-- | modules/digibug/helpers/digibug.php | 57 | ||||
-rw-r--r-- | modules/digibug/helpers/digibug_installer.php | 37 | ||||
-rw-r--r-- | modules/digibug/helpers/digibug_menu.php | 27 | ||||
-rw-r--r-- | modules/digibug/helpers/digibug_task.php | 68 | ||||
-rw-r--r-- | modules/digibug/helpers/digibug_theme.php | 20 |
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"); } } |