function SearchTask() { $boot = new boostrap_form(); $sock = new sockets(); $q = new mysql_squid_builder(); $tpl = new templates(); $CheckRunningTasks = base64_decode(unserialize($sock->getFrameWork("squid.php?CheckRunningTasks=yes"))); $table = "webfilters_schedules"; $searchstring = string_to_flexquery("SearchTask"); $sql = "SELECT * FROM {$table} WHERE TaskType={$_GET["TaskID"]} {$searchstring}"; $results = $q->QUERY_SQL($sql); $q2 = new mysql(); $MyPage = CurrentPageName(); $schedules = new system_tasks(); while ($ligne = mysql_fetch_assoc($results)) { $sincerun = null; $tools = array(); $delete = imgtootltip("delete-24.png", "{delete} {$ligne['ID']}", "SquidTaskDelete('{$ligne['ID']}')"); $disabled = null; if (isset($CheckRunningTasks[$ligne['ID']])) { $run_icon = "preloader.gif"; } //print_r($ligne); $TimeText = $tpl->_ENGINE_parse_body($schedules->PatternToHuman($ligne["TimeText"])); $TimeText = str_replace("<br>", "", $TimeText); if (intval($ligne["enabled"]) == 0) { $disabled = $tpl->_ENGINE_parse_body("<span class='label label-info'>{disabled}</span> "); } if (isset($CheckRunningTasks[$ligne['ID']])) { $sincerun = "<br><i>{$CheckRunningTasks[$ligne['ID']]}</i>"; } $tablename = "TaskSq{$ligne['ID']}"; if ($q2->TABLE_EXISTS($tablename, "artica_events")) { $evs = $q2->COUNT_ROWS($tablename, "artica_events"); if ($evs > 0) { $tools[] = "<i class='icon-info-sign'></i> {$evs} {events}"; } } $js = $boot->trswitch("Loadjs('miniadm.ajax.proxy.schedule.php?ID={$ligne['ID']}');"); $ligne["TimeDescription"] = utf8_encode($ligne["TimeDescription"]); $delete = "<td {$js} width=1% style='text-align:center'>{$delete}</td>"; $delete = null; $tr[] = "\n\t\t<tr class='{$class}'>\n\t\t<td {$js} width=1%>{$ligne['ID']}</td>\n\t\t<td {$js} >{$disabled}<strong style='font-size:16px;font-weight:bold'>{$ligne["TimeDescription"]}</strong>{$sincerun}<div>{$TimeText}</div><div style='font-size:11px'>" . $tpl->_ENGINE_parse_body(@implode(" | ", $tools)) . "</div></td>\n\t\t\n\t\t</tr>\n\t\t"; } $tpl = new templates(); echo $tpl->_ENGINE_parse_body("<table class='table table-bordered table-hover'>\n\t\n\t\t\t<thead>\n\t\t\t\t<tr>\n\t\t\t\t\t<th width=1%>{ID}</th>\n\t\t\t\t\t<th width=98%>{task}</th>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t <tbody>\n\t\t\t") . @implode("\n", $tr) . " </tbody>\n\t\t\n\t\t\t</table>\n"; }
function search() { $tpl = new templates(); $MyPage = CurrentPageName(); $q = new mysql_meta(); $search = '%'; $table = "(SELECT * FROM system_schedules WHERE `uuid`='{$_GET["uuid"]}') as t"; $page = 1; $ORDER = "ORDER BY ID DESC"; $sock = new sockets(); $DisableSquidDefaultSchedule = $sock->GET_INFO("DisableSquidDefaultSchedule"); if (!is_numeric($DisableSquidDefaultSchedule)) { $DisableSquidDefaultSchedule = 0; } $schedules = new system_tasks(); $ForceTaskType = $_GET["ForceTaskType"]; if (!is_numeric($ForceTaskType)) { $ForceTaskType = 0; } $total = 0; $FORCE = 1; if ($ForceTaskType > 0) { $FORCE = "TaskType={$ForceTaskType}"; } if (isset($_POST["sortname"])) { if ($_POST["sortname"] != null) { $ORDER = "ORDER BY {$_POST["sortname"]} {$_POST["sortorder"]}"; } } if (isset($_POST['page'])) { $page = $_POST['page']; } $searchstring = string_to_flexquery(); $sql = "SELECT COUNT(*) as TCOUNT FROM {$table} WHERE {$FORCE} {$searchstring}"; $ligne = mysql_fetch_array($q->QUERY_SQL($sql)); $total = $ligne["TCOUNT"]; if (isset($_POST['rp'])) { $rp = $_POST['rp']; } $pageStart = ($page - 1) * $rp; if (is_numeric($rp)) { $limitSql = "LIMIT {$pageStart}, {$rp}"; } $sql = "SELECT * FROM {$table} WHERE {$FORCE} {$searchstring} {$ORDER} {$limitSql}"; writelogs($sql, __FUNCTION__, __FILE__, __LINE__); $results = $q->QUERY_SQL($sql); $data = array(); $data['page'] = $page; $data['total'] = $total; $data['rows'] = array(); if (!$q->ok) { json_error_show("no schedule"); } $q2 = new mysql(); if (mysql_num_rows($results) == 0) { json_error_show("no schedule", 1); } while ($ligne = mysql_fetch_assoc($results)) { $color = "black"; $events = " "; $md5 = md5("SquidTask{$ligne['ID']}"); $TaskType = $ligne["TaskType"]; $jstaskexplain = $tpl->javascript_parse_text($schedules->tasks_array[$ligne["TaskType"]]); $ligne["TaskType"] = $tpl->_ENGINE_parse_body($schedules->tasks_array[$ligne["TaskType"]]); $TimeDescription = $ligne["TimeDescription"]; $enable = Field_checkbox($md5, 1, $ligne["enabled"], "SystemTaskEnable('{$md5}',{$ligne['ID']})"); $delete = imgtootltip("delete-24.png", "{delete} {$ligne['ID']}", "SquidTaskDelete('{$ligne['ID']}')"); $run = $tpl->_ENGINE_parse_body(imgtootltip("24-run.png", "{run} {$ligne['ID']}", "SystemTaskRun('{$ligne['ID']}','{$jstaskexplain}')")); if ($ligne["enabled"] == 0) { $color = "#A0A0A0"; } $tablename = "Taskev{$ligne['ID']}"; if (!$q->TABLE_EXISTS($tablename, "artica_events")) { $events = imgsimple("delete_disabled.png"); } else { $evs = $q2->COUNT_ROWS($tablename, "artica_events"); if ($evs > 0) { $events = imgsimple("events-24.png", "{events} {$ligne['ID']}", "Loadjs('squid.update.events.php?taskid={$ligne['ID']}&table={$tablename}')"); } } $explainTXT = $tpl->_ENGINE_parse_body($schedules->tasks_explain_array[$TaskType]); $TimeText = $tpl->_ENGINE_parse_body($schedules->PatternToHuman($ligne["TimeText"])); $TimeText = str_replace("<br>", "", $TimeText); if (preg_match("#(.+?)\\s+(.+?)\\s+(.+?)\\s+(.+?)\\s+(.+?)#", $TimeDescription, $re)) { $TimeDescription = $TimeText; $TimeText = null; } $span = "<a href=\"javascript:blur();\" OnClick=\"javascript:Loadjs('{$MyPage}?AddNewSchedule-js=yes&ID={$ligne['ID']}');\"\n\t\t style='font-size:16px;font-weight:bold;color:{$color};text-decoration:underline'>"; $ligne["TimeDescription"] = utf8_encode($ligne["TimeDescription"]); $ligne["TaskType"] = utf8_encode($ligne["TaskType"]); //rowSquidTask $data['rows'][] = array('id' => "SquidTask" . $ligne['ID'], 'cell' => array("{$span}{$ligne['ID']}</a>", "{$span}{$ligne["TaskType"]}</a>", "{$span}{$TimeDescription}</a>\n\t\t<div style='font-size:11px'><i>{$explainTXT}</i></div>", "<div style='margin-top:5px'>{$enable}</div>", $delete)); } echo json_encode($data); }
function schedules(){ include_once(dirname(__FILE__)."/ressources/class.tasks.inc"); $page=CurrentPageName(); $tpl=new templates(); $task=new system_tasks(); $q=new mysql_squid_builder(); $sql="SELECT * FROM webfilters_schedules WHERE TaskType='47'"; $results = $q->QUERY_SQL($sql,"artica_backup"); if(!$q->ok){echo "<H2>$q->mysql_error</H2>";return;} while ($ligne = mysql_fetch_assoc($results)) { $TimeDescription=$ligne["TimeDescription"]; $TimeText=$task->PatternToHuman($ligne["TimeText"],true); if(preg_match("#(.+?)\s+(.+?)\s+(.+?)\s+(.+?)\s+(.+?)#", $TimeDescription,$re)){$TimeDescription=$TimeText;$TimeText=null;} $ID=$ligne["ID"]; $tr[]=" <tr> <td width=1%><img src=\"img/arrow-right-24.png\"></td> <td width=99% nowrap> <a href=\"javascript:blur();\" OnClick=\"javascript:Loadjs('squid.databases.schedules.php?AddNewSchedule-js=yes&ID=$ID&YahooWin=3');\" style=\"font-size:16px;text-decoration:underline\">$TimeDescription</a> <div style='font-size:10px'><i>$TimeText</div></div> </td> <td width=1%>".imgtootltip("32-run.png","{run}","Loadjs('squid.databases.schedules.php?schedule-run-js=yes&ID=$ID');")."</td> </tr> "; } $html=$html." <div style=\"font-size:18px;margin-top:10px\">{schedules}:</div> <div class=\"form\" style=\"width:99%\" > <table style=\"width:99%\" >".@implode("\n", $tr)."</table> </div>"; echo $tpl->_ENGINE_parse_body($html); }
function build_schedules() { $unix = new unix(); $sock = new sockets(); $q = new mysql(); $pidfile = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".pid"; $pidTime = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".time"; $pid = $unix->get_pid_from_file($pidfile); if ($unix->process_exists($pid, basename(__FILE__))) { writelogs("Already executed pid {$pid}", __FILE__, __FUNCTION__, __LINE__); return; } @file_put_contents($pidfile, getmypid()); $pidTimeINT = $unix->file_time_min($pidTime); if (!$GLOBALS["VERBOSE"]) { if ($pidTimeINT < 1) { writelogs("To short time to execute the process {$pidTime} = {$pidTimeINT}Mn < 1", __FILE__, __FUNCTION__, __LINE__); return; } } @file_put_contents($pidTime, time()); if (!$q->TABLE_EXISTS("system_schedules", "artica_backup")) { $task->CheckDefaultSchedules(); } $task = new system_tasks(); $task->CheckDefaultSchedules(); $squidbin = $unix->LOCATE_SQUID_BIN(); if (file_exists($squidbin)) { $q = new mysql_squid_builder(); $q->CheckDefaultSchedules(); } if ($q->COUNT_ROWS("system_schedules", "artica_backup") == 0) { echo "Starting......: " . date("H:i:s") . " artica-postfix watchdog (fcron) system_schedules is empty !!\n"; die; } $sql = "SELECT * FROM system_schedules WHERE enabled=1"; $results = $q->QUERY_SQL($sql, "artica_backup"); if (!$q->ok) { echo "Starting......: " . date("H:i:s") . " artica-postfix watchdog (fcron) {$q->mysql_error} on line " . __LINE__ . "\n"; return; } $php5 = $unix->LOCATE_PHP5_BIN(); $WorkingDirectory = dirname(__FILE__); $chmod = $unix->find_program("chmod"); $settings = unserialize(base64_decode($sock->GET_INFO("FcronSchedulesParams"))); if (!isset($settings["max_nice"])) { $settings["max_nice"] = null; } if (!isset($settings["max_load_wait"])) { $settings["max_load_wait"] = null; } if (!isset($settings["max_load_avg5"])) { $settings["max_load_avg5"] = null; } if (!is_numeric($settings["max_load_avg5"])) { $settings["max_load_avg5"] = "2.5"; } if (!is_numeric($settings["max_load_wait"])) { $settings["max_load_wait"] = "10"; } if (!is_numeric($settings["max_nice"])) { $settings["max_nice"] = "19"; } $max_load_wait = $settings["max_load_wait"]; @unlink("/etc/cron.d/artica-cron"); foreach (glob("/etc/cron.d/*") as $filename) { $file = basename($filename); if (preg_match("#syssch-[0-9]+#", $filename)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " artica-postfix watchdog (fcron) remove {$filename}\n"; } @unlink($filename); } } @unlink("/etc/artica-postfix/TASKS_CACHE.DB"); @unlink("/etc/artica-postfix/system.schedules"); $TRASNCODE["0 * * * *"] = "1h"; $TRASNCODE["0 4,8,12,16,20 * * *"] = "4h"; $TRASNCODE["0 0,4,8,12,16,20 * * *"] = "4h"; $TRASNCODE["0 3,5,7,9,11,13,15,17,19,23 * * *"] = "3h"; $TRASNCODE["0 0,3,5,7,9,11,13,15,17,19,23 * * *"] = "3h"; $TRASNCODE["0 2,4,6,8,10,12,14,16,18,20,22 * * *"] = "2h"; $TRASNCODE["0 0,2,4,6,8,10,12,14,16,18,20,22 * * *"] = "2h"; $TRASNCODE["20,40,59 * * * *"] = "20"; $TRASNCODE["0,20,40 * * * *"] = "20"; $TRASNCODE["0,10,20,30,40,50 * * * *"] = "10"; $nice = $unix->EXEC_NICE(); build_system_defaults(); $me = __FILE__; while ($ligne = mysql_fetch_assoc($results)) { $TaskType = $ligne["TaskType"]; $TimeText = $ligne["TimeText"]; if ($TaskType == 0) { continue; } if ($ligne["TimeText"] == null) { continue; } $md5 = md5("{$TimeText}{$TaskType}"); if (isset($alreadydone[$md5])) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " artica-postfix watchdog task {$ligne["ID"]} already set\n"; } continue; } $alreadydone[$md5] = true; if (!isset($task->tasks_processes[$TaskType])) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " artica-postfix watchdog (fcron) Unable to stat task process of `{$TaskType}`\n"; } continue; } if (isset($task->task_disabled[$TaskType])) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " artica-postfix`{$TaskType}` disabled\n"; } continue; } $script = $task->tasks_processes[$TaskType]; $f = array(); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " scheduling {$script} /etc/cron.d/syssch-{$ligne["ID"]}\n"; } $cmdline = trim("{$nice} {$php5} {$me} --run {$ligne["ID"]}"); $f[] = "MAILTO=\"\""; $f[] = "{$ligne["TimeText"]} root {$cmdline} >/dev/null 2>&1"; $f[] = ""; @file_put_contents("/etc/cron.d/syssch-{$ligne["ID"]}", @implode("\n", $f)); } shell_exec("/etc/init.d/cron reload"); }
function settings() { $schedules = new system_tasks(); $q = new mysql_squid_builder(); $tpl = new templates(); $buttontext = "{apply}"; $ID = $_GET["ID"]; $ligne = mysql_fetch_array($q->QUERY_SQL("SELECT * FROM webfilters_schedules WHERE ID={$ID}")); $ligne["TimeDescription"] = utf8_encode($ligne["TimeDescription"]); $TimeText = $tpl->_ENGINE_parse_body($schedules->PatternToHuman($ligne["TimeText"])); $TimeText = str_replace("<br>", "", $TimeText); $explain = $tpl->_ENGINE_parse_body($q->tasks_explain_array[$ligne["TaskType"]]); $boot = new boostrap_form(); $boot->set_hidden("ID", $ID); $boot->set_checkbox("enabled", "{enabled}", $ligne["enabled"]); $boot->set_field("TimeDescription", "{description}", $ligne["TimeDescription"], array("ENCODE" => TRUE)); $boot->set_button("{apply}"); $boot->set_formtitle("{task} {$ligne["ID"]}"); $runtask = $tpl->_ENGINE_parse_body("<div style='text-align:right'><i class='icon-play'></i> <a href=\"javascript:Blurz();\" OnClick=\"javascript:Loadjs('miniadm.ajax.squid.schedules.php?schedule-run-js=yes&ID={$ID}');\">{run} {task}</div>"); $boot->set_formdescription("{$explain}<br>{$TimeText}{$runtask}"); $boot->set_RefreshSearchs(); echo $boot->Compile(); }
function tasks_search() { $boot = new boostrap_form(); $tpl = new templates(); $q = new mysql(); $t = time(); if (isset($_GET["t"])) { $t = $_GET["t"]; } $page = CurrentPageName(); $table = "system_schedules"; $searchstring = string_to_flexquery("search-tasks"); $ORDER = $boot->TableOrder(array("ID" => "DESC")); if ($q->COUNT_ROWS($table, "artica_backup") == 0) { senderrors("{no_task}"); } if ($_GET["task-section"] > 0) { $table = "( SELECT * FROM {$table} WHERE `TaskType`={$_GET["task-section"]} ) as T"; } $sql = "SELECT * FROM {$table} WHERE 1 {$searchstring} ORDER BY {$ORDER} LIMIT 0,250"; $results = $q->QUERY_SQL($sql, "artica_backup"); if (!$q->ok) { senderrors($q->mysql_error . "<br>{$sql}"); } $schedules = new system_tasks(); while ($ligne = mysql_fetch_assoc($results)) { $color = "black"; $events = " "; $md = md5(serialize($ligne)); $TaskType = $ligne["TaskType"]; $jstaskexplain = $tpl->javascript_parse_text($schedules->tasks_array[$ligne["TaskType"]]); $ligne["TaskType"] = $tpl->_ENGINE_parse_body($schedules->tasks_array[$ligne["TaskType"]]); $TimeDescription = $ligne["TimeDescription"]; $delete = imgtootltip("delete-32.png", "{delete} {$ligne['ID']}", "Delete{$t}('{$ligne['ID']}','{$md}')"); $run = $tpl->_ENGINE_parse_body(imgtootltip("24-run.png", "{run} {$ligne['ID']}", "SystemTaskRun('{$ligne['ID']}','{$jstaskexplain}')")); if ($ligne["enabled"] == 0) { $color = "#A0A0A0"; } $tablename = "Taskev{$ligne['ID']}"; if (!$q->TABLE_EXISTS($tablename, "artica_events")) { $events = null; } else { $evs = $q->COUNT_ROWS($tablename, "artica_events"); if ($evs > 0) { $events = imgsimple("events-32.png"); } } $explainTXT = $tpl->_ENGINE_parse_body($schedules->tasks_explain_array[$TaskType]); $TimeText = $tpl->_ENGINE_parse_body($schedules->PatternToHuman($ligne["TimeText"])); $TimeText = str_replace("<br>", "", $TimeText); if (preg_match("#(.+?)\\s+(.+?)\\s+(.+?)\\s+(.+?)\\s+(.+?)#", $TimeDescription, $re)) { $TimeDescription = $TimeText; $TimeText = null; } $js = "Loadjs('{$page}?schedule-js=yes&ID={$ligne['ID']}')"; $link = $boot->trswitch($js); $ligne["TimeDescription"] = utf8_encode($ligne["TimeDescription"]); $ligne["TaskType"] = utf8_encode($ligne["TaskType"]); $tr[] = "\n\t\t<tr id='{$md}'>\n\t\t<td style='font-size:16px' width=1% nowrap {$link}>{$ligne['ID']}</td>\n\t\t<td style='font-size:16px' width=25% nowrap {$link}>{$ligne["TaskType"]}</td>\n\t\t<td style='font-size:16px' width=70% {$link}>{$TimeDescription}<br>{$explainTXT}</td>\n\t\t<td style='font-size:16px' width=1% nowrap >{$run}</td>\n\t\t<td style='font-size:16px' width=1% nowrap {$link}>{$events}</td>\n\t\t<td style='font-size:12px' width=1%>{$delete}</td>\n\t\t</tr>\n\t\t"; } $run_this_task_now = $tpl->javascript_parse_text("{run_this_task_now}"); $delete_text = $tpl->javascript_parse_text("{delete_this_task}"); echo $boot->TableCompile(array("ID" => "ID", "TaskType" => "{type}", "TimeText" => "{explain}", "run:no" => "{run}", "event:no" => "{events}", "delete:no" => null), $tr) . "\n<script>\nvar mem{$t}='';\nvar xDelete{$t}=function(obj){\n\tvar tempvalue=obj.responseText;\n\tif(tempvalue.length>3){alert(tempvalue);return;}\n\t\$('#'+mem{$t}).remove();\n}\nfunction Delete{$t}(ID,mem){\n\tmem{$t}=mem;\n\tif(confirm('{$delete_text} ID: '+ID+'?')){\n\t\tmem{$t}=mem;\n\t\tvar XHR = new XHRConnection();\n\t\tXHR.appendData('task-delete',ID);\n\t\tXHR.sendAndLoad('{$page}', 'POST',xDelete{$t});\n\t}\n}\nvar xSystemTaskEnable{$t}=function (obj) {\n\tvar results=obj.responseText;\n\tif(results.length>0){alert(results);}\n\tExecuteByClassName('SearchFunction');\t\t\n}\n\nfunction SystemTaskRun{$t}(ID){\n\tif(confirm('{$run_this_task_now} :`'+ID+'`')){\n\t\tvar XHR = new XHRConnection();\n\t\tXHR.appendData('task-run',ID);\n\t\tXHR.sendAndLoad('{$page}', 'POST',xSystemTaskEnable{$t});\t\t\n\t}\n}\n\t\t\t\n</script>\n\t\t\t\n"; }
function frewebslist() { $tpl = new templates(); $page = CurrentPageName(); $q = new mysql(); $sql = "SELECT * FROM freeweb WHERE groupware='UPDATEUTILITY'"; $results = $q->QUERY_SQL($sql, "artica_backup"); while ($ligne = mysql_fetch_assoc($results)) { $servername = $ligne["servername"]; $tr[] = "\n\t\t<tr>\n\t\t\t<td width=1%><img src=\"img/arrow-right-24.png\"></td>\n\t\t\t<td width=99%>\n\t\t\t\t<a href=\"javascript:blur();\" OnClick=\"javascript:Loadjs('freeweb.edit.php?hostname={$servername}');\" style=\"font-size:16px;text-decoration:underline\">http://{$servername}</a>\n\t\t\t\t</td>\n\t\t</tr>\n\t\t"; } $html = "\n\t\t\t<div style=\"font-size:18px;margin-top:10px\">{web_services}:</div>\n\t\t\t<table style=\"width:99%\" class=\"form\">" . @implode("\n", $tr) . "</table>"; $tr = array(); $task = new system_tasks(); $sql = "SELECT * FROM system_schedules WHERE TaskType='63'"; $results = $q->QUERY_SQL($sql, "artica_backup"); while ($ligne = mysql_fetch_assoc($results)) { $TimeDescription = $ligne["TimeDescription"]; $TimeText = $task->PatternToHuman($ligne["TimeText"]); if (preg_match("#(.+?)\\s+(.+?)\\s+(.+?)\\s+(.+?)\\s+(.+?)#", $TimeDescription, $re)) { $TimeDescription = $TimeText; $TimeText = null; } $ID = $ligne["ID"]; $tr[] = "\n\t\t<tr>\n\t\t<td width=1%><img src=\"img/arrow-right-24.png\"></td>\n\t\t<td width=99%>\n\t\t<a href=\"javascript:blur();\" OnClick=\"javascript:Loadjs('schedules.php?AddNewSchedule-js=yes&ID={$ID}&YahooWin=3');\" style=\"font-size:16px;text-decoration:underline\">{$TimeDescription}</a>\n\t\t<div style='font-size:10px'><i>{$TimeText}</div></div>\n\t\t</td>\n\t\t</tr>\n\t\t"; } $html = $html . "\n\t\t<div style=\"font-size:18px;margin-top:10px\">{schedules}:</div>\n\t\t\t<table style=\"width:99%\" class=\"form\">" . @implode("\n", $tr) . "</table>"; echo $tpl->_ENGINE_parse_body($html); }