Current time: 02-17-2025, 08:47 AM Hello There, Guest! (LoginRegister)


Post Reply 
Writing CronJobs Web int. It's time!
Author Message
data-stream_ru Offline
Moderator
*****
Moderators

Posts: 471
Joined: Jan 2009
Reputation: 7
Post: #12
RE: Writing CronJobs Web int. It's time!
Ok, writing new web inferface for integration hcrond with ispSP
Table structor, rewriting code at main.c and compiling see above.
Let`s run!

1. For RH, Fedora, CentOS e.t.c.
Open /etc/ispcp/apache/00_master.conf
and add the end of line "php_admin_value open_basedir..."
":{APACHE_WWW_DIR}"
Open /etc/httpd/vhosts/00_master.conf
and add the end of line "php_admin_value open_basedir..."
":/var/www/virtual/"

May be it`s unsecured solution, but to do cheks of users scripts we need path to they sites in open_basedir.

2. cronjobs_overview.php
Code:
<?php
/*
* (с) 2009, Russia, Moscow
* Serge Obookhoff AKA Hong Lee
* www.data-stream.ru && www.veterinars.ru
* Last Revision at 01/2009
*     Written for ispCP Team (www.isp-control.net) ONLY.
*     Written using the old, dead blanks VHCS.
* All Functions rewritten.
*
* Notice: If you use this script you have own risks.
*  
*/

require '../include/ispcp-lib.php';

check_login(__FILE__);

$tpl = new pTemplate();
$tpl->define_dynamic('page', Config::get('CLIENT_TEMPLATE_PATH') . '/cronjobs_overview.tpl');
$tpl->define_dynamic('page_message', 'page');
$tpl->define_dynamic('logged_from', 'page');
$tpl->define_dynamic('cronjobs', 'page');

$theme_color = Config::get('USER_INITIAL_THEME');

$tpl->assign(
    array('TR_CLIENT_CRONJOBS_TITLE' => tr('ispCP - Client/Cronjob Manager'),
        'THEME_COLOR_PATH' => "../themes/$theme_color",
        'THEME_CHARSET' => tr('encoding'),
        'ISP_LOGO' => get_logo($_SESSION['user_id'])
        )
    );

# Getting user's right to reading and using  the Jobs





function gen_cron_user(&$tpl, &$sql, $domain) {
#
}

function gen_cron_jobs(&$tpl, &$sql, $user_id) {

    $query = <<<SQL_QUERY
        SELECT
            id, name, lastrun, activ, coment, domain
        FROM
            hcrondtab
        WHERE
            domain = $user_id
        ORDER BY
            id
SQL_QUERY;

    $rs = exec_query($sql, $query, array($user_id));

    if ($rs->RecordCount() == 0) {
        $tpl->assign(
            array('NAME' => tr('Jobs list is empty!'),
                'DESCRIPTION' => '',
                'ACTIVE' => '',
                'LASTRUN' => ''
                )
            );

    } else {

        $counter = 0;
        while (!$rs->EOF) {
            if ($counter % 2 == 0) {
                $tpl->assign('ITEM_CLASS', 'content');
            } else {
                $tpl->assign('ITEM_CLASS', 'content2');
            }

            if ($rs->fields['activ'] == 1) {$activ = 'Yes';}
            else {$activ = 'No';};
            $lastrun = $rs->fields['lastrun'];
            if ($lastrun == 0 ) {$lastrun = '';}
                else {$lastrun = date("Y-m-d H:i:s",$lastrun);}
            $tpl->assign(
                array('NAME' => $rs->fields['name'],
                    'DESCRIPTION' => $rs->fields['coment'],
                    'LASTRUN' => $lastrun,
                    'ACTIVE' => $activ,
                    'ID'  => $rs->fields['id']
                    )
                );
            $tpl->parse('CRONJOBS', '.cronjobs');
            $rs->MoveNext();
            $counter++;
        }

    }

} // End of gen_cron_job();

/*
*
* static page messages.
*
*/

gen_client_mainmenu($tpl, Config::get('CLIENT_TEMPLATE_PATH') . '/main_menu_webtools.tpl');
gen_client_menu($tpl, Config::get('CLIENT_TEMPLATE_PATH') . '/menu_webtools.tpl');

gen_logged_from($tpl);

check_permissions($tpl);

gen_cron_jobs($tpl, $sql, $_SESSION['user_id']);

