1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-03 21:27:25 +02:00

cron administration clean up

This commit is contained in:
secretr
2010-11-15 16:32:33 +00:00
parent aa0d2e8da4
commit ecfebe6284

View File

@@ -1,37 +1,31 @@
<?php <?php
/* /*
+ ----------------------------------------------------------------------------+ * e107 website system
| e107 website system *
| * Copyright (C) 2008-2010 e107 Inc (e107.org)
| Copyright (C) 2008-2010 e107 Inc * Released under the terms and conditions of the
| http://e107.org/ * GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
| *
| * Cron Administration
| Released under the terms and conditions of the *
| GNU General Public License (http://gnu.org/). * $URL$
| * $Id$
| $Source: /cvs_backup/e107_0.8/e107_admin/cron.php,v $ *
| $Revision$ */
| $Date$
| $Author$
+----------------------------------------------------------------------------+
*/
/** /**
* *
* @package e107 * @package e107
* @subpackage admin * @subpackage admin
* @version $Revision$ * @version $Id$
* @author $Author$
* Admin-related functions for cron (Scheduler) management * Admin-related functions for cron (Scheduler) management
*/ */
require_once('../class2.php'); require_once('../class2.php');
if (!getperms('U')) if (!getperms('U'))
{ {
header('location:'.e_BASE.'index.php'); header('location:'.e_BASE.'index.php');
exit; exit;
} }
include_lan(e_LANGUAGEDIR.e_LANGUAGE.'/admin/lan_'.e_PAGE); include_lan(e_LANGUAGEDIR.e_LANGUAGE.'/admin/lan_'.e_PAGE);
@@ -39,102 +33,89 @@ include_lan(e_LANGUAGEDIR.e_LANGUAGE.'/admin/lan_'.e_PAGE);
$e_sub_cat = 'cron'; $e_sub_cat = 'cron';
require_once('auth.php'); require_once('auth.php');
require_once (e_HANDLER.'message_handler.php'); $frm = e107::getForm();
require_once(e_HANDLER.'form_handler.php'); $cron = new cron();
$frm = new e_form(true);
$cron = new cron;
require_once(e_ADMIN.'footer.php'); require_once(e_ADMIN.'footer.php');
exit; exit;
class cron class cron
{ {
var $coreCrons = array(); protected $coreCrons = array();
var $cronAction; protected $cronAction;
var $e_cron = array(); protected $e_cron = array();
function cron() public function __construct()
{ {
global $pref; $pref = e107::getPref();
$mes = $mes = e107::getMessage(); $mes = e107::getMessage();
$this->cronAction = e_QUERY; $this->cronAction = e_QUERY;
// The 'available' flag only gives the option to configure the cron if the underlying feature is enabled // The 'available' flag only gives the option to configure the cron if the underlying feature is enabled
$this->coreCrons['_system'] = array( $this->coreCrons['_system'] = array(
0 => array('name' => 'Test Email', 'function' => 'sendEmail', 'description' => 'Send a test email to '.$pref['siteadminemail'].'<br />Recommended to test the scheduling system.'), 0 => array('name' => 'Test Email', 'function' => 'sendEmail', 'description' => 'Send a test email to '.$pref['siteadminemail'].'<br />Recommended to test the scheduling system.'),
1 => array('name' => 'Mail Queue', 'function' => 'procEmailQueue', 'description' => 'Process mail queue'), 1 => array('name' => 'Mail Queue', 'function' => 'procEmailQueue', 'description' => 'Process mail queue'),
2 => array('name' => 'Mail Bounce Check', 'function' => 'procEmailBounce', 'description' => 'Check for bounced emails', 'available' => vartrue($pref['mail_bounce_auto'])), 2 => array('name' => 'Mail Bounce Check', 'function' => 'procEmailBounce', 'description' => 'Check for bounced emails', 'available' => vartrue($pref['mail_bounce_auto'])),
// 1 => array('name'=>'User Purge', 'function' => 'userPurge', 'description'=>'Purge Unactivated Users'), // 1 => array('name'=>'User Purge', 'function' => 'userPurge', 'description'=>'Purge Unactivated Users'),
// 2 => array('name'=>'User UnActivated', 'function' => 'userUnactivated', 'description'=>'Resend activation email to unactivated users.'), // 2 => array('name'=>'User UnActivated', 'function' => 'userUnactivated', 'description'=>'Resend activation email to unactivated users.'),
// 3 => array('name'=>'News Sticky', 'function' => 'newsPurge', 'description'=>'Remove Sticky News Items') // 3 => array('name'=>'News Sticky', 'function' => 'newsPurge', 'description'=>'Remove Sticky News Items')
); );
if (!vartrue($pref['e_cron_pwd']))
if(!vartrue($pref['e_cron_pwd']))
{ {
$pwd = $this->setCronPwd(); $pwd = $this->setCronPwd();
} }
if (isset($_POST['submit']))
if(isset($_POST['submit']))
{ {
$this->cronSave(); $this->cronSave();
} }
$this->lastRefresh(); $this->lastRefresh();
$this->cronLoad(); $this->cronLoad();
if(isset($_POST['save_prefs'])) if (isset($_POST['save_prefs']))
{ {
$this -> cronSavePrefs(); $this->cronSavePrefs();
} }
if(isset($_POST['execute'])) if (isset($_POST['execute']))
{ {
$class_func = key($_POST['execute']); $class_func = key($_POST['execute']);
$this -> cronExecute($class_func); $this->cronExecute($class_func);
} }
// Set Core Cron Options. // Set Core Cron Options.
// These core functions need to be put into e_BASE/cron.php ie. news_purge()
if ($this->cronAction == "" || $this->cronAction == "main")
// These core functions need to be put into e_BASE/cron.php ie. news_purge()
if($this->cronAction == "" || $this->cronAction == "main")
{ {
$this -> cronRenderPage(); $this->cronRenderPage();
} }
if ($this->cronAction == "pref")
if($this->cronAction == "pref")
{ {
$this -> cronRenderPrefs(); $this->cronRenderPrefs();
} }
} }
function lastRefresh() function lastRefresh()
{ {
global $pref; $pref = e107::getPref();
e107::getCache()->CachePageMD5 = '_'; e107::getCache()->CachePageMD5 = '_';
$lastload = e107::getCache()->retrieve('cronLastLoad',FALSE,TRUE,TRUE); $lastload = e107::getCache()->retrieve('cronLastLoad', FALSE, TRUE, TRUE);
$mes = e107::getMessage(); $mes = e107::getMessage();
$ago = (time() - $lastload); $ago = (time() - $lastload);
$active = ($ago < 901) ? TRUE : FALSE; $active = ($ago < 901) ? TRUE : FALSE;
$status = ($active) ? LAN_ENABLED : LAN_DISABLED; // "Enabled" : "Offline"; $status = ($active) ? LAN_ENABLED : LAN_DISABLED; // "Enabled" : "Offline";
$mins = floor ($ago / 60); $mins = floor($ago / 60);
$secs = $ago % 60; $secs = $ago % 60;
$lastRun = ($mins) ? $mins." minutes and ".$secs." seconds ago." : $secs." seconds ago.";
$lastRun = ($mins) ? $mins." minutes and ".$secs." seconds ago." : $secs." seconds ago.";
$lastRefresh = ($ago < 10000) ? $lastRun : 'Never'; $lastRefresh = ($ago < 10000) ? $lastRun : 'Never';
@@ -142,13 +123,14 @@ class cron
// print_a($pref['e_cron_pref']); // print_a($pref['e_cron_pref']);
if($pref['e_cron_pref']) // grab cron if ($pref['e_cron_pref']) // grab cron
{ {
foreach($pref['e_cron_pref'] as $func=>$cron) foreach ($pref['e_cron_pref'] as $func => $cron)
{ {
if($cron['active']==1) if ($cron['active'] == 1)
{ {
$list[$func] = $cron; $list[$func] = $cron;
} }
} }
} }
@@ -159,51 +141,47 @@ class cron
//FIXME: for Windows, the is_executable() function only checks the file //FIXME: for Windows, the is_executable() function only checks the file
// extensions of exe, com, bat and cmd. // extensions of exe, com, bat and cmd.
if(!is_executable(e_BASE."cron.php")) if (!is_executable(e_BASE."cron.php"))
{ {
$mes->add("Please CHMOD /cron.php to 755" , E_MESSAGE_WARNING); $mes->add("Please CHMOD /cron.php to 755", E_MESSAGE_WARNING);
} }
elseif(!$active) elseif (!$active)
{ {
$setpwd_message = "Use the following Cron Command: <b style='color:black'>".$_SERVER['DOCUMENT_ROOT'].e_HTTP."cron.php ".$pref['e_cron_pwd']."</b><br /> $setpwd_message = "Use the following Cron Command: <b style='color:black'>".$_SERVER['DOCUMENT_ROOT'].e_HTTP."cron.php ".$pref['e_cron_pwd']."</b><br />
Using your server control panel (eg. cPanel,Plesk etc.) please create a crontab to run this command on your server every minute."; Using your server control panel (eg. cPanel,Plesk etc.) please create a crontab to run this command on your server every minute.";
$mes->add($setpwd_message, E_MESSAGE_INFO); $mes->add($setpwd_message, E_MESSAGE_INFO);
} }
} }
function cronName($classname, $method)
function cronName($classname,$method)
{
$tp = e107::getParser();
foreach($this->e_cron as $class=>$val)
{ {
$tp = e107::getParser();
if($class == $classname) foreach ($this->e_cron as $class => $val)
{ {
foreach($val as $func)
if ($class == $classname)
{ {
if($func['function'] == $method) foreach ($val as $func)
{ {
return $tp->toHtml($func['name']); if ($func['function'] == $method)
{
return $tp->toHtml($func['name']);
}
} }
} }
} }
} }
}
function cronExecute($class_func) function cronExecute($class_func)
{ {
//TODO LANs //TODO LANs
list($class_name,$method_name) = explode("__",$class_func); list($class_name, $method_name) = explode("__", $class_func);
$mes = e107::getMessage(); $mes = e107::getMessage();
$taskName = $class_name; $taskName = $class_name;
if($class_name =='_system') if ($class_name == '_system')
{ {
require_once(e_HANDLER.'cron_class.php'); require_once(e_HANDLER.'cron_class.php');
} }
@@ -212,14 +190,14 @@ function cronName($classname,$method)
require_once(e_PLUGIN.$class_name.'/e_cron.php'); require_once(e_PLUGIN.$class_name.'/e_cron.php');
} }
$class_name .= '_cron'; $class_name .= '_cron';
$status = $this->cronExecuteMethod($class_name,$method_name) ? E_MESSAGE_SUCCESS : E_MESSAGE_ERROR; $status = $this->cronExecuteMethod($class_name, $method_name) ? E_MESSAGE_SUCCESS : E_MESSAGE_ERROR;
$mes->add("Running <b>".$this->cronName($taskName,$method_name)."</b>", $status); $mes->add("Running <b>".$this->cronName($taskName, $method_name)."</b>", $status);
} }
function cronSavePref() function cronSavePref()
{ {
// Store the USERID with the password. // Store the USERID with the password.
// This way only the one password is needed, and the user login can be looked up in e_base/cron.php // This way only the one password is needed, and the user login can be looked up in e_base/cron.php
} }
@@ -231,38 +209,38 @@ function cronName($classname,$method)
$mes = e107::getMessage(); $mes = e107::getMessage();
$activeCount = 0; $activeCount = 0;
foreach($_POST['cron'] as $key=>$val) foreach ($_POST['cron'] as $key => $val)
{ {
if(!$val['active']) if (!$val['active'])
{ {
$val['active'] = 0; $val['active'] = 0;
} }
else else
{ {
$activeCount++; $activeCount++;
} }
$t['minute'] = implode(",",$_POST['tab'][$key]['minute']); $t['minute'] = implode(",", $_POST['tab'][$key]['minute']);
$t['hour'] = implode(",",$_POST['tab'][$key]['hour']); $t['hour'] = implode(",", $_POST['tab'][$key]['hour']);
$t['day'] = implode(",",$_POST['tab'][$key]['day']); $t['day'] = implode(",", $_POST['tab'][$key]['day']);
$t['month'] = implode(",",$_POST['tab'][$key]['month']); $t['month'] = implode(",", $_POST['tab'][$key]['month']);
$t['weekday'] = implode(",",$_POST['tab'][$key]['weekday']); $t['weekday'] = implode(",", $_POST['tab'][$key]['weekday']);
$val['tab'] = implode(" ",$t); $val['tab'] = implode(" ", $t);
$tabs .= $val['tab']."<br />"; $tabs .= $val['tab']."<br />";
list($class,$func) = explode("__",$key); list($class, $func) = explode("__", $key);
$val['function'] = $func; $val['function'] = $func;
$val['class'] = $class; $val['class'] = $class;
$val['path'] = $class; $val['path'] = $class;
$cron[$key] = $val; $cron[$key] = $val;
} }
$pref['e_cron_pref'] = $cron; $pref['e_cron_pref'] = $cron;
if(!vartrue($pref['e_cron_pwd']) || varset($_POST['generate_pwd'])) if (!vartrue($pref['e_cron_pwd']) || varset($_POST['generate_pwd']))
{ {
$pwd = $this->setCronPwd(); $pwd = $this->setCronPwd();
@@ -271,48 +249,47 @@ function cronName($classname,$method)
$mes->add($setpwd_message, E_MESSAGE_WARNING); $mes->add($setpwd_message, E_MESSAGE_WARNING);
} }
// print_a($pref['e_cron_pref']);
// print_a($pref['e_cron_pref']); if (save_prefs())
if(save_prefs())
{ {
$mes->add(LAN_SETSAVED, E_MESSAGE_SUCCESS); $mes->add(LAN_SETSAVED, E_MESSAGE_SUCCESS);
$mes->add($activeCount." Cron(s) Active", E_MESSAGE_SUCCESS); $mes->add($activeCount." Cron(s) Active", E_MESSAGE_SUCCESS);
} }
else else
{ {
$mes->add("There was a problem saving your settings.", E_MESSAGE_ERROR); $mes->add("There was a problem saving your settings.", E_MESSAGE_ERROR);
} }
} }
function setCronPwd()
function setCronPwd() {
{ //global $pref;
global $pref;
$userMethods = e107::getUserSession(); $userMethods = e107::getUserSession();
$newpwd = $userMethods->generateRandomString('*^*#.**^*'); $newpwd = $userMethods->generateRandomString('*^*#.**^*');
$newpwd = sha1($newpwd.time()); $newpwd = sha1($newpwd.time());
$pref['e_cron_pwd'] = $newpwd; //$pref['e_cron_pwd'] = $newpwd;
e107::getConfig()->set('e_cron_pwd', $newpwd)->save(false);
return true;
return save_prefs(); }
} // --------------------------------------------------------------------------
// --------------------------------------------------------------------------
function cronRenderPrefs() function cronRenderPrefs()
{ {
global $frm,$ns; //global $frm,$ns;
$frm = e107::getForm();
$text = "<div style='text-align:center'> $text = "<div style='text-align:center'>
<form method='post' action='".e_SELF."' id='linkform'> <form method='post' action='"
.e_SELF."' id='linkform'>
<table class='adminlist'> <table class='adminlist'>
<tr> <tr>
<td style='width:30%'>Cron Password</td> <td style='width:30%'>Cron Password</td>
<td style='width:70%'> <td style='width:70%'>
".$frm->password('cron_password',100)." "
.$frm->password('cron_password', 100)."
</td> </td>
</tr> </tr>
@@ -320,48 +297,47 @@ function setCronPwd()
<tr style='vertical-align:top'> <tr style='vertical-align:top'>
<td colspan='2' class='center buttons-bar'>"; <td colspan='2' class='center buttons-bar'>";
$text .= $frm->admin_button('save_prefs',LAN_SAVE, 'update'); $text .= $frm->admin_button('save_prefs', LAN_SAVE, 'update');
$text .= "</td> $text .= "</td>
</tr> </tr>
</table> </table>
</form> </form>
</div>"; </div>";
$ns -> tablerender(LAN_PREFS, $text); e107::getRender()->tablerender(LAN_PREFS, $text);
} }
function cronLoad() //TODO Make a generic function to work with e_cron, e_sitelink, e_url etc. function cronLoad() //TODO Make a generic function to work with e_cron, e_sitelink, e_url etc.
{
global $pref;
$core_cron = $this->coreCrons; // May need to check 'available' flag here {
$pref = e107::getPref();
$core_cron = $this->coreCrons; // May need to check 'available' flag here
$new_cron = e107::getAddonConfig('e_cron'); $new_cron = e107::getAddonConfig('e_cron');
$this->e_cron = array_merge($core_cron,$new_cron); $this->e_cron = array_merge($core_cron, $new_cron);
return; return;
} }
// ----------- Grab All e_cron parameters -----------------------------------
// ----------- Grab All e_cron parameters -----------------------------------
function cronRenderPage() function cronRenderPage()
{ {
global $pref; $pref = e107::getPref();
$cronpref = $pref['e_cron_pref']; $cronpref = $pref['e_cron_pref'];
$ns = e107::getRender(); $ns = e107::getRender();
$frm = e107::getForm(); $frm = e107::getForm();
$mes = e107::getMessage(); $mes = e107::getMessage();
$e_cron = $this->e_cron; $e_cron = $this->e_cron;
// ---------------------- List All Functions -----------------------------
// ---------------------- List All Functions -----------------------------
$text = "<div style='text-align:center'> $text = "<div style='text-align:center'>
<form method='post' action='".e_SELF."' id='cronform'> <form method='post' action='"
.e_SELF."' id='cronform'>
<table class='adminlist'> <table class='adminlist'>
<colgroup span='8'> <colgroup span='8'>
<col></col> <col></col>
@@ -375,85 +351,95 @@ function setCronPwd()
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
<th>".LAN_CRON_1."</th> <th>"
<th>".LAN_CRON_2."</th> .LAN_CRON_1."</th>
<th>".LAN_CRON_3."</th> <th>"
<th>".LAN_CRON_4."</th> .LAN_CRON_2."</th>
<th>".LAN_CRON_5."</th> <th>"
<th>".LAN_CRON_6."</th> .LAN_CRON_3."</th>
<th>".LAN_CRON_7."</th> <th>"
<th>".LAN_CRON_8."</th> .LAN_CRON_4."</th>
<th>"
.LAN_CRON_5."</th>
<th>"
.LAN_CRON_6."</th>
<th>"
.LAN_CRON_7."</th>
<th>"
.LAN_CRON_8."</th>
<th>Run Now</th> <th>Run Now</th>
</tr> </tr>
</thead> </thead>
<tbody>"; <tbody>";
foreach($e_cron as $plug=>$cfg) foreach ($e_cron as $plug => $cfg)
{
foreach($cfg as $class=>$cron)
{ {
if (!isset($cron['available']) || $cron['available']) // Only display cron functions which are available foreach ($cfg as $class => $cron)
{ {
$c = $plug.'__'. $cron['function']; // class and function. if (!isset($cron['available']) || $cron['available']) // Only display cron functions which are available
$sep = array();
list($sep['minute'],$sep['hour'],$sep['day'],$sep['month'],$sep['weekday']) = explode(" ",$cronpref[$c]['tab']);
foreach($sep as $key=>$value)
{ {
if($value=="") $c = $plug.'__'.$cron['function']; // class and function.
$sep = array();
list($sep['minute'], $sep['hour'], $sep['day'], $sep['month'], $sep['weekday']) = explode(" ", $cronpref[$c]['tab']);
foreach ($sep as $key => $value)
{ {
$sep[$key] = "*"; if ($value == "")
{
$sep[$key] = "*";
}
} }
}
$minute = explode(",",$sep['minute']); $minute = explode(",", $sep['minute']);
$hour = explode(",",$sep['hour']); $hour = explode(",", $sep['hour']);
$day = explode(",",$sep['day']); $day = explode(",", $sep['day']);
$month = explode(",",$sep['month']); $month = explode(",", $sep['month']);
$weekday = explode(",",$sep['weekday']); $weekday = explode(",", $sep['weekday']);
$min_options = array( $min_options = array(
"*" => LAN_CRON_11, "*" => LAN_CRON_11,
"0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58" => LAN_CRON_12, "0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58" => LAN_CRON_12,
"0,5,10,15,20,25,30,35,40,45,50,55" => LAN_CRON_13, "0,5,10,15,20,25,30,35,40,45,50,55" => LAN_CRON_13,
"0,10,20,30,40,50" => LAN_CRON_14, "0,10,20,30,40,50" => LAN_CRON_14,
"0,15,30,45" => LAN_CRON_10, "0,15,30,45" => LAN_CRON_10,
"0,30" => LAN_CRON_15 "0,30" => LAN_CRON_15
); );
$hour_options = array( $hour_options = array(
"*" => LAN_CRON_16, "*" => LAN_CRON_16,
"0,2,4,6,8,10,12,14,16,18,20,22" => LAN_CRON_17, "0,2,4,6,8,10,12,14,16,18,20,22" => LAN_CRON_17,
"0,3,6,9,12,15,18,21" => LAN_CRON_18, "0,3,6,9,12,15,18,21" => LAN_CRON_18,
"0,6,12,18" => LAN_CRON_19 "0,6,12,18" => LAN_CRON_19
); );
$text .= "<tr> $text .= "<tr>
<td>".$cron['name']."</td> <td>"
<td>".$cron['description']."</td> .$cron['name']."</td>
<td>"
.$cron['description']."</td>
<td> <td>
<input type='hidden' name='cron[$c][path]' value='".$cron['path']."' /> <input type='hidden' name='cron[$c][path]' value='".$cron['path']."' />
<select class='tbox' style='height:70px' multiple='multiple' name='tab[$c][minute][]'>\n"; <select class='tbox' style='height:70px' multiple='multiple' name='tab[$c][minute][]'>\n";
foreach($min_options as $key=>$val) foreach ($min_options as $key => $val)
{ {
if($sep['minute'] == $key) if ($sep['minute'] == $key)
{ {
$sel = "selected='selected'"; $sel = "selected='selected'";
$minute = array(); $minute = array();
} }
else else
{ {
$sel = ""; $sel = "";
} }
$text .= "<option value='$key' $sel>".$val."</option>\n"; $text .= "<option value='$key' $sel>".$val."</option>\n";
} }
for ($i = 0; $i <= 59; $i++)
for ($i=0; $i<=59; $i++)
{ {
$sel = (in_array(strval($i),$minute)) ? "selected='selected'" : ""; $sel = (in_array(strval($i), $minute)) ? "selected='selected'" : "";
$text .= "<option value='$i' $sel>".$i."</option>\n"; $text .= "<option value='$i' $sel>".$i."</option>\n";
} }
$text .= "</select> $text .= "</select>
@@ -462,25 +448,25 @@ function setCronPwd()
<select class='tbox' style='height:70px' multiple='multiple' name='tab[$c][hour][]'> <select class='tbox' style='height:70px' multiple='multiple' name='tab[$c][hour][]'>
\n"; \n";
foreach($hour_options as $key=>$val) foreach ($hour_options as $key => $val)
{ {
if($sep['hour'] == $key) if ($sep['hour'] == $key)
{ {
$sel = "selected='selected'"; $sel = "selected='selected'";
$hour = array(); $hour = array();
} }
else else
{ {
$sel = ""; $sel = "";
} }
$text .= "<option value='$key' $sel>".$val."</option>\n"; $text .= "<option value='$key' $sel>".$val."</option>\n";
} }
for ($i=0; $i<=23; $i++) for ($i = 0; $i <= 23; $i++)
{ {
$sel = (in_array(strval($i),$hour)) ? "selected='selected'" : ""; $sel = (in_array(strval($i), $hour)) ? "selected='selected'" : "";
$diz = mktime($i,00,00,1,1,2000); $diz = mktime($i, 00, 00, 1, 1, 2000);
$text .= "<option value='$i' $sel>".$i." - ".date("g A",$diz)."</option>\n"; $text .= "<option value='$i' $sel>".$i." - ".date("g A", $diz)."</option>\n";
} }
$text .= "</select> $text .= "</select>
</td> </td>
@@ -490,9 +476,9 @@ function setCronPwd()
$sel_day = ($day[0] == "*") ? "selected='selected'" : ""; $sel_day = ($day[0] == "*") ? "selected='selected'" : "";
$text .= "<option value='*' {$sel_day}>".LAN_CRON_20."</option>\n"; // Every Day $text .= "<option value='*' {$sel_day}>".LAN_CRON_20."</option>\n"; // Every Day
for ($i=1; $i<=31; $i++) for ($i = 1; $i <= 31; $i++)
{ {
$sel = (in_array($i,$day)) ? "selected='selected'" : ""; $sel = (in_array($i, $day)) ? "selected='selected'" : "";
$text .= "<option value='$i' $sel>".$i."</option>\n"; $text .= "<option value='$i' $sel>".$i."</option>\n";
} }
$text .= "</select> $text .= "</select>
@@ -503,11 +489,11 @@ function setCronPwd()
$sel_month = ($month[0] == "*") ? "selected='selected'" : ""; $sel_month = ($month[0] == "*") ? "selected='selected'" : "";
$text .= "<option value='*' $sel_month>".LAN_CRON_21."</option>\n"; // Every Month $text .= "<option value='*' $sel_month>".LAN_CRON_21."</option>\n"; // Every Month
for ($i=1; $i<=12; $i++) for ($i = 1; $i <= 12; $i++)
{ {
$sel = (in_array($i,$month)) ? "selected='selected'" : ""; $sel = (in_array($i, $month)) ? "selected='selected'" : "";
$diz = mktime(00,00,00,$i,1,2000); $diz = mktime(00, 00, 00, $i, 1, 2000);
$text .= "<option value='$i' $sel>".strftime("%B",$diz)."</option>\n"; $text .= "<option value='$i' $sel>".strftime("%B", $diz)."</option>\n";
} }
$text .= "</select> $text .= "</select>
</td> </td>
@@ -516,11 +502,11 @@ function setCronPwd()
$sel_weekday = ($weekday[0] == "*") ? "selected='selected'" : ""; $sel_weekday = ($weekday[0] == "*") ? "selected='selected'" : "";
$text .= "<option value='*' $sel_weekday>".LAN_CRON_22."</option>\n"; // Every Week Day. $text .= "<option value='*' $sel_weekday>".LAN_CRON_22."</option>\n"; // Every Week Day.
$days = array(LAN_SUN,LAN_MON,LAN_TUE,LAN_WED,LAN_THU,LAN_FRI,LAN_SAT); $days = array(LAN_SUN, LAN_MON, LAN_TUE, LAN_WED, LAN_THU, LAN_FRI, LAN_SAT);
for ($i=0; $i<=6; $i++) for ($i = 0; $i <= 6; $i++)
{ {
$sel = (in_array(strval($i),$weekday)) ? "selected='selected'" : ""; $sel = (in_array(strval($i), $weekday)) ? "selected='selected'" : "";
$text .= "<option value='$i' $sel>".$days[$i]."</option>\n"; $text .= "<option value='$i' $sel>".$days[$i]."</option>\n";
} }
$text .= "</select> $text .= "</select>
@@ -532,62 +518,61 @@ function setCronPwd()
<td class='center'>".$frm->admin_button('execute['.$c.']', 'Run Now')."</td> <td class='center'>".$frm->admin_button('execute['.$c.']', 'Run Now')."</td>
</tr>"; </tr>";
}
} }
} }
}
$text .= " $text .= "
<tr > <tr >
<td colspan='9' class='center'> <td colspan='9' class='center'>
<div class='center buttons-bar'>"; <div class='center buttons-bar'>";
// $text .= "<input class='button' type='submit' name='submit' value='".LAN_SAVE."' />"; // $text .= "<input class='button' type='submit' name='submit' value='".LAN_SAVE."' />";
$text .= $frm->admin_button('submit', LAN_SAVE, $action = 'update'); $text .= $frm->admin_button('submit', LAN_SAVE, $action = 'update');
$text .= $frm->checkbox_switch('generate_pwd',1,'','Generate new cron command'); $text .= $frm->checkbox_switch('generate_pwd', 1, '', 'Generate new cron command');
$text .= "</div></td> $text .= "</div></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</form> </form>
</div>"; </div>";
$ns -> tablerender(PAGE_NAME, $mes->render() . $text); $ns->tablerender(PAGE_NAME, $mes->render().$text);
} }
function cronOptions() function cronOptions()
{ {
$e107 = &e107::getInstance(); $e107 = e107::getInstance();
$var['main']['text'] = PAGE_NAME; $var['main']['text'] = PAGE_NAME;
$var['main']['link'] = e_SELF; $var['main']['link'] = e_SELF;
/* /*
$var['pref']['text'] = LAN_PREFS; $var['pref']['text'] = LAN_PREFS;
$var['pref']['link'] = e_SELF."?pref"; $var['pref']['link'] = e_SELF."?pref";
$var['pref']['perm'] = "N"; $var['pref']['perm'] = "N";
*/ $action = ($this->cronAction) ? $this->cronAction : 'main'; */ $action = ($this->cronAction) ? $this->cronAction : 'main';
e_admin_menu(PAGE_NAME, $action, $var); e_admin_menu(PAGE_NAME, $action, $var);
} }
function cronExecuteMethod($class_name, $method_name, $return = 'boolean')
function cronExecuteMethod($class_name,$method_name,$return='boolean')
{ {
$mes = e107::getMessage(); $mes = e107::getMessage();
if(class_exists($class_name)) if (class_exists($class_name))
{ {
$obj = new $class_name; $obj = new $class_name;
if(method_exists($obj,$method_name)) if (method_exists($obj, $method_name))
{ {
$mes->add("Executing config function <b>".$key." : ".$method_name."()</b>", E_MESSAGE_DEBUG); $mes->add("Executing config function <b>".$class_name." : ".$method_name."()</b>", E_MESSAGE_DEBUG);
if($return == 'boolean') if ($return == 'boolean')
{ {
call_user_func(array($obj,$method_name)); call_user_func(array($obj, $method_name));
return TRUE; return TRUE;
} }
else else
{ {
return call_user_func(array($obj,$method_name)); return call_user_func(array($obj, $method_name));
} }
} }
else else
@@ -605,5 +590,4 @@ function cron_adminmenu()
$cron->cronOptions(); $cron->cronOptions();
} }
?> ?>