diff options
| author | Tim Almdal <tnalmdal@shaw.ca> | 2009-06-27 16:57:38 -0700 | 
|---|---|---|
| committer | Tim Almdal <tnalmdal@shaw.ca> | 2009-06-27 16:57:38 -0700 | 
| commit | 4707a97b826b12958fda6d59d157726b246693cd (patch) | |
| tree | 2e15d54f2749b76250ffc02184053496e066b2b1 /modules/digibug | |
| parent | 11f08ee4399c62cc1d2c36457a214c6db693db06 (diff) | |
| parent | 76f688a070c7c36eb84dc22b21b165f00440a4a4 (diff) | |
Merge branch 'master' of git@github.com:gallery/gallery3
Diffstat (limited to 'modules/digibug')
| -rw-r--r-- | modules/digibug/controllers/admin_digibug.php | 50 | ||||
| -rw-r--r-- | modules/digibug/controllers/digibug.php | 69 | ||||
| -rw-r--r-- | modules/digibug/helpers/digibug_installer.php | 28 | ||||
| -rw-r--r-- | modules/digibug/helpers/digibug_menu.php | 26 | ||||
| -rw-r--r-- | modules/digibug/helpers/digibug_theme.php | 10 | ||||
| -rw-r--r-- | modules/digibug/images/digibug_logo.png | bin | 0 -> 17296 bytes | |||
| -rw-r--r-- | modules/digibug/js/digibug.js | 42 | ||||
| -rw-r--r-- | modules/digibug/models/digibug_proxy.php | 1 | ||||
| -rw-r--r-- | modules/digibug/module.info | 2 | ||||
| -rw-r--r-- | modules/digibug/views/admin_digibug.html.php | 29 | ||||
| -rw-r--r-- | modules/digibug/views/digibug_album.html.php | 8 | ||||
| -rw-r--r-- | modules/digibug/views/digibug_form.html.php | 23 | 
12 files changed, 104 insertions, 184 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); +    access::required("view_full", $item); -    $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")); +    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/modules/digibug/images/digibug_logo.png b/modules/digibug/images/digibug_logo.pngBinary files differ new file mode 100644 index 00000000..5eac2c7d --- /dev/null +++ b/modules/digibug/images/digibug_logo.png 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> | 