$tpl->assign(
    array('TR_CRON_MANAGER' => tr('Cronjob Manager'),
        'TR_MESSAGE_DELETE' => tr('Are you sure you want to delete %s?', true, '%s'),
        'TR_CRONJOBS' => tr('Cronjobs'),
        'TR_ACTIVE' => tr('Active'),
        'TR_ACTION' => tr('Active'),
        'TR_EDIT' => tr('Edit'),
        'TR_DELETE' => tr('Delete'),
        'TR_ADD' => tr('Add Cronjob')
        )
    );

gen_page_message($tpl);

$tpl->parse('PAGE', 'page');
$tpl->prnt();

if (Config::get('DUMP_GUI_DEBUG'))
    dump_gui_debug();

unset_messages();

?>

3. cronjobs_overview.tpl
Code:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset={THEME_CHARSET}">
<title>{TR_CLIENT_CRONJOBS_TITLE}</title>
  <meta name="robots" content="noindex">
  <meta name="robots" content="nofollow">
<link href="{THEME_COLOR_PATH}/css/ispcp.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="{THEME_COLOR_PATH}/css/ispcp.js"></script>
<script type="text/javascript">
<!--
function action_delete(url, name) {
    if (!confirm(sprintf("{TR_MESSAGE_DELETE}", name)))
        return false;
    location = url;
}
//-->
</script>
</head>

<body onload="MM_preloadImages('{THEME_COLOR_PATH}/images/icons/database_a.gif','{THEME_COLOR_PATH}/images/icons/domains_a.gif','{THEME_COLOR_PATH}/images/icons/ftp_a.gif','{THEME_COLOR_PATH}/images/icons/general_a.gif' ,'{THEME_COLOR_PATH}/images/icons/email_a.gif','{THEME_COLOR_PATH}/images/icons/webtools_a.gif','{THEME_COLOR_PATH}/images/icons/statistics_a.gif','{THEME_COLOR_PATH}/images/icons/support_a.gif')">
<!-- BDP: logged_from --><table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td height="20" nowrap="nowrap" class="backButton">&nbsp;&nbsp;&nbsp;<a href="change_user_interface.php?action=go_back"><img src="{THEME_COLOR_PATH}/images/icons/close_interface.png" width="16" height="16" border="0" align="absmiddle"></a> {YOU_ARE_LOGGED_AS}</td>
      </tr>
    </table>
    <!-- EDP: logged_from -->
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%" style="border-collapse: collapse;padding:0;margin:0;">
<tr>
<td align="left" valign="top" style="vertical-align: top; width: 195px; height: 56px;"><img src="{THEME_COLOR_PATH}/images/top/top_left.jpg" border="0"></td>
<td style="height: 56px; width:100%; background-image: url({THEME_COLOR_PATH}/images/top/top_bg.jpg)"><img src="{THEME_COLOR_PATH}/images/top/top_left_bg.jpg" border="0"></td>
<td style="width: 73px; height: 56px;"><img src="{THEME_COLOR_PATH}/images/top/top_right.jpg" border="0"></td>
</tr>
    <tr>
        <td style="width: 195px; vertical-align: top;">{MENU}</td>
        <td colspan="2" style="vertical-align: top;"><table style="width: 100%; border-collapse: collapse;padding:0;margin:0;">
          <tr height="95">
            <td style="padding-left:30px; width: 100%; background-image: url({THEME_COLOR_PATH}/images/top/middle_bg.jpg);">{MAIN_MENU}</td>
            <td style="padding:0;margin:0;text-align: right; width: 73px;vertical-align: top;"><img src="{THEME_COLOR_PATH}/images/top/middle_right.jpg" border="0"></td>
          </tr>
          <tr>
            <td colspan="3"><table width="100%" border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td align="left"><table width="100%" cellpadding="5" cellspacing="5">
                    <tr>
                      <td width="25"><img src="{THEME_COLOR_PATH}/images/content/table_icon_tools.png" width="25" height="25"></td>
                      <td colspan="2" class="title">{TR_CRON_MANAGER}</td>
                    </tr>
                </table></td>
                <td width="27" align="right">&nbsp;</td>
              </tr>
              <tr>
                <td><table width="100%" cellpadding="5" cellspacing="5">
                    <!-- BDP: page_message -->
                    <tr>
                      <td width="25">&nbsp;</td>
                      <td colspan="3" class="title"><span class="message">{MESSAGE}</span></td>
                    </tr>
                    <!-- EDP: page_message -->
                    <tr>
                      <td width="25">&nbsp;</td>
                      <td class="content3"><strong>{TR_CRONJOBS}</strong></td>
                      <td align="center" class="content3"><strong>{TR_ACTIVE}</strong></td>
                      <td align="center" class="content3"><strong>Last Run</strong></td>
                      <td colspan="2" align="center" class="content3"><strong>{TR_ACTION}</strong></td>
                    </tr>
                    
                      <!-- BDP: cronjobs -->
            <tr>
                      <td nowrap="nowrap">&nbsp;</td>
                      <td nowrap="nowrap" class="{ITEM_CLASS}"><strong>{NAME}</strong><br>
                        {DESCRIPTION}</td>
                      <td width="100" align="center" nowrap="nowrap" class="{ITEM_CLASS}">{ACTIVE}</td>
                      <td width="150" align="center" nowrap="nowrap" class="{ITEM_CLASS}">{LASTRUN}</td>
                      <td width="100" nowrap="nowrap" class="{ITEM_CLASS}"><img src="{THEME_COLOR_PATH}/images/icons/edit.png" width="16" height="16" align="absmiddle"> <a href="cronjobs_edit.php?cron_id={ID}" class="link">{TR_EDIT}</a></td>
                      <td width="100" nowrap="nowrap" class="{ITEM_CLASS}"><img src="{THEME_COLOR_PATH}/images/icons/delete.png" width="16" height="16" border="0" align="absmiddle"> <a href="#" class="link" onclick="action_delete('cronjobs_delete.php?cron_id={ID}', '{NAME}')">{TR_DELETE}</a></td>
                    </tr>
                      <!-- EDP: cronjobs -->
                    <tr>
                      <td nowrap="nowrap">&nbsp;</td>
                      <td colspan="4"><input name="button" type="button" class="button" onclick="MM_goToURL('parent','cronjobs_add.php');return document.MM_returnValue" value="{TR_ADD}"></td>
                    </tr>
                </table></td>
                <td>&nbsp;</td>
              </tr>
              <tr>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
              </tr>
            </table></td>
          </tr>
        </table></td>
    </tr>
