Example #1
0
/**
* Title
*
* Description
*
* @access public
*/
function getObjectsByClass($class_name)
{
    $class_record = SQLSelectOne("SELECT ID FROM classes WHERE TITLE LIKE '" . DBSafe(trim($class_name)) . "'");
    if (!$class_record['ID']) {
        return 0;
    }
    $objects = SQLSelect("SELECT ID, TITLE FROM objects WHERE CLASS_ID='" . $class_record['ID'] . "'");
    $sub_classes = SQLSelect("SELECT ID, TITLE FROM classes WHERE PARENT_ID='" . $class_record['ID'] . "'");
    if ($sub_classes[0]['ID']) {
        $total = count($sub_classes);
        for ($i = 0; $i < $total; $i++) {
            $sub_objects = getObjectsByClass($sub_classes[$i]['TITLE']);
            if ($sub_objects[0]['ID']) {
                foreach ($sub_objects as $obj) {
                    $objects[] = $obj;
                }
            }
        }
    }
    /*
    $total=count($objects);
    for($i=0;$i<$total;$i++) {
     $objects[$i]=getObject($objects[$i]['TITLE'])
    }
    */
    return $objects;
}
Example #2
0
/**
 * Summary of cycleBody
 * @return void
 */
function cycleBody()
{
    // check main system states
    $objects = getObjectsByClass('systemStates');
    $total = count($objects);
    for ($i = 0; $i < $total; $i++) {
        $oldState = getGlobal($objects[$i]['TITLE'] . '.stateColor');
        callMethod($objects[$i]['TITLE'] . '.checkState');
        $newState = getGlobal($objects[$i]['TITLE'] . '.stateColor');
        if ($newState != $oldState) {
            echo $objects[$i]['TITLE'] . " state changed to " . $newState . PHP_EOL;
            $params = array('STATE' => $newState);
            callMethod($objects[$i]['TITLE'] . '.stateChanged', $params);
        }
    }
}
        }
    }
    $session->data['commands_sort'] = $sortby;
}
$sortby = "PRIORITY DESC, TITLE";
$out['SORTBY'] = $sortby;
// SEARCH RESULTS
$res = SQLSelect("SELECT * FROM commands WHERE {$qry} ORDER BY {$sortby}");
if ($res[0]['ID']) {
    if ($this->action != 'admin') {
        $dynamic_res = array();
        $total = count($res);
        for ($i = 0; $i < $total; $i++) {
            if ($res[$i]['SMART_REPEAT'] && $res[$i]['LINKED_OBJECT']) {
                $obj = getObject($res[$i]['LINKED_OBJECT']);
                $objects = getObjectsByClass($obj->class_id);
                $total_o = count($objects);
                for ($io = 0; $io < $total_o; $io++) {
                    $rec = $res[$i];
                    $rec['ID'] = $res[$i]['ID'] . '_' . $objects[$io]['ID'];
                    $rec['LINKED_OBJECT'] = $objects[$io]['TITLE'];
                    $rec['DATA'] = str_replace('%' . $res[$i]['LINKED_OBJECT'] . '.', '%' . $rec['LINKED_OBJECT'] . '.', $rec['DATA']);
                    $rec['CUR_VALUE'] = getGlobal($rec['LINKED_OBJECT'] . '.' . $rec['LINKED_PROPERTY']);
                    $rec['TITLE'] = $objects[$io]['TITLE'];
                    $dynamic_res[] = $rec;
                }
            } else {
                $dynamic_res[] = $res[$i];
            }
        }
        $res = $dynamic_res;
Example #4
0
         // update
         if (!$rec['KEEP_HISTORY']) {
             $pvalues = SQLSelect("SELECT * FROM pvalues WHERE PROPERTY_ID='" . $rec['ID'] . "'");
             $total = count($pvalues);
             for ($i = 0; $i < $total; $i++) {
                 SQLExec("DELETE FROM phistory WHERE VALUE_ID='" . $pvalues[$i]['ID'] . "'");
             }
         }
     } else {
         $new_rec = 1;
         $rec['ID'] = SQLInsert($table_name, $rec);
         // adding new record
     }
     $out['OK'] = 1;
     if ($rec['CLASS_ID']) {
         $objects = getObjectsByClass($rec['CLASS_ID']);
         $total = count($objects);
         $replaces = array();
         for ($i = 0; $i < $total; $i++) {
             $property = SQLSelectOne("SELECT ID FROM properties WHERE TITLE LIKE '" . DBSafe($rec['TITLE']) . "' AND OBJECT_ID=" . (int) $objects[$i]['ID'] . " AND CLASS_ID!=" . (int) $rec['CLASS_ID']);
             if ($property['ID']) {
                 $replaces[] = $property['ID'];
             }
         }
         $total = count($replaces);
         for ($i = 0; $i < $total; $i++) {
             SQLExec("UPDATE pvalues SET PROPERTY_ID=" . (int) $rec['ID'] . " WHERE PROPERTY_ID=" . (int) $replaces[$i]);
             SQLExec("DELETE FROM properties WHERE ID=" . (int) $replaces[$i]);
         }
     }
 } else {
Example #5
0
 /**
 * FrontEnd
 *
 * Module frontend
 *
 * @access public
 */
 function usual(&$out)
 {
     if ($this->class) {
         $objects = getObjectsByClass($this->class);
         if (!$this->code) {
             $template = '#title# <i>#description#</i><br/>';
         } else {
             $template = $this->code;
         }
         $result = '';
         if ($objects[0]['ID']) {
             $total = count($objects);
             for ($i = 0; $i < $total; $i++) {
                 $objects[$i] = SQLSelectOne("SELECT * FROM objects WHERE ID='" . $objects[$i]['ID'] . "'");
                 $line = $template;
                 $line = preg_replace('/\\#title\\#/is', $objects[$i]['TITLE'], $line);
                 $line = preg_replace('/\\#description\\#/is', $objects[$i]['DESCRIPTION'], $line);
                 if (preg_match_all('/\\#([\\w\\d_-]+?)\\#/is', $line, $m)) {
                     $totalm = count($m[0]);
                     for ($im = 0; $im < $totalm; $im++) {
                         $property = trim($objects[$i]['TITLE'] . '.' . $m[1][$im]);
                         $line = str_replace($m[0][$im], getGlobal($property), $line);
                     }
                 }
                 $result .= $line;
             }
         }
         $out['RESULT'] = $result;
     }
 }
Example #6
0
 /**
 * Title
 *
 * Description
 *
 * @access public
 */
 function getDynamicElements($qry = '1')
 {
     $elements = SQLSelect("SELECT elements.* FROM elements, scenes WHERE elements.SCENE_ID=scenes.ID AND {$qry} ORDER BY PRIORITY DESC, TITLE");
     $totale = count($elements);
     $res2 = array();
     for ($ie = 0; $ie < $totale; $ie++) {
         $states = SQLSelect("SELECT elm_states.*,elements.TYPE  FROM elm_states, elements WHERE elm_states.ELEMENT_ID=elements.ID AND ELEMENT_ID='" . $elements[$ie]['ID'] . "' ORDER BY elm_states.PRIORITY DESC, elm_states.TITLE");
         if ($elements[$ie]['SMART_REPEAT'] && !$this->action == 'admin') {
             $linked_object = '';
             if ($states[0]['LINKED_OBJECT']) {
                 $linked_object = $states[0]['LINKED_OBJECT'];
             } elseif ($states[0]['ACTION_OBJECT']) {
                 $linked_object = $states[0]['ACTION_OBJECT'];
             }
             if ($linked_object) {
                 $obj = getObject($linked_object);
                 $objects = getObjectsByClass($obj->class_id);
                 $total_o = count($objects);
                 for ($io = 0; $io < $total_o; $io++) {
                     $rec = $elements[$ie];
                     $rec['ID'] = $elements[$ie] . '_' . $objects[$io]['ID'];
                     $new_states = array();
                     $total_s = count($states);
                     for ($is = 0; $is < $total_s; $is++) {
                         $state_rec = $states[$is];
                         if ($state_rec['LINKED_OBJECT']) {
                             $state_rec['LINKED_OBJECT'] = $objects[$io]['TITLE'];
                         }
                         if ($state_rec['ACTION_OBJECT']) {
                             $state_rec['ACTION_OBJECT'] = $objects[$io]['TITLE'];
                         }
                         if ($state_rec['HTML']) {
                             $state_rec['HTML'] = str_replace('%' . $linked_object . '.', '%' . $objects[$io]['TITLE'] . '.', $state_rec['HTML']);
                         }
                         $state_rec['ID'] = $state_rec['ID'] . '_' . $objects[$io]['ID'];
                         $new_states[] = $state_rec;
                     }
                     $rec['STATES'] = $new_states;
                     $res2[] = $rec;
                 }
             } else {
                 $elements[$ie]['STATES'] = $states;
                 $elements[$ie]['SMART_REPEAT'] = 0;
                 $res2[] = $elements[$ie];
             }
         } else {
             $elements[$ie]['STATES'] = $states;
             $res2[] = $elements[$ie];
         }
     }
     return $res2;
 }
Example #7
0
 function getDynamicElements($qry = 1)
 {
     $res = SQLSelect("SELECT * FROM commands WHERE {$qry} ORDER BY PRIORITY DESC, TITLE");
     $dynamic_res = array();
     $total = count($res);
     for ($i = 0; $i < $total; $i++) {
         if ($res[$i]['SMART_REPEAT'] && $res[$i]['LINKED_OBJECT']) {
             $obj = getObject($res[$i]['LINKED_OBJECT']);
             $objects = getObjectsByClass($obj->class_id);
             $total_o = count($objects);
             for ($io = 0; $io < $total_o; $io++) {
                 $rec = $res[$i];
                 $rec['ID'] = $res[$i]['ID'] . '_' . $objects[$io]['ID'];
                 $rec['LINKED_OBJECT'] = $objects[$io]['TITLE'];
                 $rec['DATA'] = str_replace('%' . $res[$i]['LINKED_OBJECT'] . '.', '%' . $rec['LINKED_OBJECT'] . '.', $rec['DATA']);
                 $rec['CUR_VALUE'] = getGlobal($rec['LINKED_OBJECT'] . '.' . $rec['LINKED_PROPERTY']);
                 $rec['TITLE'] = $objects[$io]['TITLE'];
                 $dynamic_res[] = $rec;
             }
         } else {
             $dynamic_res[] = $res[$i];
         }
     }
     $res = $dynamic_res;
     return $res;
 }
Example #8
0
/**
 * Summary of getObjectsByClass
 * @param mixed $class_name Class name
 * @return array|int
 */
function getObjectsByClass($class_name)
{
    $sqlQuery = "SELECT ID\n                  FROM classes\n                 WHERE (TITLE LIKE '" . DBSafe(trim($class_name)) . "'\n                        OR ID = " . (int) $class_name . "\n                       )";
    $class_record = SQLSelectOne($sqlQuery);
    if (!$class_record['ID']) {
        return 0;
    }
    $sqlQuery = "SELECT ID, TITLE\n                  FROM objects\n                 WHERE CLASS_ID = '" . $class_record['ID'] . "'";
    $objects = SQLSelect($sqlQuery);
    $sqlQuery = "SELECT ID, TITLE\n                  FROM classes WHERE PARENT_ID = '" . $class_record['ID'] . "'";
    $sub_classes = SQLSelect($sqlQuery);
    if (isset($sub_classes[0]['ID'])) {
        $total = count($sub_classes);
        for ($i = 0; $i < $total; $i++) {
            $sub_objects = getObjectsByClass($sub_classes[$i]['TITLE']);
            if (isset($sub_objects[0]['ID'])) {
                foreach ($sub_objects as $obj) {
                    $objects[] = $obj;
                }
            }
        }
    }
    /*
       $total=count($objects);
       for($i=0;$i<$total;$i++) {
       $objects[$i]=getObject($objects[$i]['TITLE'])
       }
    */
    return $objects;
}