/**
  *		This function is a singleton method used to instantiate the EEM_Attendee object
  *
  *		@access public
  *		@return EEM_Question_Group instance
  */
 public static function instance()
 {
     // check if instance of EEM_Attendee already exists
     if (self::$_instance === NULL) {
         // instantiate Espresso_model
         self::$_instance = new self();
     }
     // EEM_Attendee object
     return self::$_instance;
 }
 /**
  *    posts_join_for_orderby
  *    usage:  $SQL .= EEH_Event_Query::posts_join_for_orderby( $orderby_params );
  *
  * @access    public
  * @param    array $orderby_params
  * @return    string
  */
 public static function posts_join_for_orderby($orderby_params = array())
 {
     $SQL = '';
     global $wpdb;
     foreach ((array) $orderby_params as $orderby) {
         switch ($orderby) {
             case 'ticket_start':
             case 'ticket_end':
                 $SQL .= ' LEFT JOIN ' . EEM_Datetime_Ticket::instance()->table() . ' ON (' . EEM_Datetime::instance()->table() . '.DTT_ID = ' . EEM_Datetime_Ticket::instance()->table() . '.DTT_ID )';
                 $SQL .= ' LEFT JOIN ' . EEM_Ticket::instance()->table() . ' ON (' . EEM_Datetime_Ticket::instance()->table() . '.TKT_ID = ' . EEM_Ticket::instance()->table() . '.TKT_ID )';
                 break;
             case 'venue_title':
             case 'city':
                 $SQL .= ' LEFT JOIN ' . EEM_Event_Venue::instance()->table() . ' ON (' . $wpdb->posts . '.ID = ' . EEM_Event_Venue::instance()->table() . '.EVT_ID )';
                 $SQL .= ' LEFT JOIN ' . EEM_Venue::instance()->table() . ' ON (' . EEM_Event_Venue::instance()->table() . '.VNU_ID = ' . EEM_Venue::instance()->table() . '.VNU_ID )';
                 break;
             case 'state':
                 $SQL .= ' LEFT JOIN ' . EEM_Event_Venue::instance()->table() . ' ON (' . $wpdb->posts . '.ID = ' . EEM_Event_Venue::instance()->table() . '.EVT_ID )';
                 $SQL .= ' LEFT JOIN ' . EEM_Event_Venue::instance()->second_table() . ' ON (' . EEM_Event_Venue::instance()->table() . '.VNU_ID = ' . EEM_Event_Venue::instance()->second_table() . '.VNU_ID )';
                 break;
                 break;
         }
     }
     return $SQL;
 }
 /**
  *    _posts_join_for_event_venue
  *
  * @access    protected
  * @param string $SQL
  * @return string
  */
 protected static function _posts_join_for_event_venue($SQL = '')
 {
     // Event Venue table name
     $event_venue_table = EEM_Event_Venue::instance()->table();
     // generate conditions for:  Event <=> Event Venue  JOIN clause
     $event_to_event_venue_join = EEM_Event::instance()->table() . '.ID = ' . $event_venue_table . '.' . EEM_Event::instance()->primary_key_name();
     // don't add joins if they have already been added
     if (strpos($SQL, $event_to_event_venue_join) === FALSE) {
         // Venue table name
         $venue_table = EEM_Venue::instance()->table();
         // Venue table pk
         $venue_table_pk = EEM_Venue::instance()->primary_key_name();
         // Venue Meta table name
         $venue_meta_table = EEM_Venue::instance()->second_table();
         // generate JOIN clause for: Event <=> Event Venue
         $venue_SQL = " LEFT JOIN {$event_venue_table} ON ( {$event_to_event_venue_join} )";
         // generate JOIN clause for: Event Venue <=> Venue
         $venue_SQL .= " LEFT JOIN {$venue_table} as Venue ON ( {$event_venue_table}.{$venue_table_pk} = Venue.ID )";
         // generate JOIN clause for: Venue <=> Venue Meta
         $venue_SQL .= " LEFT JOIN {$venue_meta_table} ON ( Venue.ID = {$venue_meta_table}.{$venue_table_pk} )";
         unset($event_venue_table, $event_to_event_venue_join, $venue_table, $venue_table_pk, $venue_meta_table);
         return $venue_SQL;
     }
     unset($event_venue_table, $event_to_event_venue_join);
     return '';
 }