</table>
</body>
</html>

4. cronjobs_delete.php
Code:
<?php
/*
* (с) 2009, Russia, Moscow
* Serge Obookhoff AKA Hong Lee
* www.data-stream.ru && www.veterinars.ru
* Last Revision at 01/2009
*     Written for ispCP Team (www.isp-control.net) ONLY.
*     Written using the old, dead blanks VHCS.
* All Functions rewritten.
*
* Notice: If you use this script you have own risks.
*  
*/

require '../include/ispcp-lib.php';

check_login(__FILE__);

if (isset($_GET['cron_id']) && $_GET['cron_id'] !== '') {
    $cron_id = $_GET['cron_id'];

    $query = "
        SELECT
            `id`
            `name`
        FROM
            `hcrondtab`
        WHERE
            `id` = ?
    ";

    $rs = exec_query($sql, $query, array($cron_id));

    if ($rs -> RecordCount() == 0) {
    set_page_message(tr('Nothing to do!'));
        user_goto('cronjobs_overview.php');
    }


    $query = "
        DELETE from
            `hcrondtab`
        WHERE
            `id` = ?
    ";

    $rs = exec_query($sql, $query, array($cron_id));

#    write_log($_SESSION['user_logged'].": delete cronjob ".$cron_name."!");
    set_page_message(tr('Cronjob successfully deleted!'));
    header('Location: cronjobs_overview.php');
    exit(0);
} else {
    header('Location: cronjobs_overview.php');
    exit(0);
}

?>

5. cronjobs_add.php
Code:
<?php
/*
* (с) 2009, Russia, Moscow
* Serge Obookhoff AKA Hong Lee
* www.data-stream.ru && www.veterinars.ru
* Last Revision at 01/2009
*     Written for ispCP Team (www.isp-control.net) ONLY.
*     Written using the old, dead blanks VHCS.
* All Functions rewritten.
*
* Notice: If you use this script you have own risks.
*  
*/

//bypass ispCP HTML input control

$min = implode ("," , $_POST['min']);
$hour = implode ("," , $_POST['hour']);
$day_of_month = implode ("," , $_POST['day_of_month']);
$month = implode ("," , $_POST['month']);
$day_of_week = implode ("," , $_POST['day_of_week']);

unset($_POST['month'], $_POST['day_of_week'], $_POST['min'], $_POST['hour'], $_POST['day_of_month']);



require '../include/ispcp-lib.php';

check_login(__FILE__);

