diff --git a/elysia_cron.admin.inc b/elysia_cron.admin.inc
index fa5c6de..5829d58 100644
--- a/elysia_cron.admin.inc
+++ b/elysia_cron.admin.inc
@@ -99,7 +99,7 @@ function elysia_cron_admin_page() {
);
$rows[] = array(
'',
- $conf['rule'] . (!empty($conf['weight']) ? ' (' . t('Weight') . ': ' . $conf['weight'] . ')' : ''),
+ check_plain($conf['rule']) . (!empty($conf['weight']) ? ' (' . t('Weight') . ': ' . $conf['weight'] . ')' : ''),
elysia_cron_date($conf['last_run']),
$conf['last_execution_time'] . 's',
$conf['execution_count'],
@@ -600,7 +600,25 @@ function elysia_cron_settings_form_validate($_dco_form, &$_dco_form_state) {
foreach ($form_state['values'] as $key => $value) {
if ($value && preg_match('/^_elysia_cron_([^_]+_[^_]+)_(.*)$/', $key, $r) && ($r[1] == 'job_rule' || $r[1] == 'ch_rule')) {
if (!preg_match('/^\\s*([0-9*,\/-]+[ ]+[0-9*,\/-]+[ ]+[0-9*,\/-]+[ ]+[0-9*,\/-]+[ ]+[0-9*,\/-]+)\\s*$/', $value)) {
- form_set_error($key, t('Invalid rule: !rule', array('!rule' => $value)));
+ form_set_error($key, t('Invalid rule: %rule', array('%rule' => $value)));
+ }
+ }
+ }
+
+ if (!empty($form_state['values']['elysia_cron_default_rules'])) {
+ $rules = explode(PHP_EOL, $form_state['values']['elysia_cron_default_rules']);
+ foreach ($rules as $rule) {
+ $rule = trim($rule);
+ if (empty($rule)) {
+ continue;
+ }
+
+ $rule = explode('=', $rule);
+ if (empty($rule[1])) {
+ form_set_error('elysia_cron_default_rules', t('Invalid rule: %rule', array('%rule' => $rule[0])));
+ }
+ elseif (!preg_match('/^\\s*([0-9*,\/-]+[ ]+[0-9*,\/-]+[ ]+[0-9*,\/-]+[ ]+[0-9*,\/-]+[ ]+[0-9*,\/-]+)\\s*$/', trim($rule[1]))) {
+ form_set_error('elysia_cron_default_rules', t('Invalid rule: %rule', array('%rule' => $rule[0])));
}
}
}