Current time: 11-26-2024, 01:06 PM 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: #3
RE: Writing CronJobs Web int. It's time!
8. rewrite cronjobs_edit.php
Code:
<?php
/**
* ispCP П‰ (OMEGA) a Virtual Hosting Control System
*
* @copyright     2001-2006 by moleSoftware GmbH
* @copyright     2006-2008 by ispCP | http://isp-control.net
* @version     SVN: $Id$
* @link         http://isp-control.net
* @author         ispCP Team
*
* @license
*   This program is free software; you can redistribute it and/or modify it under
*   the terms of the MPL General Public License as published by the Free Software
*   Foundation; either version 1.1 of the License, or (at your option) any later
*   version.
*   You should have received a copy of the MPL Mozilla Public License along with
*   this program; if not, write to the Open Source Initiative (OSI)
*   http://opensource.org | osi@opensource.org
*/

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

check_login(__FILE__);

$tpl = new pTemplate();
$tpl->define_dynamic('page', Config::get('CLIENT_TEMPLATE_PATH') . '/cronjobs_edit.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'])
        )
    );

/* All functions written by Sergey Obookhoff
* (c) 2009
* www.data-stream.ru
* Moscow, Russia
*/
    if (!isset($_GET['cron_id']) && !isset($_POST['Submit'])) {
    set_page_message(tr('Nothing to do!'));
    user_goto('cronjobs_overview.php');
    }

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


function update_cron_job(&$tpl, &$sql, $cron_id, $user_id) {

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



       if ($activ == 0) {$cron_status = "ok";}
    else {$cron_status = Config::get('ITEM_ADD_STATUS');}

    $query = "
        UPDATE
            cron_jobs
        SET
            cron_name = ?, cron_desc = ?, min = ?, hour = ?, day = ?, month = ?, week = ?, command = ?, cron_activ = ?, cron_status = ?
        WHERE
            cron_id = ?
    ";

    $rs = exec_query($sql, $query, array($name, $description, $min, $hour, $day_of_month, $month, $day_of_week, $command_line, $activ, $cron_status,$cron_id));



    send_request();
    write_log($_SESSION['user_logged'] . ": updeted Cron Job: " . $cron_name);
    set_page_message(tr('Cron Job successfully updated!'));
    user_goto('cronjobs_overview.php');

} // End of update_cron_job();


function gen_cron_job(&$tpl, &$sql, $cron_id, $user_id) {

    $query = "
        SELECT
            `cron_id`, `admin_id`, `cron_name`, `cron_desc`, `min`, `hour`, `day`, `month`, `week`, `command`, `cron_activ`, `cron_status`
        FROM
            `cron_jobs`
        WHERE
            admin_id = $user_id
     AND
         cron_id = $cron_id
    ";

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

    if ($rs->RecordCount() == 0) {
    set_page_message(tr('No CronJob with this ID!'));
    header('Location: cronjobs_overview.php');
    exit(0);
    }

    if ($rs->fields['cron_status'] != 'ok') {
    set_page_message(tr('Job is shedalled and can not be editing or deleting!'));
    header('Location: cronjobs_overview.php');
    exit(0);


    } else {
    
    if ($rs->fields['cron_activ'] == 1) {$active_yes = 'selected'; $active_no = '';}
    else  {$active_no = 'selected'; $active_yes = '';}
    $tpl->assign(
        array('NAME' => $rs->fields['cron_name'],
            'DESCRIPTION' => $rs->fields['cron_desc'],
            'COMMAND_LINE' => $rs->fields['command'],
            'ACTIVE' => $rs->fields['cron_activ'],
            'ACTIVE_YES' => $active_yes,
            'ACTIVE_NO' => $active_no,
            'ID'  => $rs->fields['cron_id']
            )
        );
    }

} // 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);

if (isset($_GET['cron_id']) && is_numeric($_GET['cron_id']) && isset($_POST['Submit']))
    update_cron_job($tpl, $sql, $_GET['cron_id'], $_SESSION['user_id']);

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

$tpl->assign(
    array('TR_CRON_MANAGER' => tr('Cronjob Manager'),
        'TR_EDIT_CRONJOB' => tr('Edit 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_UPDATE' => tr('Update'),
        'TR_CANCEL' => tr('Cancel'),
        )
    );

gen_page_message($tpl);

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

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

unset_messages();
?>

9. Opening cronjobs_edit.tpl and removing buggs
{DESCTIPTON} change to {DESCRIPTION}
Smile

action="cronjobs_edit.php"
changing to
action="cronjobs_edit.php?cron_id={ID}"

And repllacing code under <td colspan="4" class="content"><select name="activ">
to
<option value="1" {ACTIVE_YES}>{YES}</option>
<option value="0" {ACTIVE_NO}>{NO}</option>

And becouse multi selection not supported we must delete all multiple="multiple"
And in crongobs_add.tpl too.

But in other highlit selections we have a big truble Sad
Code sample

if ($rs->fields['cron_activ'] == 1) {$active_yes = 'selected'; $active_no = '';}
else {$active_no = 'selected'; $active_yes = '';}
......
'ACTIVE_YES' => $active_yes,
'ACTIVE_NO' => $active_no,
And in the template
<option value="1" {ACTIVE_YES}>{YES}</option>
<option value="0" {ACTIVE_NO}>{NO}</option>

It's not good solution for lage selection feeld in forms.
Any idea?
May be in Java...

And now we have full-function web interfeice to mySQL
But we must convert add mySQL table to the cron files.
And we must write sub for ispcp-rqst-mngr Sad
Any perl Coders are preasent, is not it?
Who is next developer for this function?
Wink
(This post was last modified: 01-05-2009 03:45 PM by data-stream_ru.)
01-05-2009 03:44 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-05-2009 03:44 PM

Forum Jump:


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