$tpl = new pTemplate();
$tpl->define_dynamic('page', Config::get('CLIENT_TEMPLATE_PATH') . '/cronjobs_add.tpl');
$tpl->define_dynamic('page_message', 'page');
$tpl->define_dynamic('logged_from', 'page');

$theme_color = Config::get('USER_INITIAL_THEME');

$tpl->assign(
    array('TR_CLIENT_CRONJOBS_TITLE' => tr('ispCP - Client/Cronjob Manager'),
        'THEME_COLOR_PATH' => "../themes/$theme_color",
        'THEME_CHARSET' => tr('encoding'),
        'ISP_LOGO' => get_logo($_SESSION['user_id'])
        )
    );

function add_cron_job(&$tpl, &$sql, $user_id, &$file_type, &$min, &$hour, &$day_of_month, &$month, &$day_of_week) {


    if (!isset($_POST['Submit'])) {
        return;
    }

    if ((empty($min) | empty($hour) | empty($day_of_month) | empty($month) | empty($day_of_week) | empty($_POST['name']) | empty($_POST['description']) | empty($_POST['command_line'])) && isset($_POST['Submit'])) {

        set_page_message(tr('Please type All Fields and choise all Values!'));
        return;
    }

    foreach($_POST as $key => $value)
    {
        $a = $key;
        $$a = $value;
    }

    //do all checks of command_line
/* Start (c) Vladimir Sinitsyn*/
// Vladimir Sinitsyn aka SenatoR
// Russia, Yekaterinburg
// Русские, привет! =)
// $command_line mey be "perl /var/www/virtual/hackers.ru/htdocs/cgi-bin/decoder.pl?file=/etc/passwd-"
// We must use security check!

    $stop_word = array('/etc/','password','passwd','groups'); //STOP Words!
//Let`s start our work!

$temp = explode(" ", $command_line); //We`ve divided line two parts - command (php) and values.

$command = $temp[0];
$stream = $temp[1];

unset($temp);

//We have only 3 commands, so, make it without "cool" things, use simle code..

if($command != "php" && $command != "perl" && $command != "python") {
        set_page_message(tr('Comand not Allowed!'));
        return;
        }
//Если список большой - сделаем проверку иначе!


foreach($stop_word as $k=>$v)
{
    if(strpos($stream,$v) == true) {
        set_page_message(tr('Are you a cunning Hacker ?! But I am not only stupid machine!!! I will write delation to Admin!'));
        write_log("WARNING: Perhaps hacking! ". $_SESSION['user_logged'] . ": add Cron Job: " . $name . " with comnd: " . $command_line);
        return;
        }  //Hackers ALLERT... `stop word'
}


$flag = 0; //Use one thing!

  foreach($file_type as $k=>$v) //Start
  {

      if(strpos($stream,$v) == true) //Works fast!!! (its important)
    {    
        $flag++; //Yeah! Its good!
      
        $file = preg_replace("/(\\".$v.").*/i","\\1",$stream); //CUT ALL!!! Only filename in $file!
        break; //Stop
    }
  }

if($flag == 0) {
    set_page_message(tr('File type wrong!'));
    return;
    }//File type wrong!

//Check files and permission


if(!file_exists($file)) {
    set_page_message(tr('File not found!'));
    return;
    } //No file!

if(!is_readable($file)) {
    set_page_message(tr('File not readable!'));
    return;
    }; //Wrong permissions!

if(strpos("cgi",$file) || strpos("pl",$file)) // only for cgi and pl and so..
{
    if(!is_executable($file)) {
    set_page_message(tr('Wrong permissions!'));
    return;
    }; //Wrong permissions!
}
/* End (c) */

    //get user gid & uid

    $query = "
        SELECT
            `domain_uid`,    `domain_gid`
        FROM
            `domain`
        WHERE
            `domain_admin_id` = ?
    ";

    $rs = exec_query($sql, $query, array($user_id));
    $uid = 'vu' . $rs->fields['domain_uid'];
    $gid = 'vu' . $rs->fields['domain_gid'];

    // add cron_job in the ispcp DB;
    $query = "
        INSERT INTO `hcrondtab`
            (`min`, `hour`, `day`, `mon`, `dow`, `uid`, `gid`, `cmd`, `name`, `runonce`, `activ`, `coment`, `domain`)
        VALUES
            (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)

    ";
    $rs = exec_query($sql, $query, array($min, $hour, $day_of_month, $month, $day_of_week, $uid, $gid, $command_line, $name, $runonce, $activ, $description, $user_id));

    $query = "
        SELECT
            `id`
            `name`
        FROM
            `hcrondtab`
        WHERE
            `name` = ?
    ";

    $rs = exec_query($sql, $query, array($name));
    $cron_name = $rs->fields['name'];

#    send_request();
    write_log($_SESSION['user_logged'] . ": add Cron Job: " . $name);
    set_page_message(tr('Cron Job successfully added!'));
    user_goto('cronjobs_overview.php');


} // End of add_cron_job();

