function create_program_from_database(&$out, $fieldNumber = 1) { date_default_timezone_set('UTC'); // Read the number of plugs $nb_plugs = get_configuration("NB_PLUGS", $out); // Read plugs configuration $plugsConfig = plugs\getDB(); // Get programs for plugs $sql = "SELECT * FROM programs WHERE plug_id IN (SELECT id FROM plugs WHERE id <= " . $nb_plugs . ") AND number = '" . $fieldNumber . "' ORDER BY time_start ASC;"; $db = db_priv_pdo_start(); try { $sth = $db->prepare($sql); $sth->execute(); $res = $sth->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { $ret = $e->getMessage(); if ($GLOBALS['DEBUG_TRACE']) { $out[] = __('ERROR_SELECT_SQL') . $ret; } else { $out[] = __('ERROR_SELECT_SQL'); } unset($ret); } // Select first element of program $sql = "SELECT * FROM programs WHERE time_start = '000000' AND plug_id IN (SELECT id FROM plugs WHERE id <= " . $nb_plugs . ") AND number = '" . $fieldNumber . "' ORDER BY time_start ASC;"; try { $sth = $db->prepare($sql); $sth->execute(); $first = $sth->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { $ret = $e->getMessage(); if ($GLOBALS['DEBUG_TRACE']) { $out[] = __('ERROR_SELECT_SQL') . $ret; } else { $out[] = __('ERROR_SELECT_SQL'); } unset($ret); } // Select last element of program $sql = "SELECT * FROM programs WHERE time_stop = '235959' AND plug_id IN (SELECT id FROM plugs WHERE id <= " . $nb_plugs . ") AND number = '" . $fieldNumber . "' ORDER by time_start ASC;"; try { $sth = $db->prepare($sql); $sth->execute(); $last = $sth->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { $ret = $e->getMessage(); if ($GLOBALS['DEBUG_TRACE']) { $out[] = __('ERROR_SELECT_SQL') . $ret; } else { $out[] = __('ERROR_SELECT_SQL'); } unset($ret); } $j = 1; $data = array(); $data[0] = ""; date_default_timezone_set('UTC'); if (count($first) > 0) { while ($j <= $GLOBALS['NB_MAX_PLUG']) { if ($j > $nb_plugs) { $result = "000"; } else { $result = find_value_for_plug($first, "000000", $j, $plugsConfig[$j - 1]["PLUG_TYPE"]); } $data[0] = $data[0] . "{$result}"; $j = $j + 1; } $data[0] = "00000" . $data[0]; } else { $data[0] = "00000000000000000000000000000000000000000000000000000"; } $event = array(); foreach ($res as $result) { if ($result['time_start'] != "000000") { $event[] = $result['time_start']; } if ($result['time_stop'] != "235959") { $event[] = $result['time_stop']; } } if (count($event) > 0) { $event = array_unique($event); sort($event); } $evt = array(); $i = 0; $count = 0; if (count($event) > 0) { while ($count < count($event)) { if (isset($event[$i])) { $evt[] = $event[$i]; $count = $count + 1; } $i = $i + 1; } $event = $evt; } $plg = array(); for ($i = 1; $i <= $nb_plugs; $i++) { $sql = "SELECT * FROM programs WHERE plug_id = " . $i . " AND number = '" . $fieldNumber . "' ORDER BY time_start ASC;"; try { $sth = $db->prepare($sql); $sth->execute(); $plg[$i] = $sth->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { $plg[$i] = $e->getMessage(); if ($GLOBALS['DEBUG_TRACE']) { $out[] = __('ERROR_SELECT_SQL') . $ret; } else { $out[] = __('ERROR_SELECT_SQL'); } unset($ret); } } if (count($event) > 0) { for ($i = 0; $i < count($event); $i++) { $data[$i + 1] = ""; $j = 1; while ($j <= $GLOBALS['NB_MAX_PLUG']) { if ($j > $nb_plugs) { $result = "000"; } else { $result = find_value_for_plug($plg[$j], $event[$i], $j, $plugsConfig[$j - 1]["PLUG_TYPE"]); } $data[$i + 1] = $data[$i + 1] . "{$result}"; $j = $j + 1; } $ehh = substr($event[$i], 0, 2); $emm = substr($event[$i], 2, 2); $ess = substr($event[$i], 4, 2); $time_event = mktime($ehh, $emm, $ess, 1, 1, 1970); while (strlen($time_event) != 5) { $time_event = "0{$time_event}"; } $data[$i + 1] = $time_event . $data[$i + 1]; } } $count = count($data); $j = 1; if (count($last) > 0) { while ($j <= $GLOBALS['NB_MAX_PLUG']) { if ($j > $nb_plugs) { $result = "000"; } else { $result = find_value_for_plug($last, "235959", $j, $plugsConfig[$j - 1]["PLUG_TYPE"]); } if (isset($data[$count])) { $data[$count] = $data[$count] . "{$result}"; } else { $data[$count] = "{$result}"; } $j = $j + 1; } $data[$count] = "86399" . $data[$count]; } else { $data[$count] = "86399000000000000000000000000000000000000000000000000"; } return $data; }
require_once '../../libs/db_get_common.php'; require_once '../../libs/db_set_common.php'; if (!isset($selected_plug)) { $selected_plug = getvar('selected_plug'); } if (empty($selected_plug) || !isset($selected_plug)) { $selected_plug = 1; } $chinfo = true; $chtime = ""; $pop_up_message = ""; $pop_up_error_message = ""; $resume = array(); $index_info = array(); programs\get_program_index_info($index_info); $plugsInfo = plugs\getDB($selected_plug); $plugInfo = $plugsInfo[0]; $cyclic = getvar("cyclic"); $apply = getvar('apply'); $action_prog = getvar('action_prog'); $reset_old_program = getvar("reset_old_program"); $value_program = getvar('value_program'); $regul_program = getvar("regul_program"); $start_time = getvar("start_time"); $end_time = getvar("end_time"); $start = ""; $end = ""; $rep = ""; $resume_regul = array(); $type = "0"; $tmp_prog = "";
function getPlugInformation($id) { // Search informations about the plug $synoInfo = getSynopticDBElemByID($id); // Read plugs informations $plugParam = \plugs\getDB(); // Search plugIndex associated $ret_Array = $plugParam[$synoInfo["indexElem"] - 1]; return $ret_Array; }