/** * @brief Retrieves venue data given an venue ID or venue object. * * @see btb_sanitize_venue() for optional $filter values. Also, the parameter $venue * must be given as a variable, since it is passed by reference. * * @param int|BTB_Venue $venue Venue ID or BTB_Venue object. * @param string $output Optional, default is Object. Accepts OBJECT, ARRAY_A or ARRAY_N. * @param string $filter Optional. Type fo filter to apply. Accepts 'raw', 'edit', 'db', 'display', * 'attribute' or 'js'. Default 'raw'. * @return BTB_Venue|array|null Type corresponding to $output on success or null on failure. * When $output is OBJECT, a `BTB_Venue` instance is returned. */ function btb_get_venue($venue, $output = OBJECT, $filter = 'raw') { if ($venue instanceof BTB_Venue) { $_venue = $venue; } elseif (is_object($venue)) { if (empty($venue->filter)) { $_venue = btb_sanitize_venue($venue, 'raw'); $_venue = new BTB_Venue($_venue); } elseif ('raw' == $venue->filter) { $_venue = new BTB_Venue($venue); } else { $_venue = BTB_Venue::get_instance($venue->ID); } } else { $_venue = BTB_Venue::get_instance($venue); } if (!$_venue) { return null; } $_venue = $_venue->filter($filter); if ($output == ARRAY_A) { return $_venue->to_array(); } elseif ($output == ARRAY_N) { return array_values($_venue->to_array()); } return $_venue; }
/** * Returns a filtered version of this venue. * * @param string $filter The filter context. * @return self|array|bool|object|BTB_Booking */ public function filter($filter) { if ($this->filter == $filter) { return $this; } if ($filter == 'raw') { return self::get_instance($this->ID); } return btb_sanitize_venue($this, $filter); }