function get_cron_domain(&$tpl, &$sql, $user_id) {

    $query = "
        SELECT
            `admin_name`
        FROM
            `admin`
        WHERE
            admin_id = ?
        ";

       $rs = exec_query($sql, $query, array($user_id));

    return $rs->fields['admin_name'];
    
}


/*
*
* static page messages.
*
*/


gen_client_mainmenu($tpl, Config::get('CLIENT_TEMPLATE_PATH') . '/main_menu_webtools.tpl');
gen_client_menu($tpl, Config::get('CLIENT_TEMPLATE_PATH') . '/menu_webtools.tpl');

gen_logged_from($tpl);

check_permissions($tpl);

    $file_type = array('.php','.php4','.php5','.cgi','.pl','.py'); //List of GOOD files ;-)
    $new_value = implode (" ", $file_type);

add_cron_job($tpl, $sql, $_SESSION['user_id'], $file_type, $min, $hour, $day_of_month, $month, $day_of_week);

if (isset($_POST['command_line'])) {$example = $_POST['command_line'];}
else {
    $example = 'php ' . Config::get('APACHE_WWW_DIR') . '/' . get_cron_domain($tpl, $sql, $_SESSION['user_id']) . '/htdocs/test.php' ;
}

if (isset($_POST['activ']) && $_POST['activ'] == 0) {$active_no = 'selected'; $active_yes = '';}
    else  {$active_yes = 'selected'; $active_no = '';}
if (isset($_POST['runonce']) && $_POST['runonce'] == 1) {$runonce_yes = 'selected'; $runonce_no = '';}
    else  {$runonce_no = 'selected'; $runonce_yes = '';}
if (isset($_POST['name'])) {$name = $_POST['name'];}
    else {$name='';}
if (isset($_POST['description'])) {$description = $_POST['description'];}
    else {$description='';}

$tpl->assign(
    array('TR_CRON_MANAGER' => tr('Cronjob Manager'),
        'TR_ADD_CRONJOB' => tr('Add Cronjob'),
        'TR_NAME' => tr('Name'),
        'TR_DESCRIPTION' => tr('Description'),
        'TR_ACTIVE' => tr('Active'),
        'YES' => tr('Yes'),
        'NO' => tr('No'),
        'TR_CRONJOB' => tr('Cronjob'),
        'TR_COMMAND' => tr('Command to run:'),
        'TR_MIN' => tr('Minute(s):'),
        'TR_HOUR' => tr('Hour(s):'),
        'TR_DAY' => tr('Day(s):'),
        'TR_MONTHS' => tr('Month(s):'),
        'TR_WEEKDAYS' => tr('Weekday(s):'),
        'TR_ADD' => tr('Add'),
        'TR_RESET' => tr('Reset'),
        'TR_CANCEL' => tr('Cancel'),
        'EXAMPLE' => $example,
        'ALLOWED' => 'php, perl, python',
        'FILETYPE' => $new_value,
        'ACTIVE_YES' => $active_yes,
        'ACTIVE_NO' => $active_no,
        'RUNONCE_YES' => $runonce_yes,
        'RUNONCE_NO' => $runonce_no,
        'NAME' => $name,
        'DESCRIPTION' => $description,
        )
    );

gen_page_message($tpl);

$tpl->parse('PAGE', 'page');
$tpl->prnt();

if (Config::get('DUMP_GUI_DEBUG'))
    dump_gui_debug();

unset_messages();

?>

6. cronjobs_add.tpl
Code:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset={THEME_CHARSET}">
<title>{TR_CLIENT_CRONJOBS_TITLE}</title>
  <meta name="robots" content="noindex">
  <meta name="robots" content="nofollow">
<link href="{THEME_COLOR_PATH}/css/ispcp.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="{THEME_COLOR_PATH}/css/ispcp.js"></script>
</head>

