function tryExecute(&$cronjob, $name = '', $params = array(), $log = true, $id = null) { global $REX; $message = ''; $success = rex_cronjob::isValid($cronjob); if (!$success) { if (is_object($cronjob)) { $message = 'Invalid cronjob class "' . get_class($cronjob) . '"'; } else { $message = 'Class "' . $cronjob . '" not found'; } } else { $type = $cronjob->getType(); if (is_array($params)) { foreach ($params as $key => $value) { $cronjob->setParam(str_replace($type . '_', '', $key), $value); } } $success = $cronjob->execute(); $message = $cronjob->getMessage(); if ($message == '' && !$success) { $message = 'Unknown error'; } if ($log && !$name) { if ($REX['REDAXO']) { $name = $cronjob->getTypeName(); } else { $name = $type; } } } if ($log) { if (!$name) { $name = '[no name]'; } rex_cronjob_log::save($name, $success, $message, $id); } $this->setMessage(htmlspecialchars($message)); return $success; }
$fieldset = $func == 'edit' ? $I18N->msg('cronjob_edit') : $I18N->msg('cronjob_add'); $form = rex_form::factory(REX_CRONJOB_TABLE, $fieldset, 'id = ' . $oid, 'post', false, 'rex_cronjob_form'); $form->addParam('oid', $oid); $form->setApplyUrl('index.php?page=cronjob'); $form->setEditMode($func == 'edit'); $form->addHiddenField('nexttime'); $field =& $form->addSelectField('type'); $field->setLabel($I18N->msg('cronjob_type')); $select =& $field->getSelect(); $select->setSize(1); $typeFieldId = $field->getAttribute('id'); $types = rex_cronjob_manager::getTypes(); $cronjobs = array(); foreach ($types as $class) { $cronjob = rex_cronjob::factory($class); if (rex_cronjob::isValid($cronjob)) { $cronjobs[$class] = $cronjob; $select->addOption($cronjob->getTypeName(), $class); } } if ($func == 'add') { $select->setSelected('rex_cronjob_phpcode'); } $activeType = $field->getValue(); $field =& $form->addTextField('name'); $field->setLabel($I18N->msg('cronjob_name')); $field->getValidator()->add('notEmpty', $I18N->msg('cronjob_error_no_name')); $nameFieldId = $field->getAttribute('id'); if ($func != 'add' && !in_array($activeType, $types)) { if (!$activeType && !$field->getValue()) { $warning = $I18N->msg('cronjob_not_found');