diff options
Diffstat (limited to 'modules/scheduler/helpers')
-rw-r--r-- | modules/scheduler/helpers/scheduler.php | 133 | ||||
-rw-r--r-- | modules/scheduler/helpers/scheduler_event.php | 64 | ||||
-rw-r--r-- | modules/scheduler/helpers/scheduler_installer.php | 42 |
3 files changed, 0 insertions, 239 deletions
diff --git a/modules/scheduler/helpers/scheduler.php b/modules/scheduler/helpers/scheduler.php deleted file mode 100644 index 987b1b32..00000000 --- a/modules/scheduler/helpers/scheduler.php +++ /dev/null @@ -1,133 +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 scheduler_Core { - - static function intervals() { - static $intervals; - if (empty($intervals)) { - $intervals = array("3600" => t("Hourly"), "86400" => t("Daily"), - "604800" => t("Weekly"), "2419200" => t("Monthly")); - } - return $intervals; - } - - static function get_form($method, $schedule) { - if ($method == "define") { - $title = t("Create a scheduled event"); - $button_text = t("Create"); - } else { - $title = t("Update a scheduled event"); - $button_text = t("Update"); - } - - $id = empty($schedule->id) ? "" : "/$schedule->id"; - $form = new Forge("admin/schedule/$method{$id}", "", "post", - array("id" => "g-{$method}-schedule")); - $group = $form->group("schedule_group")->label($title); - $group->input("schedule_name") - ->label(t("Description")) - ->id("g-schedule-name") - ->rules("required|length[0, 128]") - ->error_messages("required", t("You must provide a description")) - ->error_messages("length", t("Your description is too long")) - ->value(!empty($schedule->name) ? $schedule->name : ""); - - list ($dow, $display_time) = scheduler::format_time($schedule->next_run_datetime); - $next = $group->group("run_date")->label(t("Scheduled Date")); - $next->dropdown("dow") - ->label(t("Day")) - ->id("g-schedule-day") - ->rules("required") - ->options(array(t("Sunday"), t("Monday"), t("Tuesday"), t("Wednesday"), - t("Thursday"), t("Friday"), t("Saturday"))) - ->selected($dow); - - $next->input("time") - ->label(t("Hour")) - ->id("g-schedule-time") - ->rules("required") - ->error_messages("required", t("You must provide a time")) - ->error_messages("time_invalid", t("Invalid time")) - ->callback("scheduler::valid_time") - ->value($display_time); - - // need to set the top padding to zero on g-define-schedule li.g-error - $group->dropdown("interval")->label(t("How often"))->id("g-schedule-frequency") - ->options(scheduler::intervals()) - ->rules("required") - ->error_messages("required", t("You must provide an interval")) - ->selected(!empty($schedule->interval) ? $schedule->interval : "2419200"); - $group->hidden("callback")->value($schedule->task_callback); - $group->submit("")->value($button_text); - - return $form; - } - - static function format_time($time) { - $local_time = localtime($time); - $display_time = str_pad($local_time[2], 2, "0", STR_PAD_LEFT) . ":" . - str_pad($local_time[1], 2, "0", STR_PAD_LEFT); - return array($local_time[6], $display_time); - } - - static function valid_time($field) { - if (preg_match("/([0-9]{1,2}):([0-9]{2})/", $field->value, $matches)) { - $hour = (int)$matches[1]; - $minutes = (int)$matches[2]; - if (!(0 <= $hour && $hour<= 23 || 0 <= $minutes && $minutes <= 59)) { - $field->add_error("time_invalid", 1); - } - } else { - $field->add_error("time_invalid", 1); - } - } - - static function get_definitions() { - $v = ""; - $events = ORM::factory("schedule") - ->order_by("next_run_datetime", "asc") - ->find_all(); - if ($events->count()) { - $v = new View("scheduler_definitions.html"); - $v->schedule_definitions = array(); - foreach ($events as $schedule) { - $entry[] = $schedule->id; - $entry[] = $schedule->name; - $run_date = strftime("%A, %b %e, %Y %H:%M ", $schedule->next_run_datetime); - $intervals = scheduler::intervals(); - $interval = $intervals[$schedule->interval]; - if (!empty($schedule->task_id)) { - $status = t("Running"); - } else if ($schedule->next_run_datetime < time()) { - $status = t("Overdue"); - } else { - $status = t("Scheduled"); - } - - $v->schedule_definitions[] = (object)array("id" => $schedule->id, - "name" => $schedule->name, - "run_date" => $run_date, - "interval" => $interval, - "status" => $status); - } - } - return $v; - } -}
\ No newline at end of file diff --git a/modules/scheduler/helpers/scheduler_event.php b/modules/scheduler/helpers/scheduler_event.php deleted file mode 100644 index 365b1df1..00000000 --- a/modules/scheduler/helpers/scheduler_event.php +++ /dev/null @@ -1,64 +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 scheduler_event_Core { - /** - * At this point, the output has been sent to the browser, so we can take some time - * to run a schedule task. - */ - static function gallery_shutdown() { - try { - $schedule = ORM::factory("schedule") - ->where("next_run_datetime", "<=", time()) - ->where("busy", "!=", 1) - ->order_by("next_run_datetime") - ->find_all(1); - - if ($schedule->count()) { - $schedule = $schedule->current(); - $schedule->busy = true; - $schedule->save(); - - try { - if (empty($schedule->task_id)) { - $task = task::start($schedule->task_callback); - $schedule->task_id = $task->id; - } - - $task = task::run($schedule->task_id); - - if ($task->done) { - $schedule->next_run_datetime += $schedule->interval; - $schedule->task_id = null; - } - - $schedule->busy = false; - $schedule->save(); - } catch (Exception $e) { - $schedule->busy = false; - $schedule->save(); - throw $e; - } - } - } catch (Exception $e) { - Kohana_Log::add("error", (string)$e); - } - } -} diff --git a/modules/scheduler/helpers/scheduler_installer.php b/modules/scheduler/helpers/scheduler_installer.php deleted file mode 100644 index 46be4a81..00000000 --- a/modules/scheduler/helpers/scheduler_installer.php +++ /dev/null @@ -1,42 +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 scheduler_installer { - static function install() { - $db = Database::instance(); - $db->query("CREATE TABLE {schedules} ( - `id` int(9) NOT NULL auto_increment, - `name` varchar(128) NOT NULL, - `task_callback` varchar(128) NOT NULL, - `task_id` int(9) NULL, - `next_run_datetime` int(9) NOT NULL, - `interval` int(9) NOT NULL, - `busy` bool NOT NULL DEFAULT 0, - PRIMARY KEY (`id`), - KEY `run_date` (`next_run_datetime`, `busy`), - UNIQUE KEY (`name`)) - DEFAULT CHARSET=utf8;"); - module::set_version("scheduler", $version = 1); - } - - static function uninstall() { - $db = Database::instance(); - $db->query("DROP TABLE IF EXISTS {schedules}"); - } -} |