isAdmin($_SESSION['user_id']);
$boolShowedAdminLink = false;
$homes = $db->getIpPortsForUser($_SESSION['user_id']);
if(!$homes)
{
print_failure(get_lang('cron_no_servers_tied_to_account'));
if($isAdmin){
$boolShowedAdminLink = true;
echo '' . get_lang('cron_admin_link_display_text') . '';
}
return 0;
}
foreach( $homes as $home )
{
$server_homes[$home['home_id']."_".$home['ip']."_".$home['port']] = $home;
$remote_servers[$home['remote_server_id']] = array( "agent_ip" => $home['agent_ip'],
"agent_port" => $home['agent_port'],
"encryption_key" => $home['encryption_key'],
"timeout" => $home['timeout']);
}
list($jobsArray, $remote_servers_offline) = reloadJobs($server_homes, $remote_servers, false);
if( isset($_POST['addJob']) or isset($_POST['editJob']) )
{
if(!checkCronInput($_POST['minute'], $_POST['hour'], $_POST['dayOfTheMonth'], $_POST['month'], $_POST['dayOfTheWeek']))
{
print_failure(get_lang('OGP_LANG_bad_inputs'));
$view->refresh('?m=cron&p=user_cron',2);
return;
}
if ( isset( $_POST['homeid_ip_port'] ) and isset($server_homes[$_POST['homeid_ip_port']]) )
{
$panelURL = getOGPSiteURL();
if($panelURL === false)
{
print_failure('Failed to retrieve panel URL.');
$view->refresh('?m=cron&p=user_cron',2);
return;
}
$game_home = $server_homes[$_POST['homeid_ip_port']];
$ip = $game_home['ip'];
$port = $game_home['port'];
$mod_key = $game_home['mod_key'];
$token = $db->getApiToken($_SESSION['user_id']);
switch ($_POST['action']) {
case "stop":
$command = "wget -qO- \"${panelURL}/ogp_api.php?gamemanager/stop&token=${token}&ip=${ip}&port=${port}&mod_key=${mod_key}\" --no-check-certificate > /dev/null 2>&1";
break;
case "start":
$command = "wget -qO- \"${panelURL}/ogp_api.php?gamemanager/start&token=${token}&ip=${ip}&port=${port}&mod_key=${mod_key}\" --no-check-certificate > /dev/null 2>&1";
break;
case "restart":
$command = "wget -qO- \"${panelURL}/ogp_api.php?gamemanager/restart&token=${token}&ip=${ip}&port=${port}&mod_key=${mod_key}\" --no-check-certificate > /dev/null 2>&1";
break;
case "steam_auto_update":
$command = "wget -qO- \"${panelURL}/ogp_api.php?gamemanager/update&token=${token}&ip=${ip}&port=${port}&mod_key=${mod_key}&type=steam\" --no-check-certificate > /dev/null 2>&1";
break;
}
$job = $_POST['minute']." ".
$_POST['hour']." ".
$_POST['dayOfTheMonth']." ".
$_POST['month']." ".
$_POST['dayOfTheWeek']." ".
$command;
$remote = new OGPRemoteLibrary( $game_home['agent_ip'],
$game_home['agent_port'],
$game_home['encryption_key'],
$game_home['timeout']);
if( isset($_POST['editJob']) and isset($jobsArray[$_POST['r_server_id']][$_POST['job_id']]) )
$remote->scheduler_edit_task($_POST['job_id'], $job);
elseif( isset($_POST['addJob']) )
$remote->scheduler_add_task($job);
list($jobsArray, $remote_servers_offline) = reloadJobs($server_homes, $remote_servers, false);
}
}
elseif( isset($_POST['removeJob']) and isset($remote_servers[$_POST['r_server_id']]) and isset($jobsArray[$_POST['r_server_id']][$_POST['job_id']]) )
{
$remote = new OGPRemoteLibrary( $remote_servers[$_POST['r_server_id']]['agent_ip'],
$remote_servers[$_POST['r_server_id']]['agent_port'],
$remote_servers[$_POST['r_server_id']]['encryption_key'],
$remote_servers[$_POST['r_server_id']]['timeout'] );
$remote->scheduler_del_task($_POST['job_id']);
list($jobsArray, $remote_servers_offline) = reloadJobs($server_homes, $remote_servers, false);
}
echo "
" . get_lang("schedule_new_job") . "
The Cron will run certain actions on your server (Stop, Start, Restart, Update) at specific times. You can either use Actual Times (3:15pm) or relative times since it was
run last (Every 12 hours).
Use Crontab Guru to make sure you have the time formatted correctly.
You can read more on our Wiki
VERY IMPORTANT The MINUTE must be set to a number. If you leave it as an * the Job will execute EVERY MINUTE
";
require_once("includes/refreshed.php");
$refresh = new refreshed();
$homeid_ip_port = isset($_POST['homeid_ip_port']) ? $_POST['homeid_ip_port'] : key($server_homes);
$r_server_id = $server_homes[$homeid_ip_port]['remote_server_id'];
$curtime = $refresh->add( "home.php?m=cron&p=thetime&r_server_id=$r_server_id&type=cleared" );
echo " " . $refresh->getdiv($curtime) . "";
?>
". get_lang("there_are_no_scheduled_jobs") ."";
if(!$boolShowedAdminLink && $isAdmin)
echo '';
?>