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; }