<tr> <td class="td_right"><label>user</label></td> <td height="20">:</td> <td><input name="user" type="text" size="15"></td> </tr> <tr> <tr> <td class="td_right"><label>password</label></td> <td height="20">:</td> <td><input name="password" type="password" size="15"></td> </tr> <tr> <tr> <td class="td_right"><label>group</label></td> <td height="25">:</td> <td><? echo sg('group'); ?></td> </tr> <tr> <td class="td_right"><label>alert</label></td> <td height="20">:</td> <td><input name="alert" type="checkbox"></td> </tr> <tr> <td class="td_right"><label>name</label></td> <td height="20">:</td> <td><input id="tc_ip" name="name" type="text" value="" size="15" readonly></td> </tr> <tr> <td class="td_right"><label>port</label></td> <td height="20">:</td> <td><input id="tp_ip" name="port" type="text" value="" size="7" readonly></td>
/** * 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("?"); } } }
function cf_edit_video() { global $PATH_THREAD; $id = $_POST['id']; $type = $_POST['t']; $group = $_POST['g']; $user_pass = `cat {$PATH_THREAD}/thread{$id}.conf | grep netcam_userpass | awk -F' ' '{print \$2}'`; $u_p = split(':', $user_pass); $u = $u_p[0]; $p = $u_p[1]; $read_dt = `cat {$PATH_THREAD}/thread{$id}.conf | head -1`; $dt_val = split(' ', $read_dt); $dt = $dt_val[1]; $on = `cat {$PATH_THREAD}/thread{$id}.conf | grep "#on_movie_start"`; $on = $on == '' ? 'checked' : ''; if ($type == "dev") { $html = '<form id="f_dev_' . $id . '"> <input type="hidden" name="id" value="' . $id . '"> <input type="hidden" name="type" value="dev"> <input type="hidden" name="action" value="edit"> <input type="hidden" name="g_old" value="' . $group . '"> <table class="table_0"> <tr> <td class="td_right"><label>device</label></td> <td height="20">:</td> <td> <input id="name_dev_' . $id . '" name="dev_ip" type="text" value="' . $dt . '"> <b> ex. </b> <font color="red"> /dev/video0</font> </td> </tr> <tr> <td class="td_right"><label>group</label></td> <td height="25">:</td> <td>' . sg("group", $group) . '</td> </tr> <tr> <td class="td_right"><label>alert</label></td> <td height="20">:</td> <td><input name="alert" type="checkbox" ' . $on . '></td> </tr> <tr> <td class="td_right"><label>name</label></td> <td height="20">:</td> <td><input name="name" type="text" value="CAMERA ' . $id . '" size="15" readonly></td> </tr> <tr> <td class="td_right"><label>port</label></td> <td height="20">:</td> <td><input name="port" type="text" value="100' . $id . '" size="7" readonly></td> </tr> <tr> <td height="20" colspan="2"></td> <td> <input type="button" class="button green small" value="Save" onclick="edit_video(\'f_dev_' . $id . '\',\'' . $id . '\')"> <input type="button" class="button red small" value="Cancel" onclick="$(\'#f_dev_' . $id . '\').remove()"> </td> </tr> </table> </form>'; } else { if ($type == "ip") { $html = '<form id="f_ip_' . $id . '"> <input type="hidden" name="id" value="' . $id . '"> <input type="hidden" name="type" value="ip"> <input type="hidden" name="action" value="edit"> <input type="hidden" name="g_old" value="' . $group . '"> <table class="table_0"> <tr> <td class="td_right_top"><label>url</label></td> <td height="20" class="td_top">:</td> <td> <textarea id="name_ip_' . $id . '" name="dev_ip"rows="2" cols="50">' . $dt . '</textarea> </td> </tr> <tr> <td class="td_right"><label>user</label></td> <td height="20">:</td> <td><input name="user" type="text" value="' . $u . '" size="15"></td> </tr> <tr> <tr> <td class="td_right"><label>password</label></td> <td height="20">:</td> <td><input name="password" type="password" value="' . $p . '" size="15"></td> </tr> <tr> <tr> <td class="td_right"><label>group</label></td> <td height="25">:</td> <td>' . sg("group", $group) . '</td> </tr> <tr> <td class="td_right"><label>alert</label></td> <td height="20">:</td> <td><input name="alert" type="checkbox" ' . $on . '></td> </tr> <tr> <td class="td_right"><label>name</label></td> <td height="20">:</td> <td><input name="name" type="text" value="CAMERA ' . $id . '" size="15" readonly></td> </tr> <tr> <td class="td_right"><label>port</label></td> <td height="20">:</td> <td><input name="port" type="text" value="100' . $id . '" size="7" readonly></td> </tr> <tr> <td height="20" colspan="2"></td> <td> <input type="button" class="button green small" value="Save" onclick="edit_video(\'f_ip_' . $id . '\',\'' . $id . '\')"> <input type="button" class="button red small" value="Cancel" onclick="$(\'#f_ip_' . $id . '\').remove()"> </td> </tr> </table> </form>'; } else { exit; } } echo $html; }
function updateDevice($id) { if (!defined('ONEWIRE_SERVER')) { return 0; } $rec = SQLSelectOne("SELECT * FROM owdevices WHERE ID='" . $id . "'"); if (!$rec['ID']) { return 0; } $ow = new OWNet(ONEWIRE_SERVER); $device = '/' . $rec['UDID']; $rec['CHECK_LATEST'] = date('Y-m-d H:i:s'); $rec['CHECK_NEXT'] = date('Y-m-d H:i:s', time() + (int) $rec['ONLINE_INTERVAL']); $old_status = $rec['STATUS']; $tmp = $ow->get($device, OWNET_MSG_DIR, false); if (!$tmp) { $rec['STATUS'] = 0; } else { $rec['STATUS'] = 1; } SQLUpdate('owdevices', $rec); if ($rec['STATUS'] != $old_status && ($rec['SCRIPT_ID'] || $rec['CODE'])) { $params = array(); $params['DEVICE'] = $device; $params['STATUS'] = $rec['STATUS']; $params['STATUS_CHANGED'] = 1; if ($rec['SCRIPT_ID']) { runScript($rec['SCRIPT_ID'], $params); } elseif ($rec['CODE']) { try { $code = $rec['CODE']; $success = eval($code); if ($success === false) { DebMes("Error in 1-wire action code: " . $code); } } catch (Exception $e) { DebMes('Error: exception ' . get_class($e) . ', ' . $e->getMessage() . '.'); } } } if (!$rec['STATUS']) { return 0; } $changed_values = array(); $changed = 0; $properties = explode(',', $tmp); $totalp = count($properties); for ($ip = 0; $ip < $totalp; $ip++) { $sysname = str_replace($device . '/', '', $properties[$ip]); //echo $properties[$ip]." (".$sysname."): "; $prec = SQLSelectOne("SELECT * FROM owproperties WHERE DEVICE_ID='" . $rec['ID'] . "' AND SYSNAME='" . DBSafe($sysname) . "'"); if (!$prec['ID']) { $prec['DEVICE_ID'] = $rec['ID']; $prec['SYSNAME'] = $sysname; $prec['PATH'] = $properties[$ip]; $prec['ID'] = SQLInsert('owproperties', $prec); } $old_value = $prec['VALUE']; $value = $ow->get($properties[$ip], OWNET_MSG_READ, false); if (is_null($value)) { $ow->get("/", OWNET_MSG_DIR, false); // hack. for some reason it didn't work correct without it on some devices $value = $ow->get($properties[$ip], OWNET_MSG_READ, false); } if (!is_null($value) && $old_value != $value) { // value updated $changed = 1; $changed_values[$prec['SYSNAME']] = array('OLD_VALUE' => $old_value, 'VALUE' => $prec['VALUE']); $prec['VALUE'] = $value; $prec['UPDATED'] = date('Y-m-d H:i:s'); SQLUpdate('owproperties', $prec); //$rec['LOG']=date('Y-m-d H:i:s')." ".$prec['SYSNAME'].": ".$prec['VALUE']."\n".$rec['LOG']; SQLUpdate('owdevices', $rec); if ($prec['LINKED_OBJECT'] && $prec['LINKED_PROPERTY']) { sg($prec['LINKED_OBJECT'] . '.' . $prec['LINKED_PROPERTY'], $prec['VALUE'], array('owproperties' => '0')); } } } if ($changed) { $params = $changed_values; $params['DEVICE'] = $device; if ($rec['SCRIPT_ID']) { runScript($rec['SCRIPT_ID'], $params); } elseif ($rec['CODE']) { try { $code = $rec['CODE']; $success = eval($code); if ($success === false) { DebMes("Error in code: " . $code); } } catch (Exception $e) { DebMes('Error: exception ' . get_class($e) . ', ' . $e->getMessage() . '.'); } } } }
/** * Install * * Module installation routine * * @access private */ function install() { subscribeToEvent($this->name, 'HOURLY'); $className = 'ya_traffic'; $objectName = array('yt_settings', 'yt_info'); $objDescription = array('Настройки', 'Информация о пробках'); /*$updCode = ;*/ $rec = SQLSelectOne("SELECT ID FROM classes WHERE TITLE LIKE '" . DBSafe($className) . "'"); if (!$rec['ID']) { $rec = array(); $rec['TITLE'] = $className; $rec['DESCRIPTION'] = 'Пробки от Яндекс'; $rec['ID'] = SQLInsert('classes', $rec); } for ($i = 0; $i < count($objectName); $i++) { $obj_rec = SQLSelectOne("SELECT ID FROM objects WHERE CLASS_ID='" . $rec['ID'] . "' AND TITLE LIKE '" . DBSafe($objectName[$i]) . "'"); if (!$obj_rec['ID']) { $obj_rec = array(); $obj_rec['CLASS_ID'] = $rec['ID']; $obj_rec['TITLE'] = $objectName[$i]; $obj_rec['DESCRIPTION'] = $objDescription[$i]; $obj_rec['ID'] = SQLInsert('objects', $obj_rec); } } addClassMethod('ya_traffic', 'update', 'include_once(DIR_MODULES."app_yatraffic/app_yatraffic.class.php"); $app_yatraffic=new app_yatraffic(); $app_yatraffic->get_traffic(gg("yt_settings.reg_id"));'); $data_file = 'https://export.yandex.ru/bar/reginfo.xml'; $xml = simplexml_load_file($data_file); sg('yt_settings.reg_id', $xml->region['id']); parent::install(); }
/** * BackEnd * * Module backend * * @access public */ function admin(&$out) { global $ajax; if ($ajax) { global $op; global $item_id; 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']) { $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('commands' => 'ID!=' . $item['ID'])); //DebMes("setting property ".$item['LINKED_OBJECT'].".".$item['LINKED_PROPERTY']." to ".$item['CUR_VALUE']); } $params = array('VALUE' => $item['CUR_VALUE']); if (isset($old_value)) { $params['OLD_VALUE'] = $old_value; } if ($item['ONCHANGE_METHOD'] != '') { getObject($item['ONCHANGE_OBJECT'])->callMethod($item['ONCHANGE_METHOD'], $params); //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); } } catch (Exception $e) { DebMes('Error: exception ' . 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 == '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("?"); } } }
/** * BackEnd * * Module backend * * @access public */ function admin(&$out) { global $ajax; if ($ajax) { global $op; global $item_id; if ($op=='get_label') { $item=SQLSelectOne("SELECT * FROM commands WHERE ID='".(int)$item_id."'"); if ($item['ID']) { if ($item['TYPE']=='custom') { echo processTitle($item['DATA'], $this); } else { echo processTitle($item['TITLE'], $this); } exit; } } if ($op=='get_value') { $item=SQLSelectOne("SELECT * FROM commands WHERE ID='".(int)$item_id."'"); if ($item['ID']) { echo $item['CUR_VALUE']; exit; } } if ($op=='value_changed') { global $new_value; $item=SQLSelectOne("SELECT * FROM commands WHERE ID='".(int)$item_id."'"); if ($item['ID']) { $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'], 1); //DebMes("setting property ".$item['LINKED_OBJECT'].".".$item['LINKED_PROPERTY']." to ".$item['CUR_VALUE']); } $params=array('VALUE'=>$item['CUR_VALUE']); if (isSet($old_value)) { $params['OLD_VALUE']=$old_value; } if ($item['ONCHANGE_METHOD']!='') { getObject($item['ONCHANGE_OBJECT'])->callMethod($item['ONCHANGE_METHOD'], $params); //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"); eval($item['CODE']); } } 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') { $this->search_commands($out); } if ($this->view_mode=='edit_commands') { $this->edit_commands($out, $this->id); } if ($this->view_mode=='delete_commands') { $this->delete_commands($this->id); $this->redirect("?"); } } }