diff options
author | Tim Almdal <tnalmdal@shaw.ca> | 2009-03-03 05:59:38 +0000 |
---|---|---|
committer | Tim Almdal <tnalmdal@shaw.ca> | 2009-03-03 05:59:38 +0000 |
commit | 7cadb4b21b90864b4151481da9aba244d7083788 (patch) | |
tree | f8df3ce866f69a6bc11790d3b2cb4c18a4ba297b /core/helpers/batch.php | |
parent | 1d5cca34efcd25473f00ed5d6594ea15c569622f (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/batch.php')
-rw-r--r-- | core/helpers/batch.php | 40 |
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); + } +} |