From 7fe908c50c8dbc5cc05f571dbe11d66141caacd4 Mon Sep 17 00:00:00 2001
From: Marius Cramer <m.cramer@pixcept.de>
Date: Thu, 14 Nov 2013 09:01:22 -0500
Subject: [PATCH] Cleaning up code to match coding guidelines
---
interface/lib/classes/validate_cron.inc.php | 304 +++++++++++++++++++++++++-------------------------
1 files changed, 152 insertions(+), 152 deletions(-)
diff --git a/interface/lib/classes/validate_cron.inc.php b/interface/lib/classes/validate_cron.inc.php
index e551af3..7e95e18 100644
--- a/interface/lib/classes/validate_cron.inc.php
+++ b/interface/lib/classes/validate_cron.inc.php
@@ -30,32 +30,32 @@
*/
class validate_cron {
-
- function get_error($errmsg) {
- global $app;
-
- if(isset($app->tform->wordbook[$errmsg])) {
- return $app->tform->wordbook[$errmsg]."<br>\r\n";
- } else {
- return $errmsg."<br>\r\n";
- }
- }
-
- /*
+
+ function get_error($errmsg) {
+ global $app;
+
+ if(isset($app->tform->wordbook[$errmsg])) {
+ return $app->tform->wordbook[$errmsg]."<br>\r\n";
+ } else {
+ return $errmsg."<br>\r\n";
+ }
+ }
+
+ /*
Validator function to check if a given cron command is in correct form (url only).
*/
- function command_format($field_name, $field_value, $validator) {
- if(preg_match("'^(\w+):\/\/'", $field_value, $matches)) {
-
- $parsed = parse_url($field_value);
- if($parsed === false) return $this->get_error($validator['errmsg']);
-
- if($parsed["scheme"] != "http" && $parsed["scheme"] != "https") return $this->get_error($validator['errmsg']);
-
- if(preg_match("'^([a-z0-9][a-z0-9-]{0,62}\.)+([a-z]{2,30})$'i", $parsed["host"]) == false) return $this->get_error($validator['errmsg']);
- }
- }
-
+ function command_format($field_name, $field_value, $validator) {
+ if(preg_match("'^(\w+):\/\/'", $field_value, $matches)) {
+
+ $parsed = parse_url($field_value);
+ if($parsed === false) return $this->get_error($validator['errmsg']);
+
+ if($parsed["scheme"] != "http" && $parsed["scheme"] != "https") return $this->get_error($validator['errmsg']);
+
+ if(preg_match("'^([a-z0-9][a-z0-9-]{0,62}\.)+([a-z]{2,30})$'i", $parsed["host"]) == false) return $this->get_error($validator['errmsg']);
+ }
+ }
+
function run_month_format($field_name, $field_value, $validator) {
global $app;
//* allow value @reboot in month field
@@ -63,137 +63,137 @@
return $this->run_time_format($field_name, $field_value, $validator);
}
}
-
+
/*
Validator function to check if a given cron time is in correct form.
*/
function run_time_format($field_name, $field_value, $validator) {
global $app;
-
- //* check general form
- $is_ok = true;
- $field_value = str_replace(" ", "", $field_value); // spaces are not needed
- $used_times = array();
-
- if(preg_match("'^[0-9\-\,\/\*]+$'", $field_value) == false) return $this->get_error($validator['errmsg']); // allowed characters are 0-9, comma, *, -, /
- elseif(preg_match("'[\-\,\/][\-\,\/]'", $field_value) == true) return $this->get_error($validator['errmsg']); // comma, - and / never stand together
- //* now split list and check each entry. store used values in array for later limit-check
- $time_list = explode(",", $field_value);
- if(count($time_list) < 1) return $this->get_error($validator['errmsg']);
-
- $max_entry = 0;
- $min_entry = 0;
- $in_minutes = 1;
- //* get maximum value of entry for each field type (name)
- switch($field_name) {
- case "run_min":
- $max_entry = 59;
- break;
- case "run_hour":
- $max_entry = 23;
- $in_minutes = 60;
- break;
- case "run_mday":
- $max_entry = 31;
- $min_entry = 1;
- $in_minutes = 1440;
- break;
- case "run_month":
- $max_entry = 12;
- $min_entry = 1;
- $in_minutes = 1440 * 28; // not exactly but enough
- break;
- case "run_wday":
- $max_entry = 7;
- $in_minutes = 1440;
- break;
- }
-
- if($max_entry == 0) return $this->get_error('unknown_fieldtype_error');
-
- foreach($time_list as $entry) {
- //* possible value combinations:
- //* x => ^(\d+)$
- //* x-y => ^(\d+)\-(\d+)$
- //* x/y => ^(\d+)\/([1-9]\d*)$
- //* x-y/z => ^(\d+)\-(\d+)\/([1-9]\d*)$
- //* */x => ^\*\/([1-9]\d*)$
- //* combined regex => ^(\d+|\*)(\-(\d+))?(\/([1-9]\d*))?$
-
- if(preg_match("'^(((\d+)(\-(\d+))?)|\*)(\/([1-9]\d*))?$'", $entry, $matches) == false) {
- return $this->get_error($validator['errmsg']);
- }
-
- //* matches contains:
- //* 1 => * or value or x-y range
- //* 2 => unused
- //* 3 => value if [1] != *
- //* 4 => empty if no range was used
- //* 5 => 2nd value of range if [1] != * and range was used
- //* 6 => empty if step was not used
- //* 7 => step
-
- $loop_step = 1;
- $loop_from = $min_entry;
- $loop_to = $max_entry;
-
- //* calculate used values
- if($matches[1] == "*") {
- //* not to check
- } else {
- if($matches[3] < $min_entry || $matches[3] > $max_entry) {
- //* check if value is in allowed range
- return $this->get_error($validator['errmsg']);
- } elseif($matches[4] && ($matches[5] < $min_entry || $matches[5] > $max_entry || $matches[5] <= $matches[3])) {
- //* check if value is in allowed range and not less or equal to first value
- return $this->get_error($validator['errmsg']);
- }
-
- $loop_from = $matches[3];
- $loop_to = $matches[3];
- if($matches[4]) $loop_to = $matches[5];
- }
- if($matches[6] && ($matches[7] < 2 || $matches[7] > $max_entry - 1)) {
- //* check if step value is valid
- return $this->get_error($validator['errmsg']);
- }
- if($matches[7]) $loop_step = $matches[7];
-
- //* loop through values to set used times
- for($t = $loop_from; $t <= $loop_to; $t = $t + $loop_step) {
- $used_times[] = $t;
- }
- } //* end foreach entry loop
-
- //* sort used times and erase doubles
- sort($used_times);
- $used_times = array_unique($used_times);
-
- //* get minimum frequency and store it in $app->tform->cron_min_freq for usage in onUpdateSave and onInsertSave!
- $min_freq = -1;
- $prev_time = -1;
- foreach($used_times as $curtime) {
- if($prev_time != -1) {
- $freq = $curtime - $prev_time;
- if($min_freq == -1 || $freq < $min_freq) $min_freq = $freq;
- }
- $prev_time = $curtime;
- }
-
- //* check last against first (needed because e.g. wday 1,4,7 has diff 1 not 3
- $prev_time = $used_times[0];
- $freq = ($prev_time - $min_entry) + ($max_entry - $curtime) + 1;
- if($min_freq == -1 || $freq < $min_freq) $min_freq = $freq;
-
- if($min_freq > 0 && $min_freq <= $max_entry) { //* only store if > 1 && < $max_entry!
- $min_freq = $min_freq * $in_minutes; // we have to overwrite $app->tform->cron_min_freq if this is higher value
- if(!$app->tform->cron_min_freq || $app->tform->cron_min_freq > $min_freq) $app->tform->cron_min_freq = $min_freq;
- }
-
- //return "DEBUG: " . $app->tform->cron_min_freq . " ($min_freq) --- " . var_export($used_times, true) . "<br />";
+
+ //* check general form
+ $is_ok = true;
+ $field_value = str_replace(" ", "", $field_value); // spaces are not needed
+ $used_times = array();
+
+ if(preg_match("'^[0-9\-\,\/\*]+$'", $field_value) == false) return $this->get_error($validator['errmsg']); // allowed characters are 0-9, comma, *, -, /
+ elseif(preg_match("'[\-\,\/][\-\,\/]'", $field_value) == true) return $this->get_error($validator['errmsg']); // comma, - and / never stand together
+ //* now split list and check each entry. store used values in array for later limit-check
+ $time_list = explode(",", $field_value);
+ if(count($time_list) < 1) return $this->get_error($validator['errmsg']);
+
+ $max_entry = 0;
+ $min_entry = 0;
+ $in_minutes = 1;
+ //* get maximum value of entry for each field type (name)
+ switch($field_name) {
+ case "run_min":
+ $max_entry = 59;
+ break;
+ case "run_hour":
+ $max_entry = 23;
+ $in_minutes = 60;
+ break;
+ case "run_mday":
+ $max_entry = 31;
+ $min_entry = 1;
+ $in_minutes = 1440;
+ break;
+ case "run_month":
+ $max_entry = 12;
+ $min_entry = 1;
+ $in_minutes = 1440 * 28; // not exactly but enough
+ break;
+ case "run_wday":
+ $max_entry = 7;
+ $in_minutes = 1440;
+ break;
+ }
+
+ if($max_entry == 0) return $this->get_error('unknown_fieldtype_error');
+
+ foreach($time_list as $entry) {
+ //* possible value combinations:
+ //* x => ^(\d+)$
+ //* x-y => ^(\d+)\-(\d+)$
+ //* x/y => ^(\d+)\/([1-9]\d*)$
+ //* x-y/z => ^(\d+)\-(\d+)\/([1-9]\d*)$
+ //* */x => ^\*\/([1-9]\d*)$
+ //* combined regex => ^(\d+|\*)(\-(\d+))?(\/([1-9]\d*))?$
+
+ if(preg_match("'^(((\d+)(\-(\d+))?)|\*)(\/([1-9]\d*))?$'", $entry, $matches) == false) {
+ return $this->get_error($validator['errmsg']);
+ }
+
+ //* matches contains:
+ //* 1 => * or value or x-y range
+ //* 2 => unused
+ //* 3 => value if [1] != *
+ //* 4 => empty if no range was used
+ //* 5 => 2nd value of range if [1] != * and range was used
+ //* 6 => empty if step was not used
+ //* 7 => step
+
+ $loop_step = 1;
+ $loop_from = $min_entry;
+ $loop_to = $max_entry;
+
+ //* calculate used values
+ if($matches[1] == "*") {
+ //* not to check
+ } else {
+ if($matches[3] < $min_entry || $matches[3] > $max_entry) {
+ //* check if value is in allowed range
+ return $this->get_error($validator['errmsg']);
+ } elseif($matches[4] && ($matches[5] < $min_entry || $matches[5] > $max_entry || $matches[5] <= $matches[3])) {
+ //* check if value is in allowed range and not less or equal to first value
+ return $this->get_error($validator['errmsg']);
+ }
+
+ $loop_from = $matches[3];
+ $loop_to = $matches[3];
+ if($matches[4]) $loop_to = $matches[5];
+ }
+ if($matches[6] && ($matches[7] < 2 || $matches[7] > $max_entry - 1)) {
+ //* check if step value is valid
+ return $this->get_error($validator['errmsg']);
+ }
+ if($matches[7]) $loop_step = $matches[7];
+
+ //* loop through values to set used times
+ for($t = $loop_from; $t <= $loop_to; $t = $t + $loop_step) {
+ $used_times[] = $t;
+ }
+ } //* end foreach entry loop
+
+ //* sort used times and erase doubles
+ sort($used_times);
+ $used_times = array_unique($used_times);
+
+ //* get minimum frequency and store it in $app->tform->cron_min_freq for usage in onUpdateSave and onInsertSave!
+ $min_freq = -1;
+ $prev_time = -1;
+ foreach($used_times as $curtime) {
+ if($prev_time != -1) {
+ $freq = $curtime - $prev_time;
+ if($min_freq == -1 || $freq < $min_freq) $min_freq = $freq;
+ }
+ $prev_time = $curtime;
+ }
+
+ //* check last against first (needed because e.g. wday 1,4,7 has diff 1 not 3
+ $prev_time = $used_times[0];
+ $freq = ($prev_time - $min_entry) + ($max_entry - $curtime) + 1;
+ if($min_freq == -1 || $freq < $min_freq) $min_freq = $freq;
+
+ if($min_freq > 0 && $min_freq <= $max_entry) { //* only store if > 1 && < $max_entry!
+ $min_freq = $min_freq * $in_minutes; // we have to overwrite $app->tform->cron_min_freq if this is higher value
+ if(!$app->tform->cron_min_freq || $app->tform->cron_min_freq > $min_freq) $app->tform->cron_min_freq = $min_freq;
+ }
+
+ //return "DEBUG: " . $app->tform->cron_min_freq . " ($min_freq) --- " . var_export($used_times, true) . "<br />";
}
-
-
-
-
-}
\ No newline at end of file
+
+
+
+
+}
--
Gitblit v1.9.1