finally removed super-old syscp-update-procedures, we now require the last available syscp for upgrading; migrate some functions to PDO database class, refs #1287

Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
This commit is contained in:
Michael Kaufmann (d00p)
2013-11-03 10:54:43 +01:00
parent c9d91d178b
commit e549ab2cbb
21 changed files with 223 additions and 3049 deletions

View File

@@ -22,50 +22,49 @@
*
* @return array array of cron-files which are to be executed
*/
function getNextCronjobs()
{
global $db, $theme;
function getNextCronjobs() {
$query = "SELECT `id`, `cronfile` FROM `".TABLE_PANEL_CRONRUNS."` WHERE `interval` <> '0' AND `isactive` = '1' AND (";
$intervals = getIntervalOptions();
$x = 0;
foreach($intervals as $name => $ival)
{
foreach($intervals as $name => $ival) {
if($name == '0') continue;
if($x == 0) {
$query.= '(UNIX_TIMESTAMP(DATE_ADD(FROM_UNIXTIME(`lastrun`), INTERVAL '.$ival.')) <= UNIX_TIMESTAMP() AND `interval`=\''.$ival.'\')';
$query.= "(UNIX_TIMESTAMP(DATE_ADD(FROM_UNIXTIME(`lastrun`), INTERVAL ".$ival.")) <= UNIX_TIMESTAMP() AND `interval` = '".$ival."')";
} else {
$query.= ' OR (UNIX_TIMESTAMP(DATE_ADD(FROM_UNIXTIME(`lastrun`), INTERVAL '.$ival.')) <= UNIX_TIMESTAMP() AND `interval`=\''.$ival.'\')';
$query.= " OR (UNIX_TIMESTAMP(DATE_ADD(FROM_UNIXTIME(`lastrun`), INTERVAL ".$ival.")) <= UNIX_TIMESTAMP() AND `interval` = '".$ival."')";
}
$x++;
}
$query.= ');';
$result = $db->query($query);
$result = Database::query($query);
$cron_files = array();
while($row = $db->fetch_array($result))
{
// Update lastrun-timestamp
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
$cron_files[] = $row['cronfile'];
$db->query("UPDATE `".TABLE_PANEL_CRONRUNS."` SET `lastrun` = UNIX_TIMESTAMP() WHERE `id` ='".(int)$row['id']."';");
$upd_stmt = Database::prepare("
UPDATE `".TABLE_PANEL_CRONRUNS."` SET `lastrun` = UNIX_TIMESTAMP() WHERE `id` = :id;"
);
Database::pexecute($upd_stmt, array('id' => $row['id']));
}
return $cron_files;
}
function includeCronjobs($debugHandler) {
function includeCronjobs($debugHandler, $pathtophpfiles)
{
global $settings, $theme, $cronlog;
global $cronlog;
$cronjobs = getNextCronjobs();
$jobs_to_run = array();
$cron_path = makeCorrectDir($pathtophpfiles.'/scripts/jobs/');
$cron_path = makeCorrectDir(FROXLOR_INSTALL_DIR.'/scripts/jobs/');
if ($cronjobs !== false
&& is_array($cronjobs)
@@ -85,24 +84,21 @@ function includeCronjobs($debugHandler, $pathtophpfiles)
}
function getIntervalOptions()
{
global $db, $lng, $cronlog, $theme;
function getIntervalOptions() {
global $lng, $cronlog;
$query = "SELECT DISTINCT `interval` FROM `" . TABLE_PANEL_CRONRUNS . "` ORDER BY `interval` ASC;";
$result = $db->query($query);
$cron_intervals = array();
$result = Database::query($query);
$cron_intervals = array();
$cron_intervals['0'] = $lng['panel']['off'];
while($row = $db->fetch_array($result))
{
if(validateSqlInterval($row['interval']))
{
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
if (validateSqlInterval($row['interval'])) {
$cron_intervals[$row['interval']] = $row['interval'];
}
else
{
} else {
$cronlog->logAction(CRON_ACTION, LOG_ERROR, "Invalid SQL-Interval ".$row['interval']." detected. Please fix this in the database.");
}
}
@@ -111,19 +107,18 @@ function getIntervalOptions()
}
function getCronjobsLastRun()
{
global $db, $lng, $theme;
function getCronjobsLastRun() {
global $lng;
$query = "SELECT `lastrun`, `desc_lng_key` FROM `".TABLE_PANEL_CRONRUNS."` WHERE `isactive` = '1' ORDER BY `cronfile` ASC";
$result = $db->query($query);
$result = Database::query($query);
$cronjobs_last_run = '';
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
while($row = $db->fetch_array($result))
{
$lastrun = $lng['cronjobs']['notyetrun'];
if($row['lastrun'] > 0) {
if ($row['lastrun'] > 0) {
$lastrun = date('d.m.Y H:i:s', $row['lastrun']);
}
@@ -136,97 +131,74 @@ function getCronjobsLastRun()
return $cronjobs_last_run;
}
function toggleCronStatus($module = null, $isactive = 0)
{
global $db, $theme;
function toggleCronStatus($module = null, $isactive = 0) {
if($isactive != 1) {
$isactive = 0;
}
$query = "UPDATE `".TABLE_PANEL_CRONRUNS."` SET `isactive` = '".(int)$isactive."' WHERE `module` = '".$module."'";
$db->query($query);
$upd_stmt = Database::prepare("
UPDATE `".TABLE_PANEL_CRONRUNS."` SET `isactive` = :active WHERE `module` = :module"
);
Database::pexecute($upd_stmt, array('active' => $isactive, 'module' => $module));
}
function getOutstandingTasks()
{
global $db, $lng, $theme;
function getOutstandingTasks() {
global $lng;
$query = "SELECT * FROM `".TABLE_PANEL_TASKS."` ORDER BY `type` ASC";
$result = $db->query($query);
$result = Database::query($query);
$value = '<ul class="cronjobtask">';
$tasks = '';
while($row = $db->fetch_array($result))
{
if($row['data'] != '')
{
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
if ($row['data'] != '') {
$row['data'] = unserialize($row['data']);
}
/*
* rebuilding webserver-configuration
*/
if($row['type'] == '1')
{
// rebuilding webserver-configuration
if ($row['type'] == '1') {
$task_desc = $lng['tasks']['rebuild_webserverconfig'];
}
/*
* adding new user
*/
elseif($row['type'] == '2')
{
// adding new user/
elseif ($row['type'] == '2') {
$loginname = '';
if(is_array($row['data']))
{
if (is_array($row['data'])) {
$loginname = $row['data']['loginname'];
}
$task_desc = $lng['tasks']['adding_customer'];
$task_desc = str_replace('%loginname%', $loginname, $task_desc);
}
/*
* rebuilding bind-configuration
*/
elseif($row['type'] == '4')
{
// rebuilding bind-configuration
elseif ($row['type'] == '4') {
$task_desc = $lng['tasks']['rebuild_bindconfig'];
}
/*
* creating ftp-user directory
*/
elseif($row['type'] == '5')
{
// creating ftp-user directory
elseif ($row['type'] == '5') {
$task_desc = $lng['tasks']['creating_ftpdir'];
}
/*
* deleting user-files
*/
elseif($row['type'] == '6')
{
// deleting user-files
elseif ($row['type'] == '6') {
$loginname = '';
if(is_array($row['data']))
{
if (is_array($row['data'])) {
$loginname = $row['data']['loginname'];
}
$task_desc = $lng['tasks']['deleting_customerfiles'];
$task_desc = str_replace('%loginname%', $loginname, $task_desc);
}
elseif($row['type'] == '7')
{
// deleteing email-account
elseif ($row['type'] == '7') {
$task_desc = $lng['tasks']['remove_emailacc_files'];
}
/*
* Set FS - quota
*/
elseif($row['type'] == '10')
{
// Set FS - quota
elseif ($row['type'] == '10') {
$task_desc = $lng['tasks']['diskspace_set_quota'];
}
else
{
$task_desc = "ERROR: Unknown task type '".$row['type'].
"'";
// unknown
else {
$task_desc = "ERROR: Unknown task type '".$row['type']."'";
}
if($task_desc != '') {
@@ -235,50 +207,31 @@ function getOutstandingTasks()
}
$query2 = "SELECT DISTINCT `Task` FROM `".TABLE_APS_TASKS."` ORDER BY `Task` ASC";
$result2 = $db->query($query2);
$result2 = Database::query($query2);
while($row2 = $db->fetch_array($result2))
{
/*
* install
*/
if($row2['Task'] == '1')
{
while ($row2 = $result2->fetch(PDO::FETCH_ASSOC)) {
// install
if ($row2['Task'] == '1') {
$task_desc = $lng['tasks']['aps_task_install'];
}
/*
* remove
*/
elseif($row2['Task'] == '2')
{
// remove
elseif ($row2['Task'] == '2') {
$task_desc = $lng['tasks']['aps_task_remove'];
}
/*
* reconfigure
*/
elseif($row2['Task'] == '3')
{
// reconfigure
elseif ($row2['Task'] == '3') {
$task_desc = $lng['tasks']['aps_task_reconfigure'];
}
/*
* upgrade
*/
elseif($row2['Task'] == '4')
{
// upgrade
elseif ($row2['Task'] == '4') {
$task_desc = $lng['tasks']['aps_task_upgrade'];
}
/*
* system update
*/
elseif($row2['Task'] == '5')
{
// system update
elseif ($row2['Task'] == '5') {
$task_desc = $lng['tasks']['aps_task_sysupdate'];
}
/*
* system download
*/
elseif($row2['Task'] == '6')
{
// system download
elseif ($row2['Task'] == '6') {
$task_desc = $lng['tasks']['aps_task_sysdownload'];
}
@@ -287,7 +240,7 @@ function getOutstandingTasks()
}
}
if(trim($tasks) == '') {
if (trim($tasks) == '') {
$value .= '<li>'.$lng['tasks']['noneoutstanding'].'</li>';
} else {
$value .= $tasks;