|
14 | 14 | $out['NO_NAV'] = 1;
|
15 | 15 | }
|
16 | 16 |
|
17 |
| -if ($rec['LINKED_OBJECT']!='') { |
18 |
| - $object_rec = SQLSelectOne("SELECT ID FROM objects WHERE TITLE='".$rec['LINKED_OBJECT']."'"); |
| 17 | +if ($rec['LINKED_OBJECT'] != '') { |
| 18 | + $object_rec = SQLSelectOne("SELECT ID FROM objects WHERE TITLE='" . $rec['LINKED_OBJECT'] . "'"); |
19 | 19 | if ($object_rec['ID']) {
|
20 |
| - $properties = SQLSelect("SELECT pvalues.*, properties.TITLE as PROPERTY FROM pvalues LEFT JOIN properties ON properties.ID=pvalues.PROPERTY_ID WHERE pvalues.OBJECT_ID=".$object_rec['ID']." AND pvalues.LINKED_MODULES!='' ORDER BY UPDATED DESC"); |
| 20 | + $properties = SQLSelect("SELECT pvalues.*, properties.TITLE as PROPERTY FROM pvalues LEFT JOIN properties ON properties.ID=pvalues.PROPERTY_ID WHERE pvalues.OBJECT_ID=" . $object_rec['ID'] . " AND pvalues.LINKED_MODULES!='' ORDER BY UPDATED DESC"); |
21 | 21 | $total = count($properties);
|
22 |
| - if ($total>0) { |
23 |
| - for($i=0;$i<$total;$i++) { |
24 |
| - $linked_modules=explode(',',$properties[$i]['LINKED_MODULES']); |
25 |
| - $properties[$i]['VALUE']=htmlspecialchars($properties[$i]['VALUE']); |
26 |
| - $properties[$i]['LINKED_MODULES']=array(); |
27 |
| - foreach($linked_modules as $module) { |
28 |
| - $properties[$i]['LINKED_MODULES'][]=array('MODULE'=>$module,'PROPERTY'=>$properties[$i]['PROPERTY'],'OBJECT'=>$rec['LINKED_OBJECT']); |
| 22 | + if ($total > 0) { |
| 23 | + for ($i = 0; $i < $total; $i++) { |
| 24 | + $linked_modules = explode(',', $properties[$i]['LINKED_MODULES']); |
| 25 | + $properties[$i]['VALUE'] = htmlspecialchars($properties[$i]['VALUE']); |
| 26 | + $properties[$i]['LINKED_MODULES'] = array(); |
| 27 | + foreach ($linked_modules as $module) { |
| 28 | + $properties[$i]['LINKED_MODULES'][] = array('MODULE' => $module, 'PROPERTY' => $properties[$i]['PROPERTY'], 'OBJECT' => $rec['LINKED_OBJECT']); |
29 | 29 | }
|
30 |
| - $out['LINKED_PROPERTIES']=$properties; |
| 30 | + $out['LINKED_PROPERTIES'] = $properties; |
31 | 31 | }
|
32 | 32 | }
|
33 | 33 | }
|
|
67 | 67 |
|
68 | 68 | $method_name = gr('method');
|
69 | 69 | if (!$method_name) {
|
70 |
| - $method_name='logicAction'; |
| 70 | + $method_name = 'logicAction'; |
71 | 71 | }
|
72 | 72 |
|
73 |
| - $out['METHOD']=$method_name; |
| 73 | + $out['METHOD'] = $method_name; |
74 | 74 |
|
75 | 75 | $object = getObject($rec['LINKED_OBJECT']);
|
76 | 76 |
|
77 | 77 |
|
78 |
| - $methods = $object->getParentMethods($object->class_id,'',1); |
79 |
| - $total=count($methods); |
80 |
| - for($i=0;$i<$total;$i++) { |
81 |
| - if ($methods[$i]['TITLE']==$out['METHOD']) { |
82 |
| - $methods[$i]['SELECTED']=1; |
| 78 | + $methods = $object->getParentMethods($object->class_id, '', 1); |
| 79 | + $total = count($methods); |
| 80 | + for ($i = 0; $i < $total; $i++) { |
| 81 | + if ($methods[$i]['TITLE'] == $out['METHOD']) { |
| 82 | + $methods[$i]['SELECTED'] = 1; |
83 | 83 | }
|
84 |
| - if ($methods[$i]['DESCRIPTION']!='') { |
85 |
| - $methods[$i]['DESCRIPTION'] = $methods[$i]['TITLE'].' - '.$methods[$i]['DESCRIPTION']; |
| 84 | + if ($methods[$i]['DESCRIPTION'] != '') { |
| 85 | + $methods[$i]['DESCRIPTION'] = $methods[$i]['TITLE'] . ' - ' . $methods[$i]['DESCRIPTION']; |
86 | 86 | } else {
|
87 | 87 | $methods[$i]['DESCRIPTION'] = $methods[$i]['TITLE'];
|
88 | 88 | }
|
89 | 89 | }
|
90 |
| - $out['METHODS']=$methods; |
| 90 | + $out['METHODS'] = $methods; |
91 | 91 |
|
92 | 92 | $method_id = $object->getMethodByName($method_name, $object->class_id, $object->id);
|
93 | 93 |
|
|
100 | 100 | $method_rec['CALL_PARENT'] = 1;
|
101 | 101 | $method_rec['ID'] = SQLInsert('methods', $method_rec);
|
102 | 102 | }
|
103 |
| - |
104 |
| - if(defined('SETTINGS_CODEEDITOR_TURNONSETTINGS')) { |
105 |
| - $out['SETTINGS_CODEEDITOR_TURNONSETTINGS'] = SETTINGS_CODEEDITOR_TURNONSETTINGS; |
106 |
| - $out['SETTINGS_CODEEDITOR_UPTOLINE'] = SETTINGS_CODEEDITOR_UPTOLINE; |
107 |
| - $out['SETTINGS_CODEEDITOR_SHOWERROR'] = SETTINGS_CODEEDITOR_SHOWERROR; |
108 |
| - } |
109 |
| - |
| 103 | + |
| 104 | + if (defined('SETTINGS_CODEEDITOR_TURNONSETTINGS')) { |
| 105 | + $out['SETTINGS_CODEEDITOR_TURNONSETTINGS'] = SETTINGS_CODEEDITOR_TURNONSETTINGS; |
| 106 | + $out['SETTINGS_CODEEDITOR_UPTOLINE'] = SETTINGS_CODEEDITOR_UPTOLINE; |
| 107 | + $out['SETTINGS_CODEEDITOR_SHOWERROR'] = SETTINGS_CODEEDITOR_SHOWERROR; |
| 108 | + } |
| 109 | + |
110 | 110 | if ($this->mode == 'update') {
|
111 | 111 | global $code;
|
112 |
| - |
113 |
| - $old_code=$method_rec['CODE']; |
114 |
| - $method_rec['CODE'] = $code; |
115 |
| - |
| 112 | + |
| 113 | + $old_code = $method_rec['CODE']; |
| 114 | + $method_rec['CODE'] = $code; |
| 115 | + |
116 | 116 | $ok = 1;
|
117 | 117 | if ($method_rec['CODE'] != '') {
|
118 | 118 | $errors = php_syntax_error($method_rec['CODE']);
|
119 |
| - |
120 |
| - if ($errors) { |
121 |
| - $out['ERR_LINE'] = preg_replace('/[^0-9]/', '', substr(stristr($errors, 'php on line '), 0, 18))-2; |
122 |
| - $out['ERR_CODE'] = 1; |
123 |
| - $errorStr = explode('Parse error: ', htmlspecialchars(strip_tags(nl2br($errors)))); |
124 |
| - $errorStr = explode('Errors parsing', $errorStr[1]); |
125 |
| - $errorStr = explode(' in ', $errorStr[0]); |
126 |
| - //var_dump($errorStr); |
127 |
| - $out['ERRORS'] = $errorStr[0]; |
128 |
| - $out['ERR_FULL'] = $errorStr[0].' '.$errorStr[1]; |
129 |
| - $out['ERR_OLD_CODE'] = $old_code; |
130 |
| - $ok = 0; |
131 |
| - } |
| 119 | + |
| 120 | + if ($errors) { |
| 121 | + $out['ERR_LINE'] = preg_replace('/[^0-9]/', '', substr(stristr($errors, 'php on line '), 0, 18)) - 2; |
| 122 | + $out['ERR_CODE'] = 1; |
| 123 | + $errorStr = explode('Parse error: ', htmlspecialchars(strip_tags(nl2br($errors)))); |
| 124 | + $errorStr = explode('Errors parsing', $errorStr[1]); |
| 125 | + $errorStr = explode(' in ', $errorStr[0]); |
| 126 | + //var_dump($errorStr); |
| 127 | + $out['ERRORS'] = $errorStr[0]; |
| 128 | + $out['ERR_FULL'] = $errorStr[0] . ' ' . $errorStr[1]; |
| 129 | + $out['ERR_OLD_CODE'] = $old_code; |
| 130 | + $ok = 0; |
| 131 | + } |
132 | 132 | }
|
133 | 133 | if ($ok) {
|
134 | 134 | SQLUpdate('methods', $method_rec);
|
|
155 | 155 | if ($rec['LINKED_OBJECT'] && is_array($properties)) {
|
156 | 156 | $res_properties = array();
|
157 | 157 | $onchanges = array();
|
| 158 | + $apply_others = gr('apply_others'); |
158 | 159 | foreach ($properties as $k => $v) {
|
159 | 160 | if ($v['_CONFIG_TYPE']) {
|
160 | 161 | if ($this->mode == 'update') {
|
161 | 162 | global ${$k . '_value'};
|
162 | 163 | if (isset(${$k . '_value'})) {
|
163 | 164 | if (is_array(${$k . '_value'})) {
|
164 |
| - setGlobal($rec['LINKED_OBJECT'] . '.' . $k, implode(',',${$k . '_value'})); |
| 165 | + $value = implode(',', ${$k . '_value'}); |
165 | 166 | } else {
|
166 |
| - setGlobal($rec['LINKED_OBJECT'] . '.' . $k, trim(${$k . '_value'})); |
| 167 | + $value = trim(${$k . '_value'}); |
| 168 | + } |
| 169 | + setGlobal($rec['LINKED_OBJECT'] . '.' . $k, $value); |
| 170 | + if (is_array($apply_others)) { |
| 171 | + foreach($apply_others as $other_dev) { |
| 172 | + setGlobal($other_dev . '.' . $k, $value); |
| 173 | + } |
167 | 174 | }
|
168 | 175 | }
|
169 | 176 | $out['OK'] = 1;
|
|
176 | 183 | $v['CONFIG_TYPE'] = $v['_CONFIG_TYPE'];
|
177 | 184 | $v['VALUE'] = getGlobal($rec['LINKED_OBJECT'] . '.' . $k);
|
178 | 185 | if ($v['CONFIG_TYPE'] == 'select' || $v['CONFIG_TYPE'] == 'multi_select') {
|
179 |
| - $selected_options = explode(',',gg($rec['LINKED_OBJECT'] . '.' . $k)); |
| 186 | + $selected_options = explode(',', gg($rec['LINKED_OBJECT'] . '.' . $k)); |
180 | 187 | $tmp = explode(',', $v['_CONFIG_OPTIONS']);
|
181 | 188 | $total = count($tmp);
|
182 | 189 | for ($i = 0; $i < $total; $i++) {
|
|
188 | 195 | $title = $value;
|
189 | 196 | }
|
190 | 197 | $option = array('VALUE' => $value, 'TITLE' => $title);
|
191 |
| - if (in_array($value,$selected_options)) $option['SELECTED']=1; |
| 198 | + if (in_array($value, $selected_options)) $option['SELECTED'] = 1; |
192 | 199 | $v['OPTIONS'][] = $option;
|
193 | 200 | }
|
194 | 201 | } elseif ($v['CONFIG_TYPE'] == 'style_image') {
|
|
431 | 438 | $object_rec['DESCRIPTION'] = $rec['TITLE'];
|
432 | 439 | $object_rec['LOCATION_ID'] = $rec['LOCATION_ID'];
|
433 | 440 | $class_changed = 0;
|
434 |
| - |
| 441 | + |
435 | 442 | $class_2b_changed = 1;
|
436 | 443 | $tmp_class_id = $object_rec['CLASS_ID'];
|
437 |
| - while(IsSet($tmp_class_id)) { |
| 444 | + while (isset($tmp_class_id)) { |
438 | 445 | if ($tmp_class_id == $class_id) {
|
439 | 446 | $class_2b_changed = 0;
|
440 | 447 | break;
|
|
456 | 463 | }
|
457 | 464 |
|
458 | 465 | if ($added && is_array($type_details['PROPERTIES'])) {
|
459 |
| - foreach($type_details['PROPERTIES'] as $property=>$details) { |
460 |
| - if (IsSet($details['_CONFIG_DEFAULT'])) { |
461 |
| - setGlobal($object_rec['TITLE'] . '.'.$property, $details['_CONFIG_DEFAULT']); |
| 466 | + foreach ($type_details['PROPERTIES'] as $property => $details) { |
| 467 | + if (isset($details['_CONFIG_DEFAULT'])) { |
| 468 | + setGlobal($object_rec['TITLE'] . '.' . $property, $details['_CONFIG_DEFAULT']); |
462 | 469 | }
|
463 | 470 | }
|
464 | 471 | }
|
|
479 | 486 | $this->addDeviceToSourceTable($out['SOURCE_TABLE'], $out['SOURCE_TABLE_ID'], $rec['ID']);
|
480 | 487 | }
|
481 | 488 |
|
482 |
| - $this->homebridgeSync($rec['ID'],1); |
| 489 | + $this->homebridgeSync($rec['ID'], 1); |
483 | 490 |
|
484 | 491 | if ($added) {
|
485 | 492 | $this->redirect("?view_mode=edit_devices&id=" . $rec['ID'] . "&tab=settings");
|
|
499 | 506 | }
|
500 | 507 |
|
501 | 508 | if (!$rec['LOCATION_ID']) {
|
502 |
| - $rec['LOCATION_ID']=gr('location_id','int'); |
| 509 | + $rec['LOCATION_ID'] = gr('location_id', 'int'); |
503 | 510 | }
|
504 | 511 |
|
505 | 512 |
|
|
511 | 518 | if ($v['TITLE']) {
|
512 | 519 | $types[] = array('NAME' => $k, 'TITLE' => $v['TITLE']);
|
513 | 520 | }
|
514 |
| - if ($k==$rec['TYPE'] && $rec['TYPE']!='') { |
515 |
| - $out['TYPE_TITLE']=$v['TITLE']; |
| 521 | + if ($k == $rec['TYPE'] && $rec['TYPE'] != '') { |
| 522 | + $out['TYPE_TITLE'] = $v['TITLE']; |
516 | 523 | }
|
517 | 524 | }
|
518 | 525 |
|
|
533 | 540 | if ($rec['LOCATION_ID']) {
|
534 | 541 | $location_rec = SQLSelectOne("SELECT ID,TITLE FROM locations WHERE ID=" . $rec['LOCATION_ID']);
|
535 | 542 | $out['LOCATION_TITLE'] = processTitle($location_rec['TITLE']);
|
536 |
| - $other_devices = SQLSelect("SELECT ID, TITLE, ARCHIVED FROM devices WHERE LOCATION_ID=" . (int)$rec['LOCATION_ID']." ORDER BY TITLE"); |
| 543 | + $other_devices = SQLSelect("SELECT ID, TITLE, ARCHIVED FROM devices WHERE LOCATION_ID=" . (int)$rec['LOCATION_ID'] . " ORDER BY TITLE"); |
537 | 544 | $out['OTHER_DEVICES'] = $other_devices;
|
538 | 545 | }
|
539 | 546 |
|
540 | 547 | if ($rec['TYPE']) {
|
541 |
| - $other_devices_type = SQLSelect("SELECT ID, TITLE, ARCHIVED FROM devices WHERE TYPE='" . $rec['TYPE'] . "' ORDER BY TITLE"); |
| 548 | + $other_devices_type = SQLSelect("SELECT ID, TITLE, ARCHIVED, LINKED_OBJECT FROM devices WHERE TYPE='" . $rec['TYPE'] . "' ORDER BY TITLE"); |
542 | 549 | $out['OTHER_DEVICES_TYPE'] = $other_devices_type;
|
543 | 550 | }
|
0 commit comments