/** * Returns a filtered version of this booking. * * @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_booking($this, $filter); }
/** * @brief Retrieves booking data given a booking ID or booking object. * * @see sanitize_booking() for optional $filter values. Also, the parameter $booking * must be given as a variable, since it is passed by reference. * * @param int|BTB_Booking $booking Booking ID or BTB_Booking 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_Booking|array|null Type corresponding to $output on success or null on failure. * When $output is OBJECT, a `BTB_Booking` instance is returned. */ function btb_get_booking($booking, $output = OBJECT, $filter = 'raw') { if ($booking instanceof BTB_Booking) { $_booking = $booking; } elseif (is_object($booking)) { if (empty($booking->filter)) { $_booking = btb_sanitize_booking($booking, 'raw'); $_booking = new BTB_Booking($_booking); } elseif ('raw' == $booking->filter) { $_booking = new BTB_Booking($booking); } else { $_booking = BTB_Booking::get_instance($booking->ID); } } else { $_booking = BTB_Booking::get_instance($booking); } if (!$_booking) { return null; } $_booking = $_booking->filter($filter); if ($output == ARRAY_A) { return $_booking->to_array(); } elseif ($output == ARRAY_N) { return array_values($_booking->to_array()); } return $_booking; }