/** * Ending measurement * * Ending measurement of time for specified block * * @param string $mpoint monitoring block name */ function EndMeasure($mpoint, $save_to_db = 0) { global $perf_data; if (!$perf_data[$mpoint]['START']) { return; } $perf_data[$mpoint]['END'] = getmicrotime(); if (!$perf_data[$mpoint]['MEMORY_END'] && function_exists('memory_get_usage')) { $perf_data[$mpoint]['MEMORY_END'] = memory_get_usage(); } $perf_data[$mpoint]['TIME'] += $perf_data[$mpoint]['END'] - $perf_data[$mpoint]['START']; $perf_data[$mpoint]['NUM']++; return; if ($save_to_db) { global $db; if ($db->dbh) { $rec = array(); $rec['OPERATION'] = substr($mpoint, 0, 200); $rec['COUNTER'] = 1; $rec['TIMEUSED'] = $perf_data[$mpoint]['TIME']; $rec['ADDED'] = date('Y-m-d H:i:s'); if ($_SERVER['REQUEST_URI']) { $rec['SOURCE'] = 'web'; } else { $rec['SOURCE'] = 'cmd'; } SQLInsert('performance_log', $rec); } } }
function InsertClient($nom, $prenom, $mail, $tel, $dateNaiss, $mdp, $numAdr, $rueAdr, $villeAdr, $codePostal) { // On insère l'utilisateur dans 'user' avec le champ 'fonction' à 0 $sql = "INSERT INTO user(nom,prenom,mail,mdp,telephone,dateNaissance,fonction,numeroADR,rueADR,villeADR,codePostal) VALUES ('{$nom}','{$prenom}','{$mail}', '{$mdp}', '{$tel}','{$dateNaiss}','0','{$numAdr}', '{$rueAdr}', '{$villeAdr}', '{$codePostal}')"; $res = SQLInsert($sql); return $res; }
function updateAccess($cmd_id, $users_id) { SQLSelect("DELETE from tlg_user_cmd where CMD_ID=" . $cmd_id); $users = explode(",", $users_id); foreach ($users as $value) { $recCU = array(); $recCU['CMD_ID'] = $cmd_id; $recCU['USER_ID'] = $value; $recCU['ID'] = SQLInsert('tlg_user_cmd', $recCU); } }
function subscribeToEvent($module_name, $event_name, $filter_details = '') { $rec = SQLSelectOne("SELECT * FROM settings WHERE NAME='HOOK_EVENT_" . DBSafe(strtoupper($event_name)) . "'"); if (!$rec['ID']) { $rec = array(); $rec['NAME'] = 'HOOK_EVENT_' . strtoupper($event_name); $rec['TITLE'] = $rec['NAME']; $rec['TYPE'] = 'json'; $rec['PRIORITY'] = 0; $rec['ID'] = SQLInsert('settings', $rec); } $data = json_decode($rec['VALUE'], true); if (!isset($data[$module_name])) { $data[$module_name] = 1; $rec['VALUE'] = json_encode($data); SQLUpdate('settings', $rec); } }
function getValueIdByName($object_name, $property) { $value = SQLSelectOne("SELECT ID FROM pvalues WHERE PROPERTY_NAME = '" . DBSafe($object_name . '.' . $property) . "'"); if (!$value['ID']) { $object = getObject($object_name); if (is_object($object)) { $property_id = $object->getPropertyByName($property, $object->class_id, $object->id); // $value = SQLSelectOne("SELECT ID FROM pvalues WHERE PROPERTY_ID='" . (int) $property_id . "' AND OBJECT_ID='" . (int) $object->id . "'"); if (!$value['ID'] && $property_id) { $value = array(); $value['PROPERTY_ID'] = $property_id; $value['OBJECT_ID'] = $object->id; $value['PROPERTY_NAME'] = $object_name . '.' . $property; $value['ID'] = SQLInsert('pvalues', $value); } } } return (int) $value['ID']; }
/** * Title * * Description * * @access public */ function addToList($id) { $product = SQLSelectOne("SELECT * FROM products WHERE ID='" . (int) $id . "'"); if ($product['ID']) { SQLExec("DELETE FROM shopping_list_items WHERE PRODUCT_ID='" . (int) $id . "'"); $rec = array(); $rec['PRODUCT_ID'] = $product['ID']; $rec['TITLE'] = $product['TITLE']; $rec['IN_CART'] = 0; SQLInsert('shopping_list_items', $rec); if (defined('DROPBOX_SHOPPING_LIST')) { $data = LoadFile(DROPBOX_SHOPPING_LIST); $data = str_replace("\r", '', $data); $lines = explode("\n", $data); $total = count($lines); $found = 0; for ($i = 0; $i < $total; $i++) { if ($found) { continue; } if (is_integer(strpos($lines[$i], $product['TITLE']))) { $found = 1; } } if (!$found) { if (!$data) { $lines = array(); $lines[] = 'SHOPPING LIST'; $lines[] = ''; } $lines[] = $product['TITLE']; $data = implode("\n", $lines); SaveFile(DROPBOX_SHOPPING_LIST, $data); } } } }
/** * BackEnd * * Module backend * * @access public */ function admin(&$out) { global $ajax; if ($ajax) { global $op; global $item_id; if ($op == 'get_details') { startMeasure('getDetails'); global $labels; global $values; $res = array(); //echo "Debug labels: $labels \nValues: $values\n"; $res['LABELS'] = array(); $labels = explode(',', $labels); $total = count($labels); $seen = array(); for ($i = 0; $i < $total; $i++) { $item_id = trim($labels[$i]); if (!$item_id || $seen[$item_id]) { continue; } $seen[$item_id] = 1; $item = SQLSelectOne("SELECT * FROM commands WHERE ID='" . (int) $item_id . "'"); if ($item['ID']) { if ($item['TYPE'] == 'custom') { $item['DATA'] = processTitle($item['DATA'], $this); $data = $item['DATA']; } else { $item['TITLE'] = processTitle($item['TITLE'], $this); $data = $item['TITLE']; } if ($item['RENDER_DATA'] != $item['DATA'] || $item['RENDER_TITLE'] != $item['TITLE']) { $tmp = SQLSelectOne("SELECT * FROM commands WHERE ID='" . $item['ID'] . "'"); $tmp['RENDER_TITLE'] = $item['TITLE']; $tmp['RENDER_DATA'] = $item['DATA']; $tmp['RENDER_UPDATED'] = date('Y-m-d H:i:s'); SQLUpdate('commands', $tmp); } if (preg_match('/#[\\w\\d]{6}/is', $data, $m)) { $color = $m[0]; $data = trim(str_replace($m[0], '<style>#item' . $item['ID'] . ' .ui-btn-active {background-color:' . $color . ';border-color:' . $color . '}</style>', $data)); } $res['LABELS'][] = array('ID' => $item['ID'], 'DATA' => $data); } } $res['VALUES'] = array(); $values = explode(',', $values); $total = count($values); $seen = array(); for ($i = 0; $i < $total; $i++) { $item_id = trim($values[$i]); if (!$item_id || $seen[$item_id]) { continue; } $seen[$item_id] = 1; $item = SQLSelectOne("SELECT * FROM commands WHERE ID='" . (int) $item_id . "'"); if ($item['ID']) { $data = $item['CUR_VALUE']; $res['VALUES'][] = array('ID' => $item['ID'], 'DATA' => $data); } } $res['LATEST_REQUEST'] = time(); echo json_encode($res); endMeasure('getDetails'); exit; } if ($op == 'get_label') { startMeasure('getLabel'); $item = SQLSelectOne("SELECT * FROM commands WHERE ID='" . (int) $item_id . "'"); startMeasure('getLabel ' . $item['TITLE'], 1); if ($item['ID']) { $res = array(); if ($item['TYPE'] == 'custom') { $item['DATA'] = processTitle($item['DATA'], $this); $res['DATA'] = $item['DATA']; } else { $item['TITLE'] = processTitle($item['TITLE'], $this); $res['DATA'] = $item['TITLE']; } if ($item['RENDER_DATA'] != $item['DATA'] || $item['RENDER_TITLE'] != $item['TITLE']) { $tmp = SQLSelectOne("SELECT * FROM commands WHERE ID='" . $item['ID'] . "'"); $tmp['RENDER_TITLE'] = $item['TITLE']; $tmp['RENDER_DATA'] = $item['DATA']; $tmp['RENDER_UPDATED'] = date('Y-m-d H:i:s'); SQLUpdate('commands', $tmp); } echo json_encode($res); } endMeasure('getLabel ' . $item['TITLE'], 1); endMeasure('getLabel', 1); exit; } if ($op == 'get_value') { startMeasure('getValue'); $item = SQLSelectOne("SELECT * FROM commands WHERE ID='" . (int) $item_id . "'"); if ($item['ID']) { $res = array(); $res['DATA'] = $item['CUR_VALUE']; echo json_encode($res); } endMeasure('getValue', 1); exit; } if ($op == 'value_changed') { global $new_value; $item = SQLSelectOne("SELECT * FROM commands WHERE ID='" . (int) $item_id . "'"); if ($item['ID']) { $old_value = $item['CUR_VALUE']; $item['CUR_VALUE'] = $new_value; SQLUpdate('commands', $item); if ($item['LINKED_PROPERTY'] != '') { //$old_value=gg($item['LINKED_OBJECT'].'.'.$item['LINKED_PROPERTY']); sg($item['LINKED_OBJECT'] . '.' . $item['LINKED_PROPERTY'], $item['CUR_VALUE'], array($this->name => 'ID!=' . $item['ID'])); } $params = array('VALUE' => $item['CUR_VALUE'], 'OLD_VALUE' => $old_value); if ($item['ONCHANGE_METHOD'] != '') { if (!$item['LINKED_OBJECT']) { $item['LINKED_OBJECT'] = $item['ONCHANGE_OBJECT']; } getObject($item['LINKED_OBJECT'])->callMethod($item['ONCHANGE_METHOD'], $params); //ONCHANGE_OBJECT //DebMes("calling method ".$item['ONCHANGE_OBJECT'].".".$item['ONCHANGE_METHOD']." with ".$item['CUR_VALUE']); } if ($item['SCRIPT_ID']) { //DebMes('Running on_change script #'.$item['SCRIPT_ID']); runScript($item['SCRIPT_ID'], $params); } if ($item['CODE']) { //DebMes("Running on_change code"); try { $code = $item['CODE']; $success = eval($code); if ($success === false) { DebMes("Error menu item code: " . $code); registerError('menu_item', "Error menu item code: " . $code); } } catch (Exception $e) { DebMes('Error: exception ' . get_class($e) . ', ' . $e->getMessage() . '.'); registerError('menu_item', get_class($e) . ', ' . $e->getMessage()); } } } echo "OK"; } exit; } if (isset($this->data_source) && !$_GET['data_source'] && !$_POST['data_source']) { $out['SET_DATASOURCE'] = 1; } if ($this->data_source == 'commands' || $this->data_source == '') { if ($this->view_mode == '' || $this->view_mode == 'search_commands') { startMeasure('searchCommands'); $this->search_commands($out); endMeasure('searchCommands', 1); } if ($this->view_mode == 'moveup' && $this->id) { $this->reorder_items($this->id, 'up'); $this->redirect("?"); } if ($this->view_mode == 'movedown' && $this->id) { $this->reorder_items($this->id, 'down'); $this->redirect("?"); } if ($this->view_mode == 'edit_commands') { $this->edit_commands($out, $this->id); } if ($this->view_mode == 'clone_commands') { $rec = SQLSelectOne("SELECT * FROM commands WHERE ID='" . $this->id . "'"); unset($rec['ID']); $rec['TITLE'] = $rec['TITLE'] . ' (copy)'; $rec['ID'] = SQLInsert('commands', $rec); $this->redirect("?id=" . $rec['ID'] . "&view_mode=edit_commands"); } if ($this->view_mode == 'delete_commands') { $this->delete_commands($this->id); $this->redirect("?"); } } }
/** * FrontEnd * * Module frontend * * @access public */ function usual(&$out) { global $session; if ($this->action == 'addevent') { global $mode; $this->mode = $mode; if ($this->mode == 'update') { global $type; global $window; global $details; global $terminal_to; global $user_to; $event = array(); $event['EVENT_TYPE'] = $type; $event['WINDOW'] = $window; $event['DETAILS'] = $details; $event['TERMINAL_TO'] = $terminal_to; $event['TERMINAL_FROM'] = $session->data['TERMINAL']; $event['USER_TO'] = $user_to; $event['USER_FROM'] = $session->data['USERNAME']; $event['ADDED'] = date('Y-m-d H:i:s'); $event['EXPIRE'] = date('Y-m-d H:i:s', time() + 5 * 60); //5 minutes expire SQLInsert('events', $event); } $terminals = SQLSelect("SELECT * FROM terminals ORDER BY TITLE"); $total = count($terminals); for ($i = 0; $i < $total; $i++) { if ($terminals[$i]['NAME'] == $session->data['TERMINAL']) { $terminals[$i]['SELECTED'] = 1; $out['TERMINAL_TITLE'] = $terminals[$i]['TITLE']; } } $out['TERMINALS'] = $terminals; $users = SQLSelect("SELECT * FROM users ORDER BY NAME"); $total = count($users); for ($i = 0; $i < $total; $i++) { if ($users[$i]['USERNAME'] == $session->data['USERNAME']) { $users[$i]['SELECTED'] = 1; $out['USER_TITLE'] = $users[$i]['NAME']; } } $out['USERS'] = $users; } if ($this->action == 'getnextevent') { if (!$session->data['TERMINAL']) { $session->data['TERMINAL'] = 'temp' . date('YmdHis'); } //echo "next event for ".$session->data['USERNAME']." on ".$session->data['TERMINAL'];//.date('H:i:s') SQLExec("DELETE FROM events WHERE EXPIRE<NOW() AND EVENT_TYPE!='system'"); $qry = "1"; //$qry.=" AND TERMINAL_FROM!='".DBSafe($session->data['TERMINAL'])."'"; $qry .= " AND EVENT_TYPE!='system'"; $qry .= " AND PROCESSED=0"; $qry .= " AND (TERMINAL_TO='*' OR TERMINAL_TO='" . DBSafe($session->data['TERMINAL']) . "')"; $qry .= " AND (USER_TO='*' OR USER_TO='" . DBSafe($session->data['USERNAME']) . "')"; $event = SQLSelectOne("SELECT * FROM events WHERE {$qry} ORDER BY ADDED"); if ($event['ID']) { $res = $event['ID'] . '|' . $event['EVENT_TYPE'] . '|' . $event['WINDOW'] . '|' . str_replace("\n", '\\n', $event['DETAILS']); echo $res; $event['PROCESSED'] = 1; SQLUpdate('events', $event); } exit; } }
function enregistrerMessage($idConversation, $idAuteur, $contenu) { // Enregistre un message dans la base en encodant les caractères spéciaux HTML : <, > et & // pour interdire les messages HTML $SQL = "INSERT INTO messages(idConversation,idAuteur,contenu) "; $SQL .= " VALUES('{$idConversation}', '{$idAuteur}', '" . htmlspecialchars($contenu) . "')"; return SQLInsert($SQL); }
/** * Installing current module * * Adding information about module in project registry and * processing to database installation routine if file "installed" does not * exists in module directory. * * @param string $parent_name optional parent module for installing packages (reserved for future development) * @access private */ function install($parent_name="") { $this->dbInstall(""); $rec=SQLSelectOne("SELECT * FROM project_modules WHERE NAME='".$this->name."'"); if (!IsSet($rec["ID"])) { $rec["NAME"]=$this->name; if (!IsSet($this->title)) { $this->title=$this->name; } $rec["TITLE"]=$this->title; if (IsSet($this->module_category)) { $rec["CATEGORY"]=$this->module_category; } $rec["ID"]=SQLInsert("project_modules", $rec); } if (!file_exists(DIR_MODULES.$this->name."/installed")) { SaveFile(DIR_MODULES.$this->name."/installed", date("H:m d.M.Y")); } }
/** * Title * * Description * * @access public */ function import_classes(&$out) { global $file; global $overwrite; global $only_classes; $data = LoadFile($file); $records = unserialize($data); if (is_array($records)) { $total = count($records); for ($i = 0; $i < $total; $i++) { $old_class = SQLSelectOne("SELECT ID FROM classes WHERE TITLE LIKE '" . DBSafe($records[$i]['TITLE']) . "'"); $total_o = 0; if ($old_class['ID']) { $old_objects = SQLSelect("SELECT * FROM objects WHERE CLASS_ID='" . $old_class['ID'] . "'"); $total_o = count($old_objects); for ($io = 0; $io < $total_o; $io++) { $old_objects[$io]['CLASS_ID'] = 0; SQLUpdate('objects', $old_objects[$io]); } if ($overwrite) { $this->delete_classes($old_class['ID']); $records[$i]['ID'] = $old_class['ID']; } else { $records[$i]['TITLE'] = $records[$i]['TITLE'] . rand(0, 500); } } $objects = $records[$i]['OBJECTS']; unset($records[$i]['OBJECTS']); $methods = $records[$i]['METHODS']; unset($records[$i]['METHODS']); $properties = $records[$i]['PROPERTIES']; unset($records[$i]['PROPERTIES']); $records[$i]['ID'] = SQLInsert('classes', $records[$i]); if ($total_o) { for ($io = 0; $io < $total_o; $io++) { $old_objects[$io]['CLASS_ID'] = $records[$i]['ID']; SQLUpdate('objects', $old_objects[$io]); } } if (is_array($properties)) { $total_p = count($properties); for ($p = 0; $p < $total_p; $p++) { $properties[$p]['CLASS_ID'] = $records[$i]['ID']; $properties[$p]['ID'] = SQLInsert('properties', $properties[$p]); } } if (is_array($methods)) { $total_m = count($methods); for ($m = 0; $m < $total_m; $m++) { $methods[$m]['CLASS_ID'] = $records[$i]['ID']; $methods[$m]['ID'] = SQLInsert('methods', $methods[$m]); } } if (is_array($objects) && !$only_classes) { $total_o = count($objects); for ($o = 0; $o < $total_o; $o++) { $objects[$o]['CLASS_ID'] = $records[$i]['ID']; $methods = $objects[$o]['METHODS']; unset($objects[$o]['METHODS']); $properties = $objects[$o]['PROPERTIES']; unset($objects[$o]['PROPERTIES']); $objects[$o]['ID'] = SQLInsert('objects', $objects[$o]); if (is_array($properties)) { $total_p = count($properties); for ($p = 0; $p < $total_p; $p++) { $properties[$p]['OBJECT_ID'] = $objects[$o]['ID']; $properties[$p]['ID'] = SQLInsert('properties', $properties[$p]); } } if (is_array($methods)) { $total_m = count($methods); for ($m = 0; $m < $total_m; $m++) { $methods[$m]['OBJECT_ID'] = $objects[$o]['ID']; $methods[$m]['ID'] = SQLInsert('methods', $methods[$m]); } } } } } //print_r($records); } $this->updateTree_classes(); $this->redirect("?"); }
function SQLEditor() { extract($_SESSION); $conn = @mysql_connect($mhost . ":" . $mport, $muser, $mpass); if ($conn) { echo "Logged in as {$muser}@{$mhost} <a href='{$self}?act=logout'>[Logout]</a><center>"; echo "<form method='POST' action='{$self}?'>\n Quick SQL query: <input type='text' style='width: 300px' value='select * from users' name='sqlquery'>\n <input type='hidden' name='db' value='{$_GET['db']}'>\n <input type='submit' value='Go' name='sql'>\n </form>"; echo "<form action='{$self}?act=sqledit' method='post'>\n <input type='submit' style='border: none;' value='[ List Processes ]' name='sql_list_proc'>\n </form></center></br></br>"; if (isset($_POST['sql_list_proc'])) { $res = mysql_list_processes(); echo "<table style='margin: auto; text-align: center;'><tr>\n <td>Proc ID</td><td>Host</td><td>DB</td><td>Command</td><td>Time</td>\n </tr>"; while ($r = mysql_fetch_assoc($res)) { echo "<tr><td>{$r['Id']}</td><td>{$r['Host']}</td><td>{$r['db']}</td><td>{$r['Command']}</td><td>{$r['Time']}</td></tr>"; } mysql_free_result($res); echo "</table></br>"; } if (!isset($_GET['db'])) { if (isset($_POST['dbc'])) { db_create(); } if (isset($_GET['dropdb'])) { SQLDrop(); } echo "<table style='margin: auto; text-align: center;'>\n <tr><td>Database</td><td>Table count</td><td>Download</td><td>Drop</td></tr>"; $all_your_base = mysql_list_dbs($conn); while ($your_base = mysql_fetch_assoc($all_your_base)) { $tbl = mysql_query("SHOW TABLES FROM {$your_base['Database']}"); $tbl_count = mysql_num_rows($tbl); echo "<tr><td><a href='{$self}?act=sqledit&db={$your_base['Database']}'>{$your_base['Database']}</td><td>{$tbl_count}</td><td><a href='{$self}?act=download&db={$your_base['Database']}'>Download</a></td><td><a href='{$self}?act=sqledit&dropdb={$your_base['Database']}'>Drop</a></td></tr>"; } echo "</table></br><center><form action='{$self}?act=sqledit' method='post'>New database name: <input type='text' value='new_database' name='db_name'><input type='submit' style='border: none;' value='[ Create Database ]' name='dbc'></form></center></br>"; } elseif (isset($_GET['db']) && !isset($_GET['tbl'])) { if (isset($_POST['tblc'])) { table_create(); } if (isset($_GET['droptbl'])) { SQLDrop(); } echo "<table style='margin: auto; text-align: center;'>\n <tr><td>Table</td><td>Column count</td><td>Dump</td><td>Drop</td></tr>"; $tables = mysql_query("SHOW TABLES FROM {$_GET['db']}"); while ($tblc = mysql_fetch_array($tables)) { $fCount = mysql_query("SHOW COLUMNS FROM {$_GET['db']}.{$tblc['0']}"); $fc = mysql_num_rows($fCount); echo "<tr><td><a href='{$self}?act=sqledit&db={$_GET['db']}&tbl={$tblc['0']}'>{$tblc['0']}</a></td><td>{$fc}</td><td><a href='{$self}?act=download&db={$_GET['db']}&tbl={$tblc['0']}'>Dump</td><td><a href='{$self}?act=sqledit&db={$_GET['db']}&droptbl={$tblc['0']}'>Drop</a></td></tr>"; } echo "</table></br><center><form action='{$self}?act=sqledit&db={$_GET['db']}' method='post'>Create new table: <input type='text' value='new_table' name='table_name'><input type='hidden' value='{$_GET['db']}' name='db_current'> <input type='submit' style='border: none;' value='[ Create Table ]' name='tblc'></form></center>"; } elseif (isset($_GET['field']) && isset($_POST['sqlsave'])) { $discard_values = mysql_query("SELECT * FROM {$_GET['db']}.{$_GET['tbl']} WHERE {$_GET['field']}='{$_GET['v']}'"); $values = mysql_fetch_assoc($discard_values); $keys = array_keys($values); $values = array(); foreach ($_POST as $k => $v) { if (in_array($k, $keys)) { $values[] = $v; } } $query = "UPDATE {$_GET['db']}.{$_GET['tbl']} SET "; for ($y = 0; $y < count($values); $y++) { if ($y == count($values) - 1) { $query .= "{$keys[$y]}='{$values[$y]}' "; } else { $query .= "{$keys[$y]}='{$values[$y]}', "; } } $query .= "WHERE {$_GET['field']} = '{$_GET['v']}'"; $try = mysql_query($query) or die(mysql_error()); echo "<center>Table updated!<br>"; echo "<a href='{$self}?act=sqledit&db={$_GET['db']}&tbl={$_GET['tbl']}'>Go back</a><br><br>"; } elseif (isset($_GET['field']) && isset($_GET['v']) && !isset($_GET['del'])) { echo "<center><form action='{$self}?act=sqledit&db={$_GET['db']}&tbl={$_GET['tbl']}&field={$_GET['field']}&v={$_GET['v']}' method='post'>"; $sql_fields = array(); $fields = mysql_query("SHOW COLUMNS FROM {$_GET['db']}.{$_GET['tbl']}"); while ($field = mysql_fetch_assoc($fields)) { $sql_fields[] = $field['Field']; } $data = mysql_query("SELECT * FROM {$_GET['db']}.{$_GET['tbl']} WHERE {$_GET['field']}='{$_GET['v']}'"); $d_piece = mysql_fetch_assoc($data); for ($m = 0; $m < count($sql_fields); $m++) { $point = $sql_fields[$m]; echo "{$point}: <input type='text' value='{$d_piece[$point]}' name='{$sql_fields[$m]}'></br>"; } echo "<input type='submit' value='Save' name='sqlsave'></form></center>"; } elseif (isset($_GET['db']) && isset($_GET['tbl'])) { if (isset($_GET['insert'])) { SQLInsert(); } if (isset($_GET['field']) && isset($_GET['v']) && isset($_GET['del'])) { echo "<center>"; if (@mysql_query("DELETE FROM {$_GET['db']}.{$_GET['tbl']} WHERE {$_GET['field']}={$_GET['v']}")) { echo "Row deleted</br>"; } else { echo "Failed to delete row</br>"; } echo "</center>"; } echo "<center><a href='{$self}?act=sqledit&db={$_GET['db']}&tbl={$_GET['tbl']}&insert=1'>[Insert new row]</a></center>"; echo "<table style='margin: auto; text-align: center;'><tr>"; $cols = mysql_query("SHOW COLUMNS FROM {$_GET['db']}.{$_GET['tbl']}"); $fields = array(); while ($col = mysql_fetch_assoc($cols)) { array_push($fields, $col['Field']); echo "<td>{$col['Field']}</td>"; } echo "</tr>"; if (isset($_GET['s']) && is_numeric($_GET['s'])) { $selector = mysql_query("SELECT * FROM {$_GET['db']}.{$_GET['tbl']} LIMIT {$_GET['s']}, 250"); } else { $selector = mysql_query("SELECT * FROM {$_GET['db']}.{$_GET['tbl']} LIMIT 0, 250"); } while ($select = mysql_fetch_row($selector)) { echo "<tr>"; for ($i = 0; $i < count($fields); $i++) { echo "<td>" . htmlspecialchars($select[$i]) . "</td>"; } echo "<td><a href='{$self}?act=sqledit&db={$_GET['db']}&tbl={$_GET['tbl']}&field={$fields['0']}&v={$select['0']}'>Edit</a></td><td><a href='{$self}?act=sqledit&db={$_GET['db']}&tbl={$_GET['tbl']}&field={$fields['0']}&v={$select['0']}&del=true'>Delete</a></td>"; echo "</tr>"; } echo "</table>"; echo "<table style='margin: auto;'>"; if (isset($_GET['s'])) { $prev = intval($_GET['s']) - 250; $next = intval($_GET['s']) + 250; if ($_GET['s'] > 0) { echo "<tr><td><a href='{$self}?act=sqledit&db={$_GET['db']}&tbl={$_GET['tbl']}&s={$prev}'>Previous</a></td>"; } if (mysql_num_rows($selector) > 249) { echo "<td><a href='{$self}?act=sqledit&db={$_GET['db']}&tbl={$_GET['tbl']}&s={$next}'>Next</a></td></tr>"; } } else { echo "<center><a href='{$self}?act=sqledit&db={$_GET['db']}&tbl={$_GET['tbl']}&s=250'>Next</a></center>"; } echo "</table>"; } else { $_SESSION = array(); session_destroy(); header("Location: {$self}?act=sql"); } } }
/** * Title * * Description * * @access public */ function updateChannel($id) { $ch = SQLSelectOne("SELECT * FROM rss_channels WHERE ID='" . (int) $id . "'"); $ch['LAST_UPDATE'] = date('Y-m-d H:i:s'); $ch['NEXT_UPDATE'] = date('Y-m-d H:i:s', time() + $ch['UPDATE_EVERY'] * 60); SQLUpdate('rss_channels', $ch); /* $cch =curl_init(); curl_setopt($cch, CURLOPT_URL, $ch['URL']); curl_setopt($cch, CURLOPT_HTTPHEADER, array("User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3")); curl_setopt($cch, CURLOPT_RETURNTRANSFER, true); $rssdata = curl_exec($cch); curl_close($cch); */ $rssdata = getURL($ch['URL'], 0); $data = simplexml_load_string($rssdata); if ($data) { if (is_object($data->channel) && !empty($data->channel)) { foreach ($data->channel->item as $item) { $rec = array(); $rec['CHANNEL_ID'] = $ch['ID']; $parsedFull = 0; if ($item->pubDate) { $rec['ADDED'] = date('Y-m-d H:i:s', strtotime((string) $item->pubDate)); } else { $rec['ADDED'] = date('Y-m-d H:i:s'); } $rec['TITLE'] = $this->convertObjDataToStr($item->title); $rec['BODY'] = $this->convertObjDataToStr($item->description); $rec['URL'] = $this->convertObjDataToStr($item->link); $rec['GUID'] = $rec['URL']; $timestamp = strtotime($rec['ADDED']); //print_r($rec); //exit; $tmp = SQLSelectOne("SELECT ID FROM rss_items WHERE GUID='" . DBSafe($rec['GUID']) . "'"); if (!$tmp['ID']) { $rec['ID'] = SQLInsert('rss_items', $rec); if ($ch['SCRIPT_ID']) { $params = $rec; $params['CHANNEL_TITLE'] = $ch['TITLE']; $params['TM'] = $timestamp; $params['PASSED'] = time() - $timestamp; runScript($ch['SCRIPT_ID'], $params); } } } } } }
function MessageStatus( &$pMessage, $Status ) { global $skype, $CurrentUser, $archivechats; global $pt; $myhandle = $CurrentUser->Handle; $cmeUnknown = -1; $cmeCreatedChatWith = 0; $cmeAddedMembers = 2; $cmeSetTopic = 3; $cmeSaid = 4; $cmeLeft = 5; if ($pMessage->Type == $cmeSetTopic) { //skype_SetTopic($pMessage); } else if ($pMessage->Type == $cmeAddedMembers) { //skype_add_member($pMessage); } else if ($pMessage->Type == $cmeSaid || $pMessage->Type == $cmeUnknown) { if ($Status == 0 || $Status == 2) { // print "\n$pMessage->body $Status $pMessage->type"; if ($pMessage->FromHandle <> $CurrentUser->Handle ) { echo $pMessage->FromHandle.": ".convert_cyr_string($pMessage->Body, 'w', 'd')."\n"; if ( substr(strtolower($pMessage->Body),0,4) == 'ping' ) { $skype->Chat($pMessage->ChatName)->SendMessage("pong"); } $user=SQLSelectOne("SELECT ID FROM users WHERE SKYPE LIKE '".$pMessage->FromHandle."'"); if (!$user['ID']) { $user=SQLSelectOne("SELECT ID FROM users ORDER BY ID"); } $user_id=$user['ID']; $qrys=explode(' '.DEVIDER.' ', iconv('WINDOWS-1251', 'UTF-8', $pMessage->Body)); $total=count($qrys); for($i=0;$i<$total;$i++) { $room_id=0; $rec=array(); $rec['ROOM_ID']=(int)$room_id; $rec['MEMBER_ID']=$user_id; $rec['MESSAGE']=htmlspecialchars($qrys[$i]); $rec['ADDED']=date('Y-m-d H:i:s'); SQLInsert('shouts', $rec); $pt->checkAllPatterns(); getObject("ThisComputer")->raiseEvent("commandReceived", array("command"=>$qrys[$i])); } } } } }
/** * Title * * Description * * @access public */ function clone_webvar($id) { $rec = SQLSelectOne("SELECT * FROM webvars WHERE ID='" . (int) $id . "'"); $rec['TITLE'] .= ' (copy)'; unset($rec['ID']); $rec['LOG'] = ''; $rec['LATEST_VALUE'] = ''; $rec['ID'] = SQLInsert('webvars', $rec); $this->redirect("?view_mode=edit_webvars&id=" . $rec['ID']); }
} } if ($this->filter_name == 'pushbullet' && !defined('SETTINGS_PUSHBULLET_PREFIX')) { $options = array('PUSHBULLET_KEY' => 'Pushbullet API Key', 'PUSHBULLET_LEVEL' => 'Pushbullet message minimum level', 'PUSHBULLET_DEVICE_ID' => 'Pushbullet Device ID (optional)', 'PUSHBULLET_PREFIX' => 'Pushbullet notifiaction prefix (optional)'); foreach ($options as $k => $v) { $tmp = SQLSelectOne("SELECT ID FROM settings WHERE NAME LIKE '" . $k . "'"); if (!$tmp['ID']) { $tmp = array(); $tmp['NAME'] = $k; $tmp['TITLE'] = $v; $tmp['TYPE'] = 'text'; if ($k == 'PUSHBULLET_LEVEL') { $tmp['VALUE'] = 1; $tmp['DEFAULTVALUE'] = 1; } SQLInsert('settings', $tmp); } } } // if (!empty($options)) { // } global $session; if ($this->owner->name == 'panel') { $out['CONTROLPANEL'] = 1; } $qry = "1"; // search filters // search filters if ($this->filter_name != '') { $qry .= " AND NAME LIKE '%" . DBSafe($this->filter_name) . "%'"; $out['FILTER_NAME'] = $this->filter_name;
$out['ERR_TITLE']=1; $ok=0; } //updating 'ACTIVE' (int) global $active; $rec['ACTIVE']=(int)$active; //updating 'PRIORITY' (int) global $priority; $rec['PRIORITY']=(int)$priority; //UPDATING RECORD if ($ok) { if ($rec['ID']) { SQLUpdate($table_name, $rec); // update } else { $new_rec=1; $rec['ID']=SQLInsert($table_name, $rec); // adding new record } //updating 'ICON' (image) global $icon; global $icon_name; global $delete_icon; if ($icon!="" && file_exists($icon) && (!$delete_icon)) { $filename=strtolower(basename($icon_name)); $ext=strtolower(end(explode(".",basename($icon_name)))); if ( (filesize($icon)<=(0*1024) || 0==0) && (Is_Integer(strpos('gif jpg png', $ext))) ) { $filename=$rec["ID"]."_icon_".time().".".$ext; if ($rec["ICON"]!='') { @Unlink(ROOT.'./cms/calendar/'.$rec["ICON"]); }
function upload(&$out) { set_time_limit(0); global $restore; global $file; global $file_name; global $folder; if (!$folder) { if (substr(php_uname(), 0, 7) == "Windows") { $folder = '/.'; } else { $folder = '/'; } } else { $folder = '/' . $folder; } if ($restore != '') { $file = $restore; } elseif ($file != '') { copy($file, ROOT . 'saverestore/' . $file_name); $file = $file_name; } umask(0); @mkdir(ROOT . 'saverestore/temp', 0777); if ($file != '') { // && mkdir(ROOT.'saverestore/temp', 0777) chdir(ROOT . 'saverestore/temp'); if (substr(php_uname(), 0, 7) == "Windows") { // for windows only exec(DOC_ROOT . '/gunzip ../' . $file, $output, $res); //echo DOC_ROOT.'/tar xvf ../'.str_replace('.tgz', '.tar', $file);exit; exec(DOC_ROOT . '/tar xvf ../' . str_replace('.tgz', '.tar', $file), $output, $res); } else { exec('tar xzvf ../' . $file, $output, $res); } $x = 0; $dir = opendir('./'); while (($filec = readdir($dir)) !== false) { if ($filec == '.' || $filec == '..') { continue; } if (is_Dir($filec)) { $latest_dir = $filec; } elseif (is_File($filec)) { $latest_file = $filec; } $x++; } if ($x == 1 && $latest_dir) { $folder = '/' . $latest_dir; } @unlink(ROOT . 'saverestore/temp' . $folder . '/config.php'); @unlink(ROOT . 'saverestore/temp' . $folder . '/README.md'); chdir('../../'); // UPDATING FILES DIRECTLY $this->copyTree(ROOT . 'saverestore/temp' . $folder, ROOT, 1); // restore all files $source = ROOT . 'modules'; if ($dir = @opendir($source)) { while (($file = readdir($dir)) !== false) { if (Is_Dir($source . "/" . $file) && $file != '.' && $file != '..') { // && !file_exists($source."/".$file."/installed") @unlink(ROOT . "modules/" . $file . "/installed"); } } } @unlink(ROOT . "modules/control_modules/installed"); @SaveFile(ROOT . 'reboot', 'updated'); global $name; global $version; $rec = SQLSelectOne("SELECT * FROM plugins WHERE MODULE_NAME LIKE '" . DBSafe($name) . "'"); $rec['MODULE_NAME'] = $name; $rec['CURRENT_VERSION'] = $version; $rec['IS_INSTALLED'] = 1; $rec['LATEST_UPDATE'] = date('Y-m-d H:i:s'); if ($rec['ID']) { SQLUpdate('plugins', $rec); } else { SQLInsert('plugins', $rec); } $this->redirect("?mode=clear&ok_msg=" . urlencode("Updates Installed!")); } }
function run() { // running current module global $mode; global $name; $rep_ext = ""; if (preg_match('/\\.dev/is', $_SERVER['HTTP_HOST'])) { $rep_ext = '.dev'; } if (preg_match('/\\.jbk/is', $_SERVER['HTTP_HOST'])) { $rep_ext = '.jbk'; } if (preg_match('/\\.bk/is', $_SERVER['HTTP_HOST'])) { $rep_ext = '.bk'; } if ($rep_ext) { $out['LOCAL_PROJECT'] = 1; $out['REP_EXT'] = $rep_ext; $out['HOST'] = $_SERVER['HTTP_HOST']; $out['DOCUMENT_ROOT'] = dirname($_SERVER['SCRIPT_FILENAME']); } if ($mode == "edit") { global $mode2; $rec = SQLSelectOne("SELECT * FROM project_modules WHERE NAME='" . $name . "'"); $rec['NAME'] = $name; if ($mode2 == "update") { global $title; global $category; $rec['TITLE'] = $title; $rec['CATEGORY'] = $category; SQLUpdate("project_modules", $rec); $this->redirect("?name={$name}&mode=edit"); } elseif ($mode2 == "show") { if ($rec['HIDDEN']) { $rec['HIDDEN'] = 0; } else { $rec['HIDDEN'] = 1; } SQLUpdate('project_modules', $rec); $this->redirect("?"); } elseif ($mode2 == "ignore") { SQLExec("DELETE FROM ignore_updates WHERE NAME LIKE '" . DBSafe($rec['NAME']) . "'"); $tmp = array(); $tmp['NAME'] = $rec['NAME']; SQLInsert('ignore_updates', $tmp); $this->redirect("?"); } elseif ($mode2 == "unignore") { SQLExec("DELETE FROM ignore_updates WHERE NAME LIKE '" . DBSafe($rec['NAME']) . "'"); $this->redirect("?"); } elseif ($mode2 == "install") { $rec = SQLSelectOne("SELECT * FROM project_modules WHERE NAME='" . $name . "'"); SQLExec("DELETE FROM project_modules WHERE NAME='" . $name . "'"); @unlink(DIR_MODULES . $name . "/installed"); include_once DIR_MODULES . $name . "/" . $name . ".class.php"; $obj = "\$object{$i}"; $code .= "{$obj}=new " . $name . ";\n"; @eval($code); // add module to control access global $session; $user = SQLSelectOne("SELECT * FROM admin_users WHERE LOGIN='******'"); if ($user['ID'] && !Is_Integer(strpos($user["ACCESS"], $name))) { if ($user["ACCESS"] != '') { $user["ACCESS"] .= ",{$name}"; } else { $user["ACCESS"] = $name; } SQLUpdate('admin_users', $user); } SQLExec("UPDATE project_modules SET HIDDEN='" . (int) $rec['HIDDEN'] . "' WHERE NAME='" . $name . "'"); // redirect to edit $this->redirect("?name={$name}&mode=edit"); } elseif ($mode2 == 'uninstall') { SQLExec("DELETE FROM project_modules WHERE NAME='" . $name . "'"); @unlink(DIR_MODULES . $name . "/installed"); if (file_exists(DIR_MODULES . $name . "/" . $name . ".class.php")) { include_once DIR_MODULES . $name . "/" . $name . ".class.php"; $obj = "\$object{$i}"; $code .= "{$obj}=new " . $name . ";\n"; $code .= "{$obj}" . "->uninstall();"; eval($code); } if ($out['LOCAL_PROJECT']) { $this->redirect("?mode=repository_uninstall&module={$name}"); } else { $this->redirect("?"); } } outHash($rec, $out); } if ($mode == 'repository_uninstall') { global $module; $out['MODULE'] = $module; } $out["MODE"] = $mode; $this->getModulesList(); $lst = $this->modules; $lstCnt = count($lst); for ($i = 0; $i < $lstCnt; $i++) { $rec = SQLSelectOne("SELECT *, DATE_FORMAT(ADDED, '%M %d, %Y (%H:%i)') as DAT FROM project_modules WHERE NAME='" . $lst[$i]['FILENAME'] . "'"); if (isset($rec['ID'])) { outHash($rec, $lst[$i]); } $ignored = SQLSelectOne("SELECT ID FROM ignore_updates WHERE NAME LIKE '" . DBSafe($lst[$i]['NAME']) . "'"); if ($ignored['ID']) { $lst[$i]['IGNORED'] = 1; } } $out["MODULES"] = $lst; $this->data = $out; $p = new parser(DIR_TEMPLATES . $this->name . "/" . $this->name . ".html", $this->data, $this); $this->result = $p->result; }
/** * FrontEnd * * Module frontend * * @access public */ function usual(&$out) { $terminals=SQLSelect("SELECT * FROM terminals WHERE CANPLAY=1 ORDER BY TITLE"); $total=count($terminals); for($i=0;$i<$total;$i++) { //if ($terminals[$i]['NAME']==$session->data['PLAY_TERMINAL']) { // $terminals[$i]['SELECTED']=1; // $out['TERMINAL_TITLE']=$terminals[$i]['TITLE']; //} } $out['TERMINALS']=$terminals; $out['TERMINALS_TOTAL']=count($terminals); if ($this->mode=='play') { //echo $this->owner->popup; global $showplayer; $this->showplayer=1; if ($this->showplayer) { $showplayer=1; } if ($showplayer) { $this->showplayer=1; $out['SHOWPLAYER']=1; } global $terminal_id; $out['TERMINAL_ID']=$terminal_id; } global $collection_id; if ($this->collection_id) { $collection_id=$this->collection_id; } $this->collection_id=$collection_id; $out['COLLECTIONS']=SQLSelect("SELECT * FROM collections ORDER BY TITLE"); if (count($out['COLLECTIONS'])==1) { $collection_id=$out['COLLECTIONS'][0]['ID']; $this->collection_id=$collection_id; $out['COLLECTIONS_TOTAL']=1; } if ($collection_id) { $collection=SQLSelectOne("SELECT * FROM collections WHERE ID='".(int)$collection_id."'"); $path=($collection['PATH']);//addslashes $out['COLLECTION_ID']=$collection['ID']; } else { return; } //$this->getConfig(); //$path=$this->config['PATH']; // echo $path; // global $folder; if ($this->folder) { $folder=base64_decode($this->folder); } else { $this->folder=base64_encode($folder); } $favorites=SQLSelect("SELECT * FROM media_favorites WHERE 1 ORDER BY ID DESC"); if ($favorites) { $total=count($favorites); for($i=0;$i<$total;$i++) { $favorites[$i]['PATH']=urlencode(utf2win($favorites[$i]['PATH'])); } $out['FAVORITES']=$favorites; } $folder=str_replace('././', './', $folder); $path=str_replace('././', './', $path); $act_dir=$path.$folder; $out['MEDIA_PATH']=win2utf($path); $out['CURRENT_DIR']=win2utf('./'.$folder); $out['CURRENT_DIR']=str_replace('././', './', $out['CURRENT_DIR']); $out['CURRENT_DIR_TITLE']=$folder; $tmp=explode('/', $out['CURRENT_DIR']); $total=count($tmp); if ($total>0) { $spath='.'; for($i=0;$i<$total;$i++) { $tmp_rec=array(); $tmp_rec['TITLE']=$tmp[$i]; $spath.='/'.$tmp_rec['TITLE']; $spath=str_replace('././', './', $spath); $tmp_rec['PATH']=urlencode(utf2win($spath).'/'); if ($tmp_rec['TITLE']=='.') { $tmp_rec['TITLE']='Home'; } $out['HISTORY'][]=$tmp_rec; //echo $tmp_rec['PATH']."<br>"; } $out['CURRENT_DIR_TITLE']=($out['HISTORY'][$total-3]['TITLE'].'/'.$out['HISTORY'][$total-2]['TITLE']); } $out['CURRENT_DIR_TITLE_HTML']=urlencode($out['CURRENT_DIR_TITLE']); $out['CURRENT_DIR_HTML']=urlencode('./'.($folder)); $tmp=SQLSelectOne("SELECT ID FROM media_favorites WHERE LIST_ID='".(int)$list_id."' AND COLLECTION_ID='".$collection['ID']."' AND PATH LIKE '".DBSafe($out['CURRENT_DIR'])."'"); if ($tmp['ID']) { $out['FAVORITE']=1; } global $file; if ($file) { $out['FILE']=win2utf($file); $out['BASEFILE']=win2utf(basename($file)); $file=str_replace('/', '\\\\', $file); $out['FULLFILE']=win2utf(addslashes($path).$file); $out['FULLFILE_S']=str_replace('\\\\', '\\', $out['FULLFILE']); } if (preg_match('/foto/is', $act_dir) || preg_match('/photo/is', $act_dir)) { $out['LIST_MODE']='foto'; } $descriptions=$this->getDescriptions($act_dir); global $media_ajax; if ($media_ajax) { global $op; global $list_id; global $title; global $dir; header ("HTTP/1.0: 200 OK\n"); header ('Content-Type: text/html; charset=utf-8'); $tmp_path=$dir; if ($op=='favorite_add') { $rec=array(); $rec['TITLE']=$title; $rec['PATH']=$tmp_path; $rec['LIST_ID']=(int)$list_id; $rec['COLLECTION_ID']=$collection_id; SQLInsert('media_favorites', $rec); echo "OK"; } if ($op=='favorite_remove') { SQLExec("DELETE FROM media_favorites WHERE LIST_ID='".(int)$list_id."' AND COLLECTION_ID='".$collection['ID']."' AND PATH LIKE '".DBSafe($tmp_path)."'"); echo "OK"; } exit; } function sort_files($a, $b) { return strcmp(strtoupper($a["TITLE"]), strtoupper($b["TITLE"])); } $dirs=array(); //$act_dir='\\\\home\\media\\'; //echo $act_dir; $d=openDir($act_dir); //exit; if ($d) { while ($file=readDir($d)) { if (($file==".") || ($file=="..")) { continue; } if (Is_Dir($act_dir.$file)) { $rec=array(); $rec['TITLE']=$file; $rec['TITLE_SHORT']=$rec['TITLE']; if (strlen($rec['TITLE_SHORT'])>50) { $rec['TITLE_SHORT']=substr($rec['TITLE_SHORT'], 0, 50).'...'; } $rec['TITLE']=win2utf($rec['TITLE']); $rec['TITLE_SHORT']=win2utf($rec['TITLE_SHORT']); if (IsSet($descriptions[$file])) { $rec['DESCR']=$descriptions[$file]; } $rec['PATH']=urlencode(($folder.$file)).'/'; $rec['REAL_PATH']=$dir.$file; $rec['ID']=md5($rec['REAL_PATH']); $dirs[]=$rec; } } closeDir($d); } //$dirs=mysort_array($dirs, "TITLE"); usort($dirs, 'sort_files'); //print_r($dirs); if (count($dirs)>0) $out['DIRS']=$dirs; @$d=openDir($act_dir); if ($d) { $cover=$this->getCover($act_dir); if ($cover) { $out['COVER']=$cover; $out['COVER_PATH']=urlencode(str_replace('\\\\', '\\', $act_dir).$cover); } $files=array(); while ($file=readDir($d)) { if (($file==".") || ($file=="..") || ($file=="Descript.ion")) { continue; } if (Is_File($act_dir.$file)) { $rec=array(); $rec['TITLE']=$file; if (IsSet($descriptions[$file])) { $rec['DESCR']=$descriptions[$file]; } if (strlen($rec['TITLE'])>50) { $rec['TITLE_SHORT']=substr($rec['TITLE'], 0, 50)."..."; } else { $rec['TITLE_SHORT']=$rec['TITLE']; } $rec['TITLE']=win2utf($rec['TITLE']); $rec['TITLE_SHORT']=win2utf($rec['TITLE_SHORT']); $rec['REAL_PATH']=($folder.$file); $rec['PATH']=urlencode($folder.$file); $rec['FULL_PATH']=urlencode(str_replace('\\\\', '\\', $act_dir).$file); $size=filesize($act_dir.$file); $total_size+=$size; if ($size>1024) { if ($size>1024*1024) { $size=(((int)(($size/1024/1024)*10))/10)." Mb"; } else { $size=(int)($size/1024)." Kb"; } } else { $size.=" b"; } $rec['SIZE']=$size; $rec['ID']=md5($rec['PATH']); $files[]=$rec; } } closeDir($d); } //$files=mysort_array($files, "TITLE"); usort($files, 'sort_files'); if (count($files)>0) { $total=count($files); $out['TOTAL_FILES']=$total; for($i=0;$i<$total;$i++) { if (preg_match('/\.jpg$/is', $files[$i]['PATH'])) { $files[$i]['IS_FOTO']=1; } if (($i+1)%4==0) { $files[$i]['NEWROW']=1; } } $out['FILES']=$files; } $out['TOTAL_DIRS']=count($dirs); if ($total_size>1024) { if ($total_size>1024*1024) { $total_size=(((int)(($total_size/1024/1024)*10))/10)." Mb"; } else { $total_size=(int)($total_size/1024)." Kb"; } } else { $total_size.=" b"; } $out['TOTAL_SIZE']=$total_size; }
$state_rec['CONDITION_VALUE'] = 1; $state_rec['ACTION_OBJECT'] = $state_rec['LINKED_OBJECT']; $state_rec['ACTION_METHOD'] = 'activate'; $state_rec['ID'] = SQLInsert('elm_states', $state_rec); $state_rec = array(); $state_rec['TITLE'] = 'on'; $state_rec['HTML'] = $element['TITLE']; $state_rec['ELEMENT_ID'] = $element['ID']; $state_rec['IS_DYNAMIC'] = 1; $state_rec['LINKED_OBJECT'] = $linked_object; $state_rec['LINKED_PROPERTY'] = 'active'; $state_rec['CONDITION'] = 1; $state_rec['CONDITION_VALUE'] = 1; $state_rec['ACTION_OBJECT'] = $state_rec['LINKED_OBJECT']; $state_rec['ACTION_METHOD'] = 'deactivate'; $state_rec['ID'] = SQLInsert('elm_states', $state_rec); $state_id = $state_rec['ID']; } } if (is_array($state_rec)) { foreach ($state_rec as $k => $v) { $out['STATE_' . $k] = htmlspecialchars($v); } } if (is_array($element)) { foreach ($element as $k => $v) { $out['ELEMENT_' . $k] = htmlspecialchars($v); } if ($element['CSS_STYLE'] != 'default') { $out['ELEMENT_CSS_IMAGE'] = $this->getCSSImage($element['TYPE'], $element['CSS_STYLE']); }
/** * Title * * Description * * @access public */ function pollDevice($device_id, $data = 0) { $rec = SQLSelectOne("SELECT * FROM zwave_devices WHERE ID='" . $device_id . "'"); $rec_updated = 0; $comments = array(); $updatedList = array(); $properties = array(); $command_classes = array(); if (!$data) { $data = $this->apiCall('/ZWaveAPI/Run/devices[' . $rec['NODE_ID'] . '].instances[' . $rec['INSTANCE_ID'] . ']'); } if (!$data) { return 0; } if ($_GET['debug']) { //echo $data->updateTime;exit; var_dump($data); } $updateTime = 0; if (!$rec['RAW_DATA']) { $rec_updated = 1; } $rec['RAW_DATA'] = json_encode($data); $rec['SENSOR_VALUE'] = ''; if ($data->data->updateTime) { $updateTime = $data->data->updateTime; } if ($rec['CLASS_BASIC']) { $value = $data->commandClasses->{"32"}->data->value; if ($value !== $rec['BASIC']) { $rec['BASIC'] = $value; $rec_updated = 1; } $command_classes['Basic'] = 32; $properties['Basic'] = $rec['BASIC']; $updatedList['Basic'] = $data->commandClasses->{"32"}->data->{"updateTime"}; if ($data->commandClasses->{"32"}->data->{"updateTime"} > $updateTime) { $updateTime = $data->commandClasses->{"32"}->data->{"updateTime"}; } } if ($rec['CLASS_SENSOR_BINARY']) { $sensor_data = $data->commandClasses->{"48"}->data; if (isset($data->commandClasses->{"48"}->data->{"1"})) { $sensor_data = $data->commandClasses->{"48"}->data->{"1"}; } $value = (int) $sensor_data->level->value; if ($value !== $rec['LEVEL']) { $rec['LEVEL'] = $value; $rec_updated = 1; } $properties['Level'] = $rec['LEVEL']; $command_classes['Level'] = 48; $updatedList['Level'] = $sensor_data->{"updateTime"}; if ($sensor_data->{"updateTime"} > $updateTime) { $updateTime = $sensor_data->{"updateTime"}; } } if ($rec['CLASS_SENSOR_MULTILEVEL']) { // multiple sensor support required! //SENSOR_VALUE $values = array(); for ($i = 0; $i < 255; $i++) { if (isset($data->commandClasses->{"49"}->data->{"{$i}"})) { $sensor = $data->commandClasses->{"49"}->data->{"{$i}"}; $values[] = trim($sensor->sensorTypeString->value) . ': ' . $sensor->val->value . $sensor->scaleString->value; if (trim($sensor->sensorTypeString->value)) { $prop_name = trim($sensor->sensorTypeString->value) . ', ' . $sensor->scaleString->value; } else { $prop_name = "Sensor {$i}"; } if ($properties[$prop_name]) { $prop_name .= ' (1)'; } $properties[$prop_name] = $sensor->val->value; $command_classes[$prop_name] = 49; $updatedList[$prop_name] = $data->commandClasses->{"49"}->data->{"{$i}"}->{"updateTime"}; if ($data->commandClasses->{"49"}->data->{"{$i}"}->{"updateTime"} > $updateTime) { $updateTime = $data->commandClasses->{"49"}->data->{"{$i}"}->{"updateTime"}; } } } $value = implode('; ', $values); if ($value != $rec['SENSOR_VALUE']) { $rec['SENSOR_VALUE'] .= $value . ';'; $rec_updated = 1; } } if ($rec['CLASS_SWITCH_BINARY']) { $value = (int) $data->commandClasses->{"37"}->data->level->value; if ($value !== $rec['LEVEL']) { $rec['LEVEL'] = $value; $rec_updated = 1; } $properties['Level'] = $rec['LEVEL']; $command_classes['Level'] = 37; $updatedList['Level'] = $data->commandClasses->{"37"}->data->{"updateTime"}; if ($data->commandClasses->{"37"}->data->{"updateTime"} > $updateTime) { $updateTime = $data->commandClasses->{"37"}->data->{"updateTime"}; } } if ($rec['CLASS_SWITCH_MULTILEVEL']) { $value = (int) $data->commandClasses->{"38"}->data->level->value; if ($value !== $rec['LEVEL']) { $rec['LEVEL'] = $value; $rec_updated = 1; } $properties['Level'] = $rec['LEVEL']; $command_classes['Level'] = 38; $updatedList['Level'] = $data->commandClasses->{"38"}->data->{"updateTime"}; if ($data->commandClasses->{"38"}->data->{"updateTime"} > $updateTime) { $updateTime = $data->commandClasses->{"38"}->data->{"updateTime"}; } $properties['LevelDuration command (level, duration)'] = ''; } if ($rec['CLASS_BATTERY']) { $value = (int) $data->commandClasses->{"128"}->data->last->value; if ($value != $rec['BATTERY_LEVEL']) { $rec['BATTERY_LEVEL'] = $value; $rec_updated = 1; } $command_classes['Battery'] = 128; $properties['Battery'] = $rec['BATTERY_LEVEL']; $updatedList['Battery'] = $data->commandClasses->{"128"}->data->{"updateTime"}; if ($data->commandClasses->{"128"}->data->{"updateTime"} > $updateTime) { $updateTime = $data->commandClasses->{"128"}->data->{"updateTime"}; } } if ($rec['CLASS_METER']) { // ... 50 $values = array(); for ($i = 0; $i < 255; $i++) { if (isset($data->commandClasses->{"50"}->data->{"{$i}"})) { $sensor = $data->commandClasses->{"50"}->data->{"{$i}"}; $values[] = trim($sensor->sensorTypeString->value) . ': ' . $sensor->val->value . ' ' . $sensor->scaleString->value; if (trim($sensor->sensorTypeString->value)) { $prop_name = trim($sensor->sensorTypeString->value) . ', ' . $sensor->scaleString->value; } else { $prop_name = "Meter {$i}"; } if ($properties[$prop_name]) { $prop_name .= ' (1)'; } $command_classes[$prop_name] = 50; $properties[$prop_name] = $sensor->val->value; $updatedList[$prop_name] = $data->commandClasses->{"50"}->data->{"{$i}"}->{"updateTime"}; if ($data->commandClasses->{"50"}->data->{"{$i}"}->{"updateTime"} > $updateTime) { $updateTime = $data->commandClasses->{"50"}->data->{"{$i}"}->{"updateTime"}; } } } $value = implode('; ', $values); if ($value != '') { $rec['SENSOR_VALUE'] .= $value . '; '; $rec_updated = 1; } } if ($rec['CLASS_SENSOR_ALARM']) { // ... $data->commandClasses->{"156"}->data if (is_object($data->commandClasses->{"156"}->data->{"0"}->sensorState)) { $command_classes['AlarmGeneral'] = 156; $properties['AlarmGeneral'] = $data->commandClasses->{"156"}->data->{"0"}->sensorState->value; $updatedList['AlarmGeneral'] = $data->commandClasses->{"156"}->data->{"0"}->sensorState->updateTime; $value = $properties['AlarmGeneral']; if ($value != $rec['LEVEL']) { $rec['LEVEL'] = $value; $rec_updated = 1; } } if (is_object($data->commandClasses->{"156"}->data->{"1"}->sensorState)) { $command_classes['AlarmSmoke'] = 156; $properties['AlarmSmoke'] = $data->commandClasses->{"156"}->data->{"1"}->sensorState->value; $updatedList['AlarmSmoke'] = $data->commandClasses->{"156"}->data->{"1"}->sensorState->updateTime; } if (is_object($data->commandClasses->{"156"}->data->{"2"}->sensorState)) { $command_classes['AlarmCarbonMonoxide'] = 156; $properties['AlarmCarbonMonoxide'] = $data->commandClasses->{"156"}->data->{"2"}->sensorState->value; $updatedList['AlarmCarbonMonoxide'] = $data->commandClasses->{"156"}->data->{"2"}->sensorState->updateTime; } if (is_object($data->commandClasses->{"156"}->data->{"3"}->sensorState)) { $command_classes['AlarmCarbonDioxide'] = 156; $properties['AlarmCarbonDioxide'] = $data->commandClasses->{"156"}->data->{"3"}->sensorState->value; $updatedList['AlarmCarbonDioxide'] = $data->commandClasses->{"156"}->data->{"3"}->sensorState->updateTime; } if (is_object($data->commandClasses->{"156"}->data->{"4"}->sensorState)) { $command_classes['AlarmHeat'] = 156; $properties['AlarmHeat'] = $data->commandClasses->{"156"}->data->{"4"}->sensorState->value; $updatedList['AlarmHeat'] = $data->commandClasses->{"156"}->data->{"4"}->sensorState->updateTime; } if (is_object($data->commandClasses->{"156"}->data->{"5"}->sensorState)) { $command_classes['AlarmFlood'] = 156; $properties['AlarmFlood'] = $data->commandClasses->{"156"}->data->{"5"}->sensorState->value; $updatedList['AlarmFlood'] = $data->commandClasses->{"156"}->data->{"5"}->sensorState->updateTime; } if ($data->commandClasses->{"156"}->data->{"updateTime"} > $updateTime) { $updateTime = $data->commandClasses->{"156"}->data->{"updateTime"}; } } if ($rec['CLASS_SCENE_CONTROLLER'] && is_object($data->commandClasses->{"43"}->data->{"currentScene"})) { // ... 43 $properties['CurrentScene'] = $data->commandClasses->{"43"}->data->{"currentScene"}->value; if ($data->commandClasses->{"43"}->data->{"updateTime"} > $updateTime) { $updateTime = $data->commandClasses->{"43"}->data->{"updateTime"}; } } elseif ($rec['CLASS_SCENE_CONTROLLER'] && is_object($data->commandClasses->{"45"}->data->{"currentScene"})) { // ... 45 $properties['CurrentScene'] = $data->commandClasses->{"45"}->data->{"currentScene"}->value; if ($data->commandClasses->{"45"}->data->{"updateTime"} > $updateTime) { $updateTime = $data->commandClasses->{"43"}->data->{"updateTime"}; } } if ($rec['CLASS_THERMOSTAT'] && isset($data->commandClasses->{"64"}->data->mode->value)) { //$value=$data->commandClasses->{"64"}->data->{$data->commandClasses->{"64"}->data->mode->value}->modeName->value; $rec['SENSOR_VALUE'] .= " Mode: " . $data->commandClasses->{"64"}->data->{$data->commandClasses->{"64"}->data->mode->value}->modeName->value . ';'; $value = $data->commandClasses->{"64"}->data->mode->value; if ($value != $rec['MODE_VALUE']) { $rec['MODE_VALUE'] = $value; $rec_updated = 1; } $command_classes['Thermostat mode'] = 64; $properties['Thermostat mode'] = $rec['MODE_VALUE']; $updatedList['Thermostat mode'] = $data->commandClasses->{"64"}->data->{"updateTime"}; if ($data->commandClasses->{"64"}->data->{"updateTime"} > $updateTime) { $updateTime = $data->commandClasses->{"64"}->data->{"updateTime"}; } $comments_str = ''; for ($i = 0; $i < 255; $i++) { if ($data->commandClasses->{"64"}->data->{$i}) { $comments_str .= "{$i} = " . $data->commandClasses->{"64"}->data->{$i}->modeName->value . "; "; } } $comments['Thermostat mode'] = $comments_str; if (isset($data->commandClasses->{"67"}->data)) { //ThermostatSetPoint for ($i = 0; $i < 255; $i++) { if ($data->commandClasses->{"67"}->data->{$i}->val) { $key = 'ThermostatSetPoint ' . $data->commandClasses->{"67"}->data->{$i}->modeName->value; $properties[$key] = $data->commandClasses->{"67"}->data->{$i}->val->value; $command_classes[$key] = 67; if ($data->commandClasses->{"67"}->data->{$i}->scaleString->value) { $comments[$key] = $data->commandClasses->{"67"}->data->{$i}->scaleString->value; } } } } if (isset($data->commandClasses->{"68"}->data->mode->value)) { //ThermostatFanMode $properties['ThermostatFanOn'] = (int) $data->commandClasses->{"68"}->data->on->value; $command_classes['ThermostatFanMode'] = 68; $properties['ThermostatFanMode'] = $data->commandClasses->{"68"}->data->mode->value; if ($data->commandClasses->{"68"}->data->{"updateTime"} > $updateTime) { $updateTime = $data->commandClasses->{"68"}->data->{"updateTime"}; } $rec['SENSOR_VALUE'] .= " Fan Mode: " . $data->commandClasses->{"68"}->data->{$data->commandClasses->{"68"}->data->mode->value}->modeName->value . ';'; $comments_str = ''; for ($i = 0; $i < 255; $i++) { if ($data->commandClasses->{"68"}->data->{$i}) { $comments_str .= "{$i} = " . $data->commandClasses->{"68"}->data->{$i}->modeName->value . "; "; } } $comments['ThermostatFanMode'] = $comments_str; } } if ($updateTime) { $properties['updateTime'] = $updateTime; $rec['LATEST_UPDATE'] = date('Y-m-d H:i:s', $properties['updateTime']); $rec_updated = 1; } if ($rec_updated) { SQLUpdate('zwave_devices', $rec); } foreach ($properties as $k => $v) { $prop = SQLSelectOne("SELECT * FROM zwave_properties WHERE DEVICE_ID='" . $rec['ID'] . "' AND UNIQ_ID LIKE '" . DBSafe($k) . "'"); $prop['DEVICE_ID'] = $rec['ID']; $prop['UNIQ_ID'] = $k; $prop['TITLE'] = $k; $prop['COMMAND_CLASS'] = $command_classes[$k]; if ($prop['VALUE'] != $v) { $prop['UPDATED'] = date('Y-m-d H:i:s'); } if ($updatedList[$k]) { $prop['UPDATED'] = date('Y-m-d H:i:s', $updatedList[$k]); } $prop['VALUE'] = $v; if ($comments[$k]) { $prop['COMMENTS'] = $comments[$k]; } if (is_numeric($prop['VALUE']) && $prop['VALUE'] !== '') { $prop['VALUE'] = round($prop['VALUE'], 3); } if ($prop['ID']) { SQLUpdate('zwave_properties', $prop); if ($prop['VALUE'] !== '') { $validated = 1; } else { $validated = 0; continue; } if ($prop['LINKED_OBJECT']) { if ($prop['CORRECT_VALUE']) { $prop['VALUE'] += (double) $prop['CORRECT_VALUE']; } } if ($prop['VALIDATE']) { if ((double) $prop['VALUE'] < (double) $prop['VALID_FROM'] || (double) $prop['VALUE'] > (double) $prop['VALID_TO']) { $validated = 0; } } if ($prop['LINKED_OBJECT'] && $prop['LINKED_PROPERTY'] && $validated) { $old_value = getGlobal($prop['LINKED_OBJECT'] . '.' . $prop['LINKED_PROPERTY']); if ($prop['VALUE'] != $old_value) { setGlobal($prop['LINKED_OBJECT'] . '.' . $prop['LINKED_PROPERTY'], $prop['VALUE'], array($this->name => '0')); } } if ($prop['LINKED_OBJECT'] && $prop['LINKED_METHOD'] && $validated && ($prop['VALUE'] != $old_value || !$prop['LINKED_PROPERTY'])) { $params = array(); $params['VALUE'] = $prop['VALUE']; callMethod($prop['LINKED_OBJECT'] . '.' . $prop['LINKED_METHOD'], $params); } } else { $prop['ID'] = SQLInsert('zwave_properties', $prop); } } //print_r($data);exit; }
$rec = array(); //$rec['ADDED'] = ($time) ? $time : date('Y-m-d H:i:s'); $rec['ADDED'] = date('Y-m-d H:i:s'); $rec['LAT'] = $_REQUEST['latitude']; $rec['LON'] = $_REQUEST['longitude']; $rec['ALT'] = round($_REQUEST['altitude'], 2); $rec['PROVIDER'] = $_REQUEST['provider']; $rec['SPEED'] = round($_REQUEST['speed'], 2); $rec['BATTLEVEL'] = $_REQUEST['battlevel']; $rec['CHARGING'] = (int) $_REQUEST['charging']; $rec['DEVICEID'] = $_REQUEST['deviceid']; $rec['ACCURACY'] = isset($_REQUEST['accuracy']) ? $_REQUEST['accuracy'] : 0; if ($device['ID']) { $rec['DEVICE_ID'] = $device['ID']; } $rec['ID'] = SQLInsert('gpslog', $rec); if ($device['USER_ID']) { $sqlQuery = "SELECT *\n FROM users\n WHERE ID = '" . $device['USER_ID'] . "'"; $user = SQLSelectOne($sqlQuery); if ($user['LINKED_OBJECT']) { setGlobal($user['LINKED_OBJECT'] . '.Coordinates', $rec['LAT'] . ',' . $rec['LON']); setGlobal($user['LINKED_OBJECT'] . '.CoordinatesUpdated', date('H:i')); setGlobal($user['LINKED_OBJECT'] . '.CoordinatesUpdatedTimestamp', time()); setGlobal($user['LINKED_OBJECT'] . '.BattLevel', $rec['BATTLEVEL']); setGlobal($user['LINKED_OBJECT'] . '.Charging', $rec['CHARGING']); $sqlQuery = "SELECT *\n FROM gpslog\n WHERE ID != '" . $rec['ID'] . "'\n AND DEVICE_ID = '" . $device['ID'] . "'\n ORDER BY ID DESC\n LIMIT 1"; $prev_log = SQLSelectOne($sqlQuery); if ($prev_log['ID']) { $distance = calculateTheDistance($rec['LAT'], $rec['LON'], $prev_log['LAT'], $prev_log['LON']); if ($distance > 100) { //we're moving
global $linked_object_new; global $linked_property_new; if ($oid_new) { $prec = array(); $prec['DEVICE_ID'] = $rec['ID']; $prec['OID'] = trim($oid_new); $prec['TITLE'] = trim($ptitle_new); $prec['TYPE'] = $type_new; //$prec['VALUE'] $prec['ONLINE_INTERVAL'] = (int) $pinterval_new; if ($prec['ONLINE_INTERVAL']) { $prec['CHECK_NEXT'] = date('Y-m-d H:i:s'); } $prec['LINKED_OBJECT'] = trim($linked_object_new); $prec['LINKED_PROPERTY'] = trim($linked_property_new); $prec['ID'] = SQLInsert('snmpproperties', $prec); } } $out['OK'] = 1; } else { $out['ERR'] = 1; } } //options for 'SCRIPT_ID' (select) $tmp = SQLSelect("SELECT ID, TITLE FROM scripts ORDER BY TITLE"); $scripts_total = count($tmp); for ($scripts_i = 0; $scripts_i < $scripts_total; $scripts_i++) { $script_id_opt[$tmp[$scripts_i]['ID']] = $tmp[$scripts_i]['TITLE']; } for ($i = 0; $i < count($tmp); $i++) { if ($rec['SCRIPT_ID'] == $tmp[$i]['ID']) {
// connecting to database $db = new mysql(DB_HOST, '', DB_USER, DB_PASSWORD, DB_NAME); include_once "./load_settings.php"; include_once DIR_MODULES . "control_modules/control_modules.class.php"; // ... set_time_limit(0); include_once DIR_MODULES . 'snmpdevices/snmpdevices.class.php'; $snmpdevices = new snmpdevices(); $socket = stream_socket_server("udp://0.0.0.0:162", $errno, $errstr, STREAM_SERVER_BIND); // If we could not bind successfully, let's throw an error if (!$socket) { die($errstr); } else { do { $pkt = stream_socket_recvfrom($socket, 512, 0, $peer); if (preg_match('/:\\d+$/', $peer, $m)) { $peer = str_replace($m[0], '', $peer); } echo date('Y-m-d H:i:s') . ' new snmp trap from ' . $peer . "\n"; $device = SQLSelectOne("SELECT ID FROM snmpdevices WHERE HOST LIKE '" . DBSafe($peer) . "'"); if ($device['ID']) { $snmpdevices->readDevice($device['ID']); } else { $device['TITLE'] = $peer; $device['HOST'] = $peer; $device['ID'] = SQLInsert('snmpdevices', $device); } } while ($pkt !== false); } $db->Disconnect(); // closing database connection
/** * BackEnd * * Module backend * * @access public */ function admin(&$out) { global $session; if (isset($this->data_source) && !$_GET['data_source'] && !$_POST['data_source']) { $out['SET_DATASOURCE']=1; } global $delete_room; if ($delete_room!='' && LOGGED_USER) { $room=SQLSelectOne("SELECT * FROM shoutrooms WHERE ID='".(int)$delete_room."' AND ADDED_BY=".(int)$session->data['logged_user']); if ($room['ID']) { SQLExec("DELETE FROM shouts WHERE ROOM_ID=".$room['ID']); SQLExec("DELETE FROM shoutrooms WHERE ID='".$room['ID']."'"); } unset($session->data['SHOUT_ROOM_ID']); $this->redirect("/chat.html"); } global $change_visibility; if ($change_visibility && LOGGED_USER) { $room=SQLSelectOne("SELECT * FROM shoutrooms WHERE ID='".(int)$change_visibility."' AND ADDED_BY=".LOGGED_USER_ID); if ($room['ID']) { $room['IS_PUBLIC'] = $room['IS_PUBLIC']?0:1; SQLUpdate('shoutrooms',$room); } $this->redirect("/chat/room".$room['ID'].'.html'); } if ($this->mode=='newroom' && $session->data['logged_user']) { $rec=array(); global $room_title; global $make_public; $rec['TITLE']=htmlspecialchars($room_title); $rec['ADDED_BY']=$session->data['logged_user']; $rec['ADDED']=date('Y-m-d H:i:s'); $rec['IS_PUBLIC']=(int)$make_public; if ($rec['TITLE']) { $rec['ID']=SQLInsert('shoutrooms', $rec); $this->redirect("/chat/room".$rec['ID'].'.html'); } } if ($this->data_source=='shouts' || $this->data_source=='') { if ($this->view_mode=='' || $this->view_mode=='search_shouts') { $this->search_shouts($out); } if ($this->view_mode=='delete_shouts') { $this->delete_shouts($this->id); $this->redirect("?"); } } }
} } //updating 'ONLINE_INTERVAL' (int) global $online_interval; $rec['ONLINE_INTERVAL'] = (int) $online_interval; //UPDATING RECORD if ($ok) { $rec['STATUS'] = 0; $rec['CHECK_LATEST'] = ''; $rec['CHECK_NEXT'] = date('Y-m-d H:i:s'); if ($rec['ID']) { SQLUpdate($table_name, $rec); // update } else { $new_rec = 1; $rec['ID'] = SQLInsert($table_name, $rec); // adding new record } $out['OK'] = 1; } else { $out['ERR'] = 1; } } if (is_array($rec)) { foreach ($rec as $k => $v) { if (!is_array($v)) { $rec[$k] = htmlspecialchars($v); } } } outHash($rec, $out);
/** * Title * * Description * * @access public */ function setProperty($property, $value, $no_linked = 0) { startMeasure('setProperty'); startMeasure('setProperty (' . $property . ')'); $id = $this->getPropertyByName($property, $this->class_id, $this->id); $old_value = ''; if ($id) { $prop = SQLSelectOne("SELECT * FROM properties WHERE ID='" . $id . "'"); $v = SQLSelectOne("SELECT * FROM pvalues WHERE PROPERTY_ID='" . (int) $id . "' AND OBJECT_ID='" . (int) $this->id . "'"); $old_value = $v['VALUE']; $v['VALUE'] = $value; if ($v['ID']) { $v['UPDATED'] = date('Y-m-d H:i:s'); if ($old_value != $value) { SQLUpdate('pvalues', $v); //DebMes("Setting [".$this->object_title.".".$property."] to new value [".$value."]"); } else { SQLExec("UPDATE pvalues SET UPDATED='" . $v['UPDATED'] . "' WHERE ID='" . $v['ID'] . "'"); //DebMes("Setting [".$this->object_title.".".$property."] to the same value [".$value."]"); } } else { $v['PROPERTY_ID'] = $id; $v['OBJECT_ID'] = $this->id; $v['VALUE'] = $value; $v['UPDATED'] = date('Y-m-d H:i:s'); $v['ID'] = SQLInsert('pvalues', $v); } //DebMes(" $id to $value "); } else { $prop = array(); $prop['OBJECT_ID'] = $this->id; $prop['TITLE'] = $property; $prop['ID'] = SQLInsert('properties', $prop); $v['PROPERTY_ID'] = $prop['ID']; $v['OBJECT_ID'] = $this->id; $v['VALUE'] = $value; $v['UPDATED'] = date('Y-m-d H:i:s'); $v['ID'] = SQLInsert('pvalues', $v); } if ($prop['KEEP_HISTORY'] > 0) { startMeasure('DeleteOldHistory'); SQLExec("DELETE FROM phistory WHERE VALUE_ID='" . $v['ID'] . "' AND TO_DAYS(NOW())-TO_DAYS(ADDED)>" . (int) $prop['KEEP_HISTORY']); endMeasure('DeleteOldHistory', 1); $h = array(); $h['VALUE_ID'] = $v['ID']; $h['ADDED'] = date('Y-m-d H:i:s'); $h['VALUE'] = $value; $h['ID'] = SQLInsert('phistory', $h); } /* $h=array(); $h['ADDED']=date('Y-m-d H:i:s'); $h['OBJECT_ID']=$this->id; $h['VALUE_ID']=$v['ID']; $h['OLD_VALUE']=$old_value; $h['NEW_VALUE']=$value; SQLInsert('history', $h); */ //commands, owproperties, snmpproperties, zwave_properties, mqtt $tables = array('commands', 'owproperties', 'snmpproperties', 'zwave_properties', 'mqtt', 'modbusdevices'); if (!is_array($no_linked) && $no_linked) { $no_linked = array(); foreach ($tables as $t) { $no_linked[$k] = '0'; } } elseif (is_array($no_linked)) { foreach ($tables as $t) { if (!isset($no_linked[$k])) { $no_linked[$k] = '1'; } } } else { $no_linked = array(); foreach ($tables as $t) { $no_linked[$k] = '1'; } } foreach ($tables as $t) { if ($no_linked[$t] == '') { $no_linked[$t] = '1'; } } if ($no_linked['commands'] != '') { $commands = SQLSelect("SELECT * FROM commands WHERE LINKED_OBJECT LIKE '" . DBSafe($this->object_title) . "' AND LINKED_PROPERTY LIKE '" . DBSafe($property) . "' AND " . $no_linked['commands']); $total = count($commands); for ($i = 0; $i < $total; $i++) { $commands[$i]['CUR_VALUE'] = $value; SQLUpdate('commands', $commands[$i]); } } if ($no_linked['owproperties'] != '' && file_exists(DIR_MODULES . '/onewire/onewire.class.php')) { $owp = SQLSelect("SELECT ID FROM owproperties WHERE LINKED_OBJECT LIKE '" . DBSafe($this->object_title) . "' AND LINKED_PROPERTY LIKE '" . DBSafe($property) . "' AND " . $no_linked['owproperties']); $total = count($owp); if ($total) { include_once DIR_MODULES . '/onewire/onewire.class.php'; $on_wire = new onewire(); for ($i = 0; $i < $total; $i++) { $on_wire->setProperty($owp[$i]['ID'], $value); } } } if ($no_linked['snmpproperties'] != '' && file_exists(DIR_MODULES . '/snmpdevices/snmpdevices.class.php')) { $snmpdevices = SQLSelect("SELECT ID FROM snmpproperties WHERE LINKED_OBJECT LIKE '" . DBSafe($this->object_title) . "' AND LINKED_PROPERTY LIKE '" . DBSafe($property) . "' AND " . $no_linked['snmpproperties']); $total = count($snmpdevices); if ($total) { include_once DIR_MODULES . '/snmpdevices/snmpdevices.class.php'; $snmp = new snmpdevices(); for ($i = 0; $i < $total; $i++) { $snmp->setProperty($snmpdevices[$i]['ID'], $value); } } } if ($no_linked['zwave_properties'] != '' && file_exists(DIR_MODULES . '/zwave/zwave.class.php')) { $zwave_properties = SQLSelect("SELECT ID FROM zwave_properties WHERE LINKED_OBJECT LIKE '" . DBSafe($this->object_title) . "' AND LINKED_PROPERTY LIKE '" . DBSafe($property) . "' AND " . $no_linked['zwave_properties']); $total = count($zwave_properties); if ($total) { include_once DIR_MODULES . '/zwave/zwave.class.php'; $zwave = new zwave(); for ($i = 0; $i < $total; $i++) { $zwave->setProperty($zwave_properties[$i]['ID'], $value); } } } if ($no_linked['mqtt'] != '' && file_exists(DIR_MODULES . '/mqtt/mqtt.class.php')) { $mqtt_properties = SQLSelect("SELECT ID FROM mqtt WHERE LINKED_OBJECT LIKE '" . DBSafe($this->object_title) . "' AND LINKED_PROPERTY LIKE '" . DBSafe($property) . "' AND " . $no_linked['mqtt']); $total = count($mqtt_properties); if ($total) { include_once DIR_MODULES . '/mqtt/mqtt.class.php'; $mqtt = new mqtt(); for ($i = 0; $i < $total; $i++) { $mqtt->setProperty($mqtt_properties[$i]['ID'], $value); } } } if ($no_linked['modbusdevices'] != '' && file_exists(DIR_MODULES . '/modbus/modbus.class.php')) { $modbusdevices = SQLSelect("SELECT ID FROM modbusdevices WHERE LINKED_OBJECT LIKE '" . DBSafe($this->object_title) . "' AND LINKED_PROPERTY LIKE '" . DBSafe($property) . "' AND " . $no_linked['modbusdevices']); $total = count($modbusdevices); if ($total) { include_once DIR_MODULES . '/modbus/modbus.class.php'; $modbus = new modbus(); for ($i = 0; $i < $total; $i++) { $modbus->poll_device($modbusdevices[$i]['ID']); } } } if ($prop['ONCHANGE']) { global $property_linked_history; if (!$property_linked_history[$property][$prop['ONCHANGE']]) { $property_linked_history[$property][$prop['ONCHANGE']] = 1; global $on_change_called; $params = array(); $params['PROPERTY'] = $property; $params['NEW_VALUE'] = (string) $value; $params['OLD_VALUE'] = (string) $old_value; $this->callMethod($prop['ONCHANGE'], $params); unset($property_linked_history[$property][$prop['ONCHANGE']]); } } endMeasure('setProperty (' . $property . ')', 1); endMeasure('setProperty', 1); }
} $table_name = 'app_quotes'; if ($this->mode == 'update') { global $file; if (file_exists($file)) { $tmp = LoadFile($file); $ok = 1; //$tmp=str_replace("\r", '', $tmp); $lines = mb_split("\n", $tmp); $total_lines = count($lines); for ($i = 0; $i < $total_lines; $i++) { //$values=explode("\t", $lines[$i]); $rec = array(); $rec_ok = 1; $rec['BODY'] = $lines[$i]; if ($rec['BODY'] == '') { $rec_ok = 0; } if ($rec_ok) { $old = SQLSelectOne("SELECT ID FROM " . $table_name . " WHERE BODY LIKE '" . DBSafe($rec['BODY']) . "'"); if ($old['ID']) { $rec['ID'] = $old['ID']; SQLUpdate($table_name, $rec); } else { SQLInsert($table_name, $rec); } $out["TOTAL"]++; } } } }
//UPDATE client SET DatePermis='" . $date_permis . "' WHERE idPersonne=" . $id; $start = str_replace("T", " ", $start); $end = str_replace("T", " ", $end); //UPDATE `pinf`.`choixsurplanning` SET `dateDebut` = '2015-02-04 09:10:00' WHERE `choixsurplanning`.`id` =21; $sql = "UPDATE choixsurplanning SET dateDebut ='{$start}', dateFin ='{$end}' WHERE id ={$id}"; $res = SQLUpdate($sql); } else { $res = "Problème d'update"; } echo $res; //echo($sql); break; case 'supprimerTout': $res = NULL; $sql = "DELETE FROM choixsurplanning"; $res = SQLInsert($sql); echo $res; break; /* *** FIN PLANNING *** */ /* *** PARTIE INFOS PRATIQUES *** */ /* Auteur : Maxence Delattre */ /* *** FIN PLANNING *** */ /* *** PARTIE INFOS PRATIQUES *** */ /* Auteur : Maxence Delattre */ case 'getFichierConseils': // On recupère le texte contenu dans le fichier conseils.txt pour l'afficher après dans la textarea $fp = fopen("conseils.txt", "r"); // Ouverture du fichier en lecture seule if ($fp) { // Si on a réussi à ouvrir le fichier while (!feof($fp)) {