Current time: 05-06-2024, 05:04 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: #1
Writing CronJobs Web int. It's time!
Now, boys and girls...
Let's run!

1. Creating mySQL table cron_jobs in DB ispcp
importing cron_jobs.sql
Code:
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

CREATE TABLE IF NOT EXISTS `cron_jobs` (
  `cron_id` int(10) unsigned NOT NULL auto_increment,
  `admin_id` int(10) unsigned NOT NULL,
  `cron_name` varchar(100) collate utf8_unicode_ci NOT NULL,
  `cron_desc` varchar(200) collate utf8_unicode_ci NOT NULL,
  `min` varchar(4) collate utf8_unicode_ci NOT NULL,
  `hour` varchar(3) collate utf8_unicode_ci NOT NULL,
  `day` varchar(2) collate utf8_unicode_ci NOT NULL,
  `month` varchar(2) collate utf8_unicode_ci NOT NULL,
  `week` varchar(1) collate utf8_unicode_ci NOT NULL,
  `command` text collate utf8_unicode_ci NOT NULL,
  `cron_activ` int(1) unsigned default NULL,
  `cron_status` varchar(255) collate utf8_unicode_ci NOT NULL,
  PRIMARY KEY  (`cron_id`),
  KEY `cron_id` (`cron_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=7 ;

2. Opening webtools.tpl and under
Code:
<!-- EDP: active_awstats -->
insert
Code:
<tr>
             <td>&nbsp;</td>
             <td class="content">
              <table width="100%" border="0" cellspacing="0" cellpadding="0">
               </tr>
                <td width="65"><a href="cronjobs_overview.php"><img src="{THEME_COLOR_PATH}/images/icons/cron_jobs.gif" alt="CronJobs" width="46" height="46" border="0"></a></td>
                <td><a href="cronjobs_overview.php" class="link">CronJobs</a><br />
                   Jobs Plainer</td>
               </tr>
              </table></td>
            </tr>

3. Opening cronjobs_overview.php and cange blunk funktion to
Code:
function gen_cron_jobs(&$tpl, &$sql, $user_id) {

/*
Function writen by Sergey Obookhoff
www.data-stream.ru
Russia, Moscow
*/

    $query = <<<SQL_QUERY
        SELECT
            cron_id, admin_id, cron_name, cron_desc, cron_activ
        FROM
            cron_jobs
        WHERE
            admin_id = $user_id
        ORDER BY
            cron_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' => ''
                )
            );

    } else {

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

            if ($rs->fields['cron_activ'] == 1) {$activ = 'Yes';}
            else {$activ = 'No';};
            if ($rs->fields['cron_status'] != 'ok') {$activ = '<img src=/themes/omega_original/images/icons/reload.png>';}
            $tpl->assign(
                array('NAME' => $rs->fields['cron_name'],
                    'DESCRIPTION' => $rs->fields['cron_desc'],
                    'ACTIVE' => $activ,
                    'ID'  => $rs->fields['cron_id']
                    )
                );
            $tpl->parse('CRONJOBS', '.cronjobs');
            $rs->MoveNext();
            $counter++;
        }

    }

} // End of gen_cron_job();

4. creating cronjobs_delete.php
Code:
<?php
/**
* CronJob Web Interface for ispCP
* @copyright     2009 data-stream.ru
* @copyright     
* @version     1.0
* @link         http://data-stream.ru
* @author         Serge Obookhoff for ispCP Team
*
*/

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

check_login(__FILE__);

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

    $query = "
        SELECT
            `cron_id`
            `cron_name`
        FROM
            `cron_jobs`
        WHERE
            `cron_id` = ?
    ";

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

    if ($rs -> RecordCount() == 0) {
        user_goto('cronjobs_overview.php');
    }

    check_for_lock_file();

    $query = "
        UPDATE
            `cron_jobs`
        SET
            `cron_status` = 'delete'
        WHERE
            `cron_id` = ?
    ";

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

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

?>

#chown vu2000:apache cronjobs_delete.php
and chmod it...

And now...
I must go to drink same Russian Vodka, and then I can to rewrite another files Wink
To be continued...
(This post was last modified: 01-05-2009 09:10 AM by data-stream_ru.)
01-05-2009 04:50 AM
Visit this user's website Find all posts by this user Quote this message in a reply
Post Reply 


Messages In This Thread
Writing CronJobs Web int. It's time! - data-stream_ru - 01-05-2009 04:50 AM

Forum Jump:


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