Exemplo n.º 1
0
 protected function save()
 {
     $nexttime = $this->getElement($this->mainFieldset, 'nexttime');
     $timestamp = rex_cronjob_manager_sql::calculateNextTime($this->intervalField->getValue());
     $nexttime->setValue($timestamp ? rex_sql::datetime($timestamp) : null);
     $return = parent::save();
     rex_cronjob_manager_sql::factory()->saveNextTime();
     return $return;
 }
Exemplo n.º 2
0
 protected function save()
 {
     if ($this->isEditMode()) {
         $nexttime = $this->getElement($this->mainFieldset, 'nexttime');
         if (strtotime($nexttime->getValue()) > 0) {
             $interval = $this->getElement($this->mainFieldset, 'interval');
             $nexttime->setValue(rex_sql::datetime(rex_cronjob_manager_sql::calculateNextTime($interval->getValue())));
         }
     }
     $return = parent::save();
     rex_cronjob_manager_sql::factory()->saveNextTime();
     return $return;
 }
Exemplo n.º 3
0
        echo rex_view::error($this->i18n($msg . '_error', $name));
    }
    $func = '';
}
if ($func == 'delete') {
    $manager = rex_cronjob_manager_sql::factory();
    $name = $manager->getName($oid);
    if ($manager->delete($oid)) {
        echo rex_view::success($this->i18n('delete_success', $name));
    } else {
        echo rex_view::error($this->i18n('delete_error', $name));
    }
    $func = '';
}
if ($func == 'execute') {
    $manager = rex_cronjob_manager_sql::factory();
    $name = $manager->getName($oid);
    $success = $manager->tryExecute($oid);
    $msg = '';
    if ($manager->hasMessage()) {
        $msg = '<br /><br />' . $this->i18n('log_message') . ': <br />' . nl2br($manager->getMessage());
    }
    if ($success) {
        echo rex_view::success($this->i18n('execute_success', $name) . $msg);
    } else {
        echo rex_view::error($this->i18n('execute_error', $name) . $msg);
    }
    $func = '';
}
if ($func == '') {
    $query = 'SELECT id, name, type, `interval`, environment, execution_moment, status FROM ' . REX_CRONJOB_TABLE . ' ORDER BY name';
Exemplo n.º 4
0
 function saveNextTime($nexttime = null)
 {
     global $REX;
     if ($nexttime === null) {
         $sql_manager = rex_cronjob_manager_sql::factory($this);
         $nexttime = $sql_manager->getMinNextTime();
     }
     if ($nexttime === null) {
         $nexttime = 0;
     } else {
         $nexttime = max(1, $nexttime);
     }
     if ($nexttime != $REX['ADDON']['nexttime']['cronjob'] && rex_file::put(REX_CRONJOB_NEXTTIME_FILE, $nexttime)) {
         $REX['ADDON']['nexttime']['cronjob'] = $nexttime;
         return true;
     }
     return false;
 }
 function saveNextTime($nexttime = null)
 {
     global $REX;
     if ($nexttime === null) {
         $sql_manager = rex_cronjob_manager_sql::factory($this);
         $nexttime = $sql_manager->getMinNextTime();
     }
     if ($nexttime === null) {
         $nexttime = 0;
     } else {
         $nexttime = max(1, $nexttime);
     }
     if ($nexttime != $REX['ADDON']['nexttime']['cronjob']) {
         $content = '$REX[\'ADDON\'][\'nexttime\'][\'cronjob\'] = "' . addslashes($nexttime) . '";';
         $file = $REX['INCLUDE_PATH'] . '/addons/cronjob/config.inc.php';
         if (rex_replace_dynamic_contents($file, $content)) {
             $REX['ADDON']['nexttime']['cronjob'] = $nexttime;
             return true;
         }
     }
     return false;
 }
Exemplo n.º 6
0
<?php

/**
 * Cronjob Addon.
 *
 * @author gharlan[at]web[dot]de Gregor Harlan
 *
 * @package redaxo5
 *
 * @var rex_addon $this
 */
define('REX_CRONJOB_LOG_FOLDER', $this->getDataPath());
define('REX_CRONJOB_TABLE', rex::getTable('cronjob'));
rex_extension::register('PACKAGES_INCLUDED', function () {
    foreach ($this->getAvailablePlugins() as $plugin) {
        if (($type = $plugin->getProperty('cronjob_type')) != '') {
            rex_cronjob_manager::registerType($type);
        }
    }
});
$nexttime = $this->getConfig('nexttime', 0);
if ($nexttime != 0 && time() >= $nexttime) {
    $EP = rex::isBackend() ? 'PAGE_CHECKED' : 'PACKAGES_INCLUDED';
    rex_extension::register($EP, function () {
        if (!rex::isBackend() || !in_array(rex_be_controller::getCurrentPagePart(1), ['setup', 'login', 'cronjob'])) {
            rex_cronjob_manager_sql::factory()->check();
        }
    });
}