summaryrefslogtreecommitdiff
path: root/core/helpers
diff options
context:
space:
mode:
authorTim Almdal <tnalmdal@shaw.ca>2009-03-03 05:59:38 +0000
committerTim Almdal <tnalmdal@shaw.ca>2009-03-03 05:59:38 +0000
commit7cadb4b21b90864b4151481da9aba244d7083788 (patch)
treef8df3ce866f69a6bc11790d3b2cb4c18a4ba297b /core/helpers
parent1d5cca34efcd25473f00ed5d6594ea15c569622f (diff)
Refactored the batch Api: 1) created a small batch helper class:
Starting a batch call batch::operation(name, item). In the case of adding photos name = add and item is the parent of the new items. When the operation is finished the batch::end_operation(name) is called. operation and end_operation events are called. Handlers (i.e. item_created) can call batch::in_progress(name) to determine if a batch is being processed.
Diffstat (limited to 'core/helpers')
-rw-r--r--core/helpers/batch.php40
1 files changed, 40 insertions, 0 deletions
diff --git a/core/helpers/batch.php b/core/helpers/batch.php
new file mode 100644
index 00000000..4411b1b0
--- /dev/null
+++ b/core/helpers/batch.php
@@ -0,0 +1,40 @@
+<?php defined("SYSPATH") or die("No direct script access.");
+/**
+ * Gallery - a web based photo album viewer and editor
+ * Copyright (C) 2000-2008 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 batch_Core {
+ static function operation($name, $item) {
+ if (self::in_progress($name) === false) {
+ Session::instance()->set("operation_$name", "1");
+ module::event("operation", $name, $item);
+ }
+ }
+
+ static function end_operation($name) {
+ if (self::in_progress($name) === true) {
+ module::event("end_operation", $name);
+ Session::instance()->set("operation_$name", null);
+ }
+ }
+
+ static function in_progress($name) {
+ $value = Session::instance()->get("operation_$name", null);
+ return !empty($value);
+ }
+}