From aada54769ff2372ac754d5059d72fa13c8275b24 Mon Sep 17 00:00:00 2001 From: Isaac Connor Date: Sat, 23 Sep 2017 13:42:39 -0400 Subject: [PATCH] add a Group object --- web/includes/Group.php | 88 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 web/includes/Group.php diff --git a/web/includes/Group.php b/web/includes/Group.php new file mode 100644 index 000000000..887474f41 --- /dev/null +++ b/web/includes/Group.php @@ -0,0 +1,88 @@ + null, + 'Name' => '', + 'MonitorIds' => '', +); + + public function __construct( $IdOrRow=NULL ) { + $row = NULL; + if ( $IdOrRow ) { + if ( is_integer( $IdOrRow ) or is_numeric( $IdOrRow ) ) { + $row = dbFetchOne( 'SELECT * FROM Groups WHERE Id=?', NULL, array( $IdOrRow ) ); + if ( ! $row ) { + Error('Unable to load Group record for Id=' . $IdOrRow ); + } + } elseif ( is_array( $IdOrRow ) ) { + $row = $IdOrRow; + } else { + $backTrace = debug_backtrace(); + $file = $backTrace[1]['file']; + $line = $backTrace[1]['line']; + Error("Unknown argument passed to Group Constructor from $file:$line)"); + Error("Unknown argument passed to Group Constructor ($IdOrRow)"); + return; + } + } # end if isset($IdOrRow) + + if ( $row ) { + foreach ($row as $k => $v) { + $this->{$k} = $v; + } + } + } // end function __construct + + public function __call( $fn, array $args ) { + if ( count( $args ) ) { + $this->{$fn} = $args[0]; + } + if ( array_key_exists( $fn, $this ) ) { + return $this->{$fn}; + } else if ( array_key_exists( $fn, $this->defaults ) ) { + $this->{$fn} = $this->defaults{$fn}; + return $this->{$fn}; + } else { + + $backTrace = debug_backtrace(); + $file = $backTrace[1]['file']; + $line = $backTrace[1]['line']; + Warning( "Unknown function call Group->$fn from $file:$line" ); + } + } + + public static function find_all() { + $filters = array(); + $result = dbQuery( 'SELECT * FROM Groups ORDER BY Name'); + $results = $result->fetchALL(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE, 'Group' ); + foreach ( $results as $row => $obj ) { + $filters[] = $obj; + } + return $filters; + } + + public function delete() { + dbQuery( 'DELETE FROM Groups WHERE Id = ?', array($this->{'Id'}) ); + } # end function delete() + + public function set( $data ) { + foreach ($data as $k => $v) { + if ( is_array( $v ) ) { + $this->{$k} = $v; + } else if ( is_string( $v ) ) { + $this->{$k} = trim( $v ); + } else if ( is_integer( $v ) ) { + $this->{$k} = $v; + } else if ( is_bool( $v ) ) { + $this->{$k} = $v; + } else { + Error( "Unknown type $k => $v of var " . gettype( $v ) ); + $this->{$k} = $v; + } + } + } +} # end class + +?>