summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Almdal <tnalmdal@shaw.ca>2009-06-27 16:57:38 -0700
committerTim Almdal <tnalmdal@shaw.ca>2009-06-27 16:57:38 -0700
commit4707a97b826b12958fda6d59d157726b246693cd (patch)
tree2e15d54f2749b76250ffc02184053496e066b2b1
parent11f08ee4399c62cc1d2c36457a214c6db693db06 (diff)
parent76f688a070c7c36eb84dc22b21b165f00440a4a4 (diff)
Merge branch 'master' of git@github.com:gallery/gallery3
-rw-r--r--modules/digibug/controllers/admin_digibug.php50
-rw-r--r--modules/digibug/controllers/digibug.php71
-rw-r--r--modules/digibug/helpers/digibug_installer.php28
-rw-r--r--modules/digibug/helpers/digibug_menu.php26
-rw-r--r--modules/digibug/helpers/digibug_theme.php10
-rw-r--r--modules/digibug/images/digibug_logo.png (renamed from themes/admin_default/images/digibug_logo.png)bin17296 -> 17296 bytes
-rw-r--r--modules/digibug/js/digibug.js42
-rw-r--r--modules/digibug/models/digibug_proxy.php1
-rw-r--r--modules/digibug/module.info2
-rw-r--r--modules/digibug/views/admin_digibug.html.php29
-rw-r--r--modules/digibug/views/digibug_album.html.php8
-rw-r--r--modules/digibug/views/digibug_form.html.php23
-rw-r--r--modules/gallery/helpers/gallery_menu.php3
-rw-r--r--modules/gallery/libraries/Theme_View.php10
-rw-r--r--modules/recaptcha/views/admin_recaptcha.html.php2
-rw-r--r--themes/admin_default/css/screen.css54
-rw-r--r--themes/default/css/screen.css7
-rw-r--r--themes/default/views/album.html.php1
18 files changed, 117 insertions, 250 deletions
diff --git a/modules/digibug/controllers/admin_digibug.php b/modules/digibug/controllers/admin_digibug.php
index bd9e9d95..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 update() {
- 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);
- message::success(t("Successfully updated Digibug company and event id's"));
-
- url::redirect("admin/digibug");
- }
-
- print $this->_get_view($form);
- }
-
- public function default_settings() {
- access::verify_csrf();
-
- module::set_var("digibug", "company_id", null);
- module::set_var("digibug", "event_id", null);
- message::success(t("Successfully set Digibug company and event id's to default"));
-
- url::redirect("admin/digibug");
- }
-
- private function _get_view($form=null) {
$v = new Admin_View("admin.html");
$v->content = new View("admin_digibug.html");
- $v->content->form = empty($form) ? $this->_get_form() : $form;
- return $v;
- }
-
- private function _get_form() {
- $form = new Forge("admin/digibug/update", "", "post",
- array("id" => "gDigibugForm"));
- $group = $form->group("group")
- ->label(t("Enter your account information."));
- $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("")->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 7bec4b86..c1852009 100644
--- a/modules/digibug/controllers/digibug.php
+++ b/modules/digibug/controllers/digibug.php
@@ -20,54 +20,47 @@
class Digibug_Controller extends Controller {
public function print_photo($id) {
access::verify_csrf();
-
$item = ORM::factory("item", $id);
-
- $proxy = ORM::factory("digibug_proxy");
- $proxy->uuid = md5(rand());
- $proxy->item_id = $item->id;
- $proxy->save();
-
- $url = url::abs_site("digibug/print_proxy/{$proxy->uuid}");
- $company_id = module::get_var("digibug", "company_id",
- module::get_var("digibug", "default_company_id"));
- $event_id = module::get_var("digibug", "event_id",
- module::get_var("digibug", "default_event_id"));
+ access::required("view_full", $item);
+
+ if (access::group_can(group::everybody(), "view_full", $item)) {
+ $full_url = $item->file_url(true);
+ $thumb_url = $item->thumb_url(true);
+ } else {
+ $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",
"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" => p::clean($item->title));
- Kohana::log("error", Kohana::debug($v->order_parms));
print $v;
}
- public function print_proxy($id, $thumb=null) {
- $proxy = ORM::factory("digibug_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();
}
@@ -75,8 +68,6 @@ class Digibug_Controller extends Controller {
// We don't need to save the session for this request
Session::abort_save();
- $this->_clean_expired();
-
// Dump out the image
header("Content-Type: $proxy->item->mime_type");
Kohana::close_buffers(false);
@@ -85,9 +76,11 @@ 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() {
@@ -95,17 +88,9 @@ class Digibug_Controller extends Controller {
}
private function _clean_expired() {
- $expired = ORM::factory("digibug_proxy")
- ->where("request_date <= (CURDATE() - INTERVAL 10 DAY)")
- ->find_all();
-
- // Delete as many as we can in a second, so as to not slow up the request.
- $start = microtime(true);
- foreach ($expired as $proxy) {
- if (microtime(true) - $start > 1.0) {
- break;
- }
- $proxy->delete();
- }
+ Database::instance()>query(
+ "DELETE FROM {digibug_proxy} " .
+ "WHERE request_date <= (CURDATE() - INTERVAL 10 DAY) " .
+ "LIMIT 20");
}
} \ No newline at end of file
diff --git a/modules/digibug/helpers/digibug_installer.php b/modules/digibug/helpers/digibug_installer.php
index 3947f2c3..1cd78b44 100644
--- a/modules/digibug/helpers/digibug_installer.php
+++ b/modules/digibug/helpers/digibug_installer.php
@@ -21,20 +21,28 @@ class digibug_installer {
static function install() {
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;");
+ `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", "default_company_id", "3153");
- module::set_var("digibug", "default_event_id", "8491");
-
- module::set_version("digibug", 1);
+ module::set_var("digibug", "company_id", "3153");
+ module::set_var("digibug", "event_id", "8491");
+ module::set_version("digibug", 2);
}
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() {
diff --git a/modules/digibug/helpers/digibug_menu.php b/modules/digibug/helpers/digibug_menu.php
index d9baf59c..4b8db5a2 100644
--- a/modules/digibug/helpers/digibug_menu.php
+++ b/modules/digibug/helpers/digibug_menu.php
@@ -28,12 +28,24 @@ class digibug_menu {
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("javascript:digibug_popup('" .
+ 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->append(
+ Menu::factory("link")
+ ->id("digibug")
+ ->label(t("Print with Digibug"))
+ ->url("javascript:digibug_popup('" .
+ url::site("digibug/print_photo/$item->id?csrf=$theme->csrf") . "')")
+ ->css_id("gDigibugLink"));
+ }
}
}
diff --git a/modules/digibug/helpers/digibug_theme.php b/modules/digibug/helpers/digibug_theme.php
index bd269256..3b5be3b3 100644
--- a/modules/digibug/helpers/digibug_theme.php
+++ b/modules/digibug/helpers/digibug_theme.php
@@ -21,14 +21,4 @@ class digibug_theme_Core {
static function head($theme) {
return html::script("modules/digibug/js/digibug.js");
}
-
- 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 "";
- }
}
diff --git a/themes/admin_default/images/digibug_logo.png b/modules/digibug/images/digibug_logo.png
index 5eac2c7d..5eac2c7d 100644
--- a/themes/admin_default/images/digibug_logo.png
+++ b/modules/digibug/images/digibug_logo.png
Binary files differ
diff --git a/modules/digibug/js/digibug.js b/modules/digibug/js/digibug.js
index 837c8f7f..78ca8cf3 100644
--- a/modules/digibug/js/digibug.js
+++ b/modules/digibug/js/digibug.js
@@ -1,26 +1,16 @@
-$(document).ready(function() {
- $(".gDigibugPrintButton a").click(function(e) {
- e.preventDefault();
- queue_print(e);
- });
- $("#gDigibugLink").click(function(e) {
- e.preventDefault();
- return queue_print(e);
- });
-});
-
-function popUp(url, options) {
+function digibug_popup(url, options) {
options = $.extend({
/* default options */
- width: 400,
- height: 400,
+ width: '800',
+ height: '600',
target: 'dbPopWin',
scrollbars: 'yes',
resizable: 'no',
menuBar: 'no',
- addressBar: 'yes'}, options);
+ addressBar: 'yes'
+ }, options);
- /* center the window by default. */
+ // center the window by default.
if (!options.winY) {
options.winY = screen.height / 2 - options.height / 2;
};
@@ -32,19 +22,15 @@ function popUp(url, options) {
url,
options['target'],
'width= ' + options.width +
- ',height=' + options.height +
- ',top=' + options.winY +
- ',left=' + options.winX +
- ',scrollbars=' + options.scrollbars +
- ',resizable=' + options.resizable +
- ',menubar=' + options.menuBar +
- ',location=' + options.addressBar
- );
+ ',height=' + options.height +
+ ',top=' + options.winY +
+ ',left=' + options.winX +
+ ',scrollbars=' + options.scrollbars +
+ ',resizable=' + options.resizable +
+ ',menubar=' + options.menuBar +
+ ',location=' + options.addressBar
+ );
return false;
}
-
-function queue_print(e) {
- return popUp(e.currentTarget.href, { width: 800, height: 600 } );
-};
diff --git a/modules/digibug/models/digibug_proxy.php b/modules/digibug/models/digibug_proxy.php
index c76afdae..036af9c7 100644
--- a/modules/digibug/models/digibug_proxy.php
+++ b/modules/digibug/models/digibug_proxy.php
@@ -18,5 +18,4 @@
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
*/
class Digibug_Proxy_Model extends ORM {
- protected $has_one = array("item");
}
diff --git a/modules/digibug/module.info b/modules/digibug/module.info
index 58602c0d..c25a2454 100644
--- a/modules/digibug/module.info
+++ b/modules/digibug/module.info
@@ -1,3 +1,3 @@
name = Digibug
description = Digibug Photo Printing Module
-version = 1
+version = 2
diff --git a/modules/digibug/views/admin_digibug.html.php b/modules/digibug/views/admin_digibug.html.php
index 769fd415..7e4436ff 100644
--- a/modules/digibug/views/admin_digibug.html.php
+++ b/modules/digibug/views/admin_digibug.html.php
@@ -1,21 +1,22 @@
<?php defined("SYSPATH") or die("No direct script access.") ?>
-<script type="text/javascript">
- $("#gDigibugForm").ready(function() {
- $("#gDigibugForm input:submit").parent().append('<a href="<?= url::site("admin/digibug/default_settings?csrf=$csrf") ?>" class="gDigibugDefault"><?= t("Set Default") ?></a>');
- });
-</script>
<div id="gAdminDigibug">
<div class="gAdminDigibugIntro">
+ <img id="DigibugLogo" src="<?= url::file("modules/digibug/images/digibug_logo.png") ?>">
+ <h2> <?= t("Digibug Photo Printing") ?> </h2>
<p>
- <?= t("allows you to turn your photos into a wide variety of prints, gifts and games.") ?>
+ <?= t("Turn your photos into a wide variety of prints, gifts and games!") ?>
+ </p>
+
+ <ul id="gMessage">
+ <li class="gSuccess">
+ <?= t("You're ready to print photos!") ?>
+ </li>
+ </ul>
+
+ <p>
+ <?= t("You don't need an account with Digibug, but if you <a href=\"%signup_url\">register with Digibug</a> and enter your Digibug id in the <a href=\"%advanced_settings_url\">Advanced Settings</a> page you can make money off of your photos!",
+ array("signup_url" => "http://www.digibug.com/signup.php",
+ "advanced_settings_url" => url::site("admin/advanced_settings"))) ?>
</p>
- </div>
- <div id="gDigibugAccount">
- <div style="width: 120px;" class="gDigibugText gDigibugSignIn">
- <?= t("Don't have an account?") ?>
- <br/> <br/>
- <a href="http://www.digibug.com/signup.php" style=""><?= t("Sign up") ?></a><?= t(" to get started") ?>
- </div>
- <?= $form ?>
</div>
</div>
diff --git a/modules/digibug/views/digibug_album.html.php b/modules/digibug/views/digibug_album.html.php
deleted file mode 100644
index 2d9cf641..00000000
--- a/modules/digibug/views/digibug_album.html.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php defined("SYSPATH") or die("No direct script access.") ?>
-<div class="gDigibugPrintButton">
- <a class="gButtonLink ui-corner-all ui-state-default ui-icon-left"
- href="<?= url::site("digibug/print_photo/$id?csrf={$csrf}") ?>"
- title="<?= p::clean($title) ?>">
- <span class="ui-icon ui-icon-print"><?= $title ?></span>
- </a>
-</div> \ No newline at end of file
diff --git a/modules/digibug/views/digibug_form.html.php b/modules/digibug/views/digibug_form.html.php
index 7179827f..c6994cbe 100644
--- a/modules/digibug/views/digibug_form.html.php
+++ b/modules/digibug/views/digibug_form.html.php
@@ -1,16 +1,11 @@
<?php defined("SYSPATH") or die("No direct script access.") ?>
<html>
-<head>
- <?= html::script("lib/jquery.js") ?>
- <script type="text/javascript">
- $("body form").ready(function() {
- $("body form").submit();
- });
- </script>
-</head>
-<body>
- <?= form::open("http://www.digibug.com/dapi/order.php") ?>
- <?= form::hidden($order_parms) ?>
- <?= form::close() ?>
-</body>
-</html> \ No newline at end of file
+ <body>
+ <?= form::open("http://www.digibug.com/dapi/order.php") ?>
+ <?= form::hidden($order_parms) ?>
+ <?= form::close() ?>
+ <script type="text/javascript">
+ document.forms[0].submit();
+ </script>
+ </body>
+</html>
diff --git a/modules/gallery/helpers/gallery_menu.php b/modules/gallery/helpers/gallery_menu.php
index a25832fe..1f1e1ce2 100644
--- a/modules/gallery/helpers/gallery_menu.php
+++ b/modules/gallery/helpers/gallery_menu.php
@@ -94,6 +94,9 @@ class gallery_menu_Core {
static function tag($menu, $theme) {
}
+ static function thumb($menu, $theme, $item) {
+ }
+
static function photo($menu, $theme) {
if (access::can("view_full", $theme->item())) {
$menu->append(Menu::factory("link")
diff --git a/modules/gallery/libraries/Theme_View.php b/modules/gallery/libraries/Theme_View.php
index 1746f1d2..167f8a8d 100644
--- a/modules/gallery/libraries/Theme_View.php
+++ b/modules/gallery/libraries/Theme_View.php
@@ -122,16 +122,20 @@ class Theme_View_Core extends View {
$this->_menu("photo");
}
- private function _menu($type) {
+ public function thumb_menu($item) {
+ $this->_menu("thumb", $item);
+ }
+
+ private function _menu($type, $item=null) {
$menu = Menu::factory("root");
- call_user_func_array(array("gallery_menu", $type), array(&$menu, $this));
+ call_user_func_array(array("gallery_menu", $type), array(&$menu, $this, $item));
foreach (module::active() as $module) {
if ($module->name == "gallery") {
continue;
}
$class = "{$module->name}_menu";
if (method_exists($class, $type)) {
- call_user_func_array(array($class, $type), array(&$menu, $this));
+ call_user_func_array(array($class, $type), array(&$menu, $this, $item));
}
}
diff --git a/modules/recaptcha/views/admin_recaptcha.html.php b/modules/recaptcha/views/admin_recaptcha.html.php
index 06a664e1..4c041ba2 100644
--- a/modules/recaptcha/views/admin_recaptcha.html.php
+++ b/modules/recaptcha/views/admin_recaptcha.html.php
@@ -2,7 +2,7 @@
<div id="gAdminRecaptcha">
<h1> <?= t("ReCaptcha Challenge Filtering") ?> </h1>
<p>
- <?= t("Recaptcha is a free CAPTCHA service that helps to digitize books, newspapers and old time radio shows. automated spam filtering service. In order to use it, you need to sign up for a <a href=\"%domain_url\">ReCaptcha Public/Private Key pair</a>, which is also free. Once registered, the challenge and response strings are evaluated at <a href=\"%recaptcha_url\">recaptcha.net</a> to determine if the form content has been entered by a bot.",
+ <?= t("Recaptcha is a free anti-bot service that helps digitize books. In order to use it, you need to sign up for a <a href=\"%domain_url\">ReCaptcha Public/Private Key pair</a>, which is also free. Once registered, the challenge and response strings are evaluated at <a href=\"%recaptcha_url\">recaptcha.net</a> to determine if the form content has been entered by a bot.",
array("domain_url" => $form->get_key_url,
"recaptcha_url" => "http://recaptcha.net")) ?>
</p>
diff --git a/themes/admin_default/css/screen.css b/themes/admin_default/css/screen.css
index d66115ef..f4173d4b 100644
--- a/themes/admin_default/css/screen.css
+++ b/themes/admin_default/css/screen.css
@@ -439,57 +439,3 @@ li.gDefaultGroup h4, li.gDefaultGroup .gUser {
overflow: hidden;
}
-/** *******************************************************************
- * 8) Digibug Print Administration
- **********************************************************************/
-.gAdminDigibugIntro {
- background-image: url(../images/digibug_logo.png);
- background-repeat: no-repeat;
- padding-bottom: 20px;
- width: 820px;
-}
-
-.gAdminDigibugIntro p {
- font-family: Trebuchet MS,Arial,Verdana,Helvetica,sans-serif;
- font-size: 1.3em;
- font-weight: bold;
- padding-left: 5px;
- padding-top: 15px;
- text-indent: 110px;
-}
-
-.gDigibugAccount {
- width: 820px;
- height: 420px;
-}
-
-.gDigibugTab .gDigibugText {
- font-size: 12px;
- font-weight: bold;
- line-height: 17px;
- padding-bottom: 15px;
-}
-
-.gDigibugSignIn {
- width: 115px;
- float: left;
-}
-
-.gDigibugSignIn a {
- color: black;
- font-size: 16px;
- font-weight: bold;
- text-decoration: underline;
-}
-
-#gDigibugForm {
- float: left;
- padding-left: 30px;
- width: 220px;
-}
-
-.gDigibugDefault {
- clear: none;
- float: left;
- margin: .3em 1em;
-}
diff --git a/themes/default/css/screen.css b/themes/default/css/screen.css
index 7075494d..d3c4de6f 100644
--- a/themes/default/css/screen.css
+++ b/themes/default/css/screen.css
@@ -1051,10 +1051,3 @@ form .gError,
.rtl .ui-icon-left .ui-icon {
float: right;
}
-
-/** *******************************************************************
- * 10) Digibug Print
- **********************************************************************/
-.gDigibugPrintButton {
- float: left;
-}
diff --git a/themes/default/views/album.html.php b/themes/default/views/album.html.php
index 7e6913df..46b0d29a 100644
--- a/themes/default/views/album.html.php
+++ b/themes/default/views/album.html.php
@@ -19,6 +19,7 @@
<?= $child->thumb_img(array("class" => "gThumbnail")) ?>
</a>
<?= $theme->thumb_bottom($child) ?>
+ <?= $theme->thumb_menu($child) ?>
<h2><span></span><a href="<?= $child->url() ?>"><?= p::clean($child->title) ?></a></h2>
<ul class="gMetadata">
<?= $theme->thumb_info($child) ?>