コード例 #1
0
 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;
 }
コード例 #2
0
ファイル: cronjobs.inc.php プロジェクト: Barnhiac/MTW_REDAXO
 $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');