summaryrefslogtreecommitdiffstats
path: root/modules-available/statistics/inc/statistics.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'modules-available/statistics/inc/statistics.inc.php')
-rw-r--r--modules-available/statistics/inc/statistics.inc.php40
1 files changed, 40 insertions, 0 deletions
diff --git a/modules-available/statistics/inc/statistics.inc.php b/modules-available/statistics/inc/statistics.inc.php
new file mode 100644
index 00000000..1c9ebf07
--- /dev/null
+++ b/modules-available/statistics/inc/statistics.inc.php
@@ -0,0 +1,40 @@
+<?php
+
+
+
+class Statistics
+{
+
+ private static $machineFields = false;
+
+ /**
+ * @param string $machineuuid
+ * @param int $returnData
+ * @return \Machine|false
+ */
+ public static function getMachine($machineuuid, $returnData)
+ {
+ if (self::$machineFields === false) {
+ $r = new ReflectionClass('Machine');
+ $props = $r->getProperties(ReflectionProperty::IS_PUBLIC);
+ self::$machineFields = array_flip(array_map(function($e) { return $e->getName(); }, $props));
+ }
+ if ($returnData === Machine::NO_DATA) {
+ unset(self::$machineFields['data']);
+ } elseif ($returnData === Machine::RAW_DATA) {
+ self::$machineFields['data'] = true;
+ } else {
+ Util::traceError('Invalid $returnData option passed');
+ }
+ $fields = implode(',', array_keys(self::$machineFields));
+ $row = Database::queryFirst("SELECT * FROM machine WHERE machineuuid = :machineuuid", compact('machineuuid'));
+ if ($row === false)
+ return false;
+ $m = new Machine();
+ foreach ($row as $key => $val) {
+ $m->{$key} = $val;
+ }
+ return $m;
+ }
+
+}