<body onload="MM_preloadImages('{THEME_COLOR_PATH}/images/icons/database_a.gif','{THEME_COLOR_PATH}/images/icons/domains_a.gif','{THEME_COLOR_PATH}/images/icons/ftp_a.gif','{THEME_COLOR_PATH}/images/icons/general_a.gif' ,'{THEME_COLOR_PATH}/images/icons/email_a.gif','{THEME_COLOR_PATH}/images/icons/webtools_a.gif','{THEME_COLOR_PATH}/images/icons/statistics_a.gif','{THEME_COLOR_PATH}/images/icons/support_a.gif')">
<!-- BDP: logged_from --><table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td height="20" nowrap="nowrap" class="backButton">&nbsp;&nbsp;&nbsp;<a href="change_user_interface.php?action=go_back"><img src="{THEME_COLOR_PATH}/images/icons/close_interface.png" width="16" height="16" border="0" align="absmiddle"></a> {YOU_ARE_LOGGED_AS}</td>
      </tr>
    </table>
    <!-- EDP: logged_from -->
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%" style="border-collapse: collapse;padding:0;margin:0;">
<tr>
<td align="left" valign="top" style="vertical-align: top; width: 195px; height: 56px;"><img src="{THEME_COLOR_PATH}/images/top/top_left.jpg" border="0"></td>
<td style="height: 56px; width:100%; background-image: url({THEME_COLOR_PATH}/images/top/top_bg.jpg)"><img src="{THEME_COLOR_PATH}/images/top/top_left_bg.jpg" border="0"></td>
<td style="width: 73px; height: 56px;"><img src="{THEME_COLOR_PATH}/images/top/top_right.jpg" border="0"></td>
</tr>
    <tr>
        <td style="width: 195px; vertical-align: top;">{MENU}</td>
        <td colspan="2" style="vertical-align: top;"><table style="width: 100%; border-collapse: collapse;padding:0;margin:0;">
          <tr height="95">
            <td style="padding-left:30px; width: 100%; background-image: url({THEME_COLOR_PATH}/images/top/middle_bg.jpg);">{MAIN_MENU}</td>
            <td style="padding:0;margin:0;text-align: right; width: 73px;vertical-align: top;"><img src="{THEME_COLOR_PATH}/images/top/middle_right.jpg" border="0"></td>
          </tr>
          <tr>
            <td colspan="3"><table width="100%" border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td align="left"><table width="100%" cellpadding="5" cellspacing="5">
                    <tr>
                      <td width="25"><img src="{THEME_COLOR_PATH}/images/content/table_icon_tools.png" width="25" height="25"></td>
                      <td colspan="2" class="title">{TR_CRON_MANAGER}</td>
                    </tr>
                </table></td>
                <td width="27" align="right">&nbsp;</td>
              </tr>
              <tr>
                <td><form name="add_cronjob" method="post" action="cronjobs_add.php">
                    <table width="100%" cellpadding="5" cellspacing="5">
                      <tr>
                        <td width="25">&nbsp;</td>
                        <td colspan="5" class="content3"><b>{TR_ADD_CRONJOB}</b></td>
                      </tr>
                      <!-- BDP: page_message -->
                      <tr>
                        <td width="25">&nbsp;</td>
                        <td colspan="5" class="title"><span class="message">{MESSAGE}</span></td>
                      </tr>
                      <!-- EDP: page_message -->
                      <tr>
                        <td nowrap="nowrap">&nbsp;</td>
                        <td nowrap="nowrap" class="content2">{TR_NAME}</td>
                        <td colspan="4" class="content"><input name="name" type="text" class="textinput" id="name" value="{NAME}" style="width:170px"></td>
                      </tr>
                      <tr>
                        <td nowrap="nowrap">&nbsp;</td>
                        <td nowrap="nowrap" class="content2">{TR_DESCRIPTION}</td>
                        <td colspan="4" class="content"><input name="description" type="text" class="textinput" value="{DESCRIPTION}" id="description" style="width:170px"></td>
                      </tr>
                      <tr>
                        <td nowrap="nowrap">&nbsp;</td>
                        <td nowrap="nowrap" class="content2">{TR_ACTIVE}</td>
                        <td colspan="4" class="content"><select name="activ">
                              <option value="1" {ACTIVE_YES}>{YES}</option>
                            <option value="0" {ACTIVE_NO}>{NO}</option>
                        </select></td>
                      </tr>
                      <tr>
                        <td nowrap="nowrap">&nbsp;</td>
                        <td nowrap="nowrap" class="content2">Run only once and when delete Job</td>
                        <td colspan="4" class="content"><select name="runonce">
                            <option value="1" {RUNONCE_YES}>{YES}</option>
                            <option value="-1" {RUNONCE_NO}>{NO}</option>
                        </select></td>
                      </tr>
                      <tr>
                        <td>&nbsp;</td>
                        <td colspan="5" class="content3"><b>{TR_CRONJOB}</b></td>
                      </tr>
                      <tr>
                        <td width="25">&nbsp;</td>
                        <td colspan="3" class="content2">{TR_COMMAND}</td>
               <td colspan="2" class="content2">Comand Line    Syntax:</td>
                      </tr>
                      <tr>
                        <td width="25">&nbsp;</td>
                        <td colspan="3" class="content"><input name="command_line" type="text" class="textinput" id="command_line" value="{EXAMPLE}" style="width:470px"></td>
               <td colspan="2" class="content2">Enter properly COMMAND, space, full SERVER PATH to executed script!</td>
                      </tr>
                      <tr>
                        <td width="25">&nbsp;</td>
               <td colspan="5" class="content2">Allowed commands in only <b>{ALLOWED}</b> . And allowed file extension is <b>{FILETYPE}</b></td>
                      </tr>
                      <tr>
                        <td nowrap="nowrap">&nbsp;</td>
                        <td align="center" nowrap="nowrap" class="content2">{TR_MIN}</td>
                        <td align="center" class="content2">{TR_HOUR}</td>
                        <td align="center" class="content2">{TR_DAY}</td>
                        <td align="center" class="content2">{TR_MONTHS}</td>
                        <td align="center" class="content2">{TR_WEEKDAYS}</td>
                      </tr>
                      <tr align="center" valign="top">
                        <td width="25" nowrap="nowrap">&nbsp;</td>
                        <td width="200" nowrap="nowrap" class="content"><select name="min[]" size="6" multiple="multiple" id="min">
                            <option value="*">Every Minute</option>
                            <option value="*/2">Every Other Minute</option>
                            <option value="*/5">Every Five Minutes</option>
                            <option value="*/10">Every Ten Minutes</option>
                            <option value="*/15">Every Fifteen Minutes</option>
                            <option value="0">0</option>
                            <option value="1">1</option>
                            <option value="2">2</option>
                            <option value="3">3</option>
                            <option value="4">4</option>
                            <option value="5">5</option>
                            <option value="6">6</option>
                            <option value="7">7</option>
                            <option value="8">8</option>
                            <option value="9">9</option>
                            <option value="10">10</option>
                            <option value="11">11</option>
                            <option value="12">12</option>
                            <option value="13">13</option>
                            <option value="14">14</option>
                            <option value="15">15</option>
                            <option value="16">16</option>
                            <option value="17">17</option>
                            <option value="18">18</option>
                            <option value="19">19</option>
                            <option value="20">20</option>
                            <option value="21">21</option>
                            <option value="22">22</option>
                            <option value="23">23</option>
                            <option value="24">24</option>
                            <option value="25">25</option>
                            <option value="26">26</option>
                            <option value="27">27</option>
                            <option value="28">28</option>
                            <option value="29">29</option>
                            <option value="30">30</option>
                            <option value="31">31</option>
                            <option value="32">32</option>
                            <option value="33">33</option>
                            <option value="34">34</option>
                            <option value="35">35</option>
                            <option value="36">36</option>
                            <option value="37">37</option>
                            <option value="38">38</option>
                            <option value="39">39</option>
                            <option value="40">40</option>
                            <option value="41">41</option>
                            <option value="42">42</option>
                            <option value="43">43</option>
                            <option value="44">44</option>
                            <option value="45">45</option>
                            <option value="46">46</option>
                            <option value="47">47</option>
                            <option value="48">48</option>
                            <option value="49">49</option>
                            <option value="50">50</option>
                            <option value="51">51</option>
                            <option value="52">52</option>
                            <option value="53">53</option>
                            <option value="54">54</option>
                            <option value="55">55</option>
                            <option value="56">56</option>
                            <option value="57">57</option>
                            <option value="58">58</option>
                            <option value="59">59</option>
                            </select></td>
                        <td class="content"><select name="hour[]" size="6" multiple="multiple" id="hour">
                            <option value="*">Every Hour</option>
                            <option value="*/2">Every Other Hour</option>
                            <option value="*/4">Every Four Hours</option>
                            <option value="*/6">Every Six Hours</option>
                            <option value="0">0 = 12 AM/Midnight</option>
                            <option value="1">1 = 1 AM</option>
                            <option value="2">2 = 2 AM</option>
                            <option value="3">3 = 3 AM</option>
                            <option value="4">4 = 4 AM</option>
                            <option value="5">5 = 5 AM</option>
                            <option value="6">6 = 6 AM</option>
                            <option value="7">7 = 7 AM</option>
                            <option value="8">8 = 8 AM</option>
                            <option value="9">9 = 9 AM</option>
                            <option value="10">10 = 10 AM</option>
                            <option value="11">11 = 11 AM</option>
                            <option value="12">12 = 12 PM/Noon</option>
                            <option value="13">13 = 1 PM</option>
                            <option value="14">14 = 2 PM</option>
                            <option value="15">15 = 3 PM</option>
                            <option value="16">16 = 4 PM</option>
                            <option value="17">17 = 5 PM</option>
                            <option value="18">18 = 6 PM</option>
                            <option value="19">19 = 7 PM</option>
                            <option value="20">20 = 8 PM</option>
                            <option value="21">21 = 9 PM</option>
                            <option value="22">22 = 10 PM</option>
                            <option value="23">23 = 11 PM</option>
                            </select></td>
                        <td class="content"><select name="day_of_month[]" size="6" multiple="multiple" id="day_of_month">
                            <option value="*">Every Day</option>
                            <option value="1">1</option>
                            <option value="2">2</option>
                            <option value="3">3</option>
                            <option value="4">4</option>
                            <option value="5">5</option>
                            <option value="6">6</option>
                            <option value="7">7</option>
                            <option value="8">8</option>
                            <option value="9">9</option>
                            <option value="10">10</option>
                            <option value="11">11</option>
                            <option value="12">12</option>
                            <option value="13">13</option>
                            <option value="14">14</option>
                            <option value="15">15</option>
                            <option value="16">16</option>
                            <option value="17">17</option>
                            <option value="18">18</option>
                            <option value="19">19</option>
                            <option value="20">20</option>
                            <option value="21">21</option>
                            <option value="22">22</option>
                            <option value="23">23</option>
                            <option value="24">24</option>
                            <option value="25">25</option>
                            <option value="26">26</option>
                            <option value="27">27</option>
                            <option value="28">28</option>
                            <option value="29">29</option>
                            <option value="30">30</option>
                            <option value="31">31</option>
                            </select></td>
                        <td class="content"><select name="month[]" size="6" multiple="multiple" id="month">
                            <option value="*">Every Month</option>
                            <option value="1">January</option>
                            <option value="2">February</option>
                            <option value="3">March</option>
                            <option value="4">April</option>
                            <option value="5">May</option>
                            <option value="6">June</option>
                            <option value="7">July</option>
                            <option value="8">August</option>
                            <option value="9">September</option>
                            <option value="10">October</option>
                            <option value="11">November</option>
                            <option value="12">December</option>
                            </select></td>
                        <td class="content"><select name="day_of_week[]" size="6" multiple="multiple" id="day_of_week">
                            <option value="*">Every Weekday</option>
                            <option value="0">Sunday</option>
                            <option value="1">Monday</option>
                            <option value="2">Tuesday</option>
                            <option value="3">Wednesday</option>
                            <option value="4">Thursday</option>
                            <option value="5">Friday</option>
                            <option value="6">Saturday</option>
                            </select></td>
                      </tr>
                      <tr>
                        <td width="25">&nbsp;</td>
                        <td colspan="5"><input name="Submit" type="submit" class="button" value="  {TR_ADD}  ">
                          &nbsp;&nbsp;
                          <input name="Reset" type="reset" class="button" value="{TR_RESET}">
                          &nbsp;&nbsp;
                          <input name="button" type="button" class="button" onclick="MM_goToURL('parent','cronjobs_overview.php');return document.MM_returnValue" value="{TR_CANCEL}"></td>
                      </tr>
                    </table>
                  <input type="hidden" name="uaction" value="add_cronjob">
                </form>
<p> <b> Функция в процессе разработки и тестирования!</b></p>

</td>
                <td>&nbsp;</td>
              </tr>
              <tr>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
              </tr>
            </table></td>
          </tr>
        </table></td>
    </tr>
</table>
</body>
</html>

7. cronjobs_edit.php ...
Ooops! Russian Vodca is over Sad
My work temporary stoped...
(This post was last modified: 01-10-2009 03:53 AM by data-stream_ru.)
01-09-2009 12:52 PM
Visit this user's website Find all posts by this user Quote this message in a reply
Post Reply 


Messages In This Thread
RE: Writing CronJobs Web int. It's time! - data-stream_ru - 01-09-2009 12:52 PM

Forum Jump:


User(s) browsing this thread: 4 Guest(s)