コード例 #1
0
/**
* @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;
}
コード例 #2
0
 /**
  * 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);
 }