public function get_file_name()
 {
     $type = $this->get_file_extension();
     if (!$this->_event_id) {
         return 'Events Collection.' . $type;
     }
     $event = new Eab_EventModel(get_post($this->_event_id));
     return preg_replace('/[^-_a-z0-9 ]/i', '-', $event->get_title()) . '.' . $type;
 }
<?php 
the_post();
$start_day = date_i18n('m', strtotime(get_post_meta($post->ID, 'incsub_event_start', true)));
?>
	<div id="primary">
		<div id="content" role="main">

<div class="event <?php 
echo Eab_Template::get_status_class($post);
?>
" id="wpmudevevents-wrapper">
	<div id="wpmudevents-single">
		<div class="wpmudevevents-header">
			<h2><?php 
echo $event->get_title();
?>
</h2><br />
			<div class="wpmudevevents-contentmeta" style="clear:both">
				<?php 
echo Eab_Template::get_event_details($event);
?>
			</div>
		</div>
		<?php 
echo Eab_Template::get_error_notice();
?>
		<div id="wpmudevevents-left">
			<div id="wpmudevevents-tickets" class="wpmudevevents-box">
				<?php 
if ($event->is_premium() && $event->user_is_coming() && !$event->user_paid()) {
 public function json_import_nearby_events()
 {
     $data = stripslashes_deep($_POST);
     $lat = (double) $data['lat'];
     $lng = (double) $data['lng'];
     if (empty($lat) || empty($lng)) {
         wp_send_json(array('status' => 0, 'msg' => __('Invalid location', Eab_EventsHub::TEXT_DOMAIN)));
     }
     $events = $this->_meetup->get_nearby_events($lat, $lng, 100);
     if (empty($events) || empty($events['results'])) {
         wp_send_json(array('status' => 1, 'msg' => __('There were no events to import', Eab_EventsHub::TEXT_DOMAIN)));
     }
     $imported = $this->_import_events($events);
     if (empty($imported)) {
         wp_send_json(array('status' => 0, 'msg' => __('No events imported.', Eab_EventsHub::TEXT_DOMAIN)));
     }
     $result = array();
     foreach ($imported as $event_id) {
         if (empty($event_id)) {
             continue;
         }
         $event = new Eab_EventModel(get_post($event_id));
         $result[] = '<a href="' . admin_url('post.php?action=edit&post=' . $event->get_id()) . '">' . $event->get_title() . '</a>';
     }
     $result[] = sprintf(__('%s events successfully imported', Eab_EventsHub::TEXT_DOMAIN), count($result));
     wp_send_json(array('status' => 1, 'msg' => join('<br />', $result)));
 }
 private function _edit_event_form($event_id)
 {
     add_action('get_footer', array($this, 'enqueue_dependency_data'));
     $post = $event_id ? get_post($event_id) : false;
     $event = new Eab_EventModel($post);
     $this->_enqueue_dependencies();
     $style = $event->get_id() ? '' : 'style="display:none"';
     $ret .= '<div id="eab-events-fpe">';
     $ret .= '<a id="eab-events-fpe-back_to_event" href="' . get_permalink($event->get_id()) . '" ' . $style . '>' . __('Back to Event', Eab_EventsHub::TEXT_DOMAIN) . '</a>';
     $ret .= '<input type="hidden" id="eab-events-fpe-event_id" value="' . (int) $event->get_id() . '" />';
     $ret .= '<div>';
     $ret .= '<label>' . __('Title', Eab_EventsHub::TEXT_DOMAIN) . '</label>';
     $ret .= '<br /><input type="text" name="" id="eab-events-fpe-event_title" value="' . esc_attr($event->get_title()) . '" />';
     $ret .= '</div>';
     $ret .= '<div id="fpe-editor"></div>';
     $ret .= $this->_get_event_meta_boxes($event);
     $ret .= '</div>';
     return $ret;
 }
 function post_twitter_update($event_id, $user_id)
 {
     $tw = get_user_meta($user_id, '_eab_tw', true);
     if (!$tw) {
         return false;
     }
     // Can't post this
     if (!$tw['id']) {
         return false;
     }
     // No profile id
     if (!$tw['token']) {
         return false;
     }
     // No access_token
     //die(var_export($tw));
     $event = new Eab_EventModel(get_post($event_id));
     if ($event->get_meta('_eab-social_rsvp-twitter-' . $user_id)) {
         return false;
     }
     // Already posted
     if (!class_exists('TwitterOAuth')) {
         include_once EAB_PLUGIN_DIR . 'lib/twitteroauth/twitteroauth.php';
     }
     $twitter = new TwitterOAuth($this->_data->get_option('twitter-app_id'), $this->_data->get_option('twitter-app_secret'), $tw['token']['oauth_token'], $tw['token']['oauth_token_secret']);
     $send = array('status' => substr(sprintf("I'm going to %s!", $event->get_title()) . ' ' . get_permalink($event_id), 0, 140));
     try {
         $resp = $twitter->post('statuses/update', $send);
     } catch (Exception $e) {
         return false;
     }
     $event->set_meta('_eab-social_rsvp-twitter-' . $user_id, $resp->id);
 }
 function manage_posts_custom_column($column)
 {
     global $post;
     switch ($column) {
         case "attendees":
             global $wpdb;
             $event = $post instanceof Eab_EventModel ? $post : new Eab_EventModel($post);
             $yes = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM " . Eab_EventsHub::tablename(Eab_EventsHub::BOOKING_TABLE) . " WHERE event_id = %d AND status = %s;", $event->get_id(), Eab_EventModel::BOOKING_YES));
             $no = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM " . Eab_EventsHub::tablename(Eab_EventsHub::BOOKING_TABLE) . " WHERE event_id = %d AND status = %s;", $event->get_id(), Eab_EventModel::BOOKING_NO));
             $maybe = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM " . Eab_EventsHub::tablename(Eab_EventsHub::BOOKING_TABLE) . " WHERE event_id = %d AND status = %s;", $event->get_id(), Eab_EventModel::BOOKING_MAYBE));
             printf('<b>' . __('Attending / Undecided', self::TEXT_DOMAIN) . ':</b> %d / %d<br />', $yes, $maybe);
             printf('<b>' . __('Not Attending', self::TEXT_DOMAIN) . ':</b> %d', $no);
             echo '&nbsp;';
             echo '<a class="button" href="' . admin_url('index.php?eab_export=attendees&event_id=' . $event->get_id()) . '" class="eab-export_attendees">' . __('Export', self::TEXT_DOMAIN) . '</a>';
             break;
         case "start":
             $event = new Eab_EventModel($post);
             $df = get_option('date_format', 'Y-m-d');
             if (!$event->is_recurring()) {
                 echo date_i18n($df, $event->get_start_timestamp()) . ' - ' . date_i18n($df, $event->get_end_timestamp());
             } else {
                 $repeats = $event->get_supported_recurrence_intervals();
                 $title = @$repeats[$event->get_recurrence()];
                 $start = date_i18n($df, $event->get_recurrence_starts());
                 $end = date_i18n($df, $event->get_recurrence_ends());
                 printf(__("From %s, repeats every %s until %s", self::TEXT_DOMAIN), $start, $title, $end);
             }
             break;
         case "venue":
             $event = new Eab_EventModel($post);
             echo $event->get_venue_location();
             break;
         case "event":
             $event = new Eab_EventModel($post);
             $post_type_object = get_post_type_object($post->post_type);
             $edit_link = get_edit_post_link($event->get_id());
             $statuses = array();
             if ('draft' == $post->post_status) {
                 $statuses[] = __('Draft');
             }
             if ('private' == $post->post_status) {
                 $statuses[] = __('Private');
             }
             if ('pending' == $post->post_status) {
                 $statuses[] = __('Pending');
             }
             $status = $statuses ? ' - <span class="post-state">' . join(', ', $statuses) . '</span>' : '';
             $title = current_user_can($post_type_object->cap->edit_post, $event->get_id()) && 'trash' != $post->post_status ? '<strong>' . '<a class="row-title" href="' . $edit_link . '" title="' . esc_attr(sprintf(__('Edit &#8220;%s&#8221;'), $event->get_title())) . '">' . $event->get_title() . '</a>&nbsp;' . $status . '</strong>' : '<strong>' . $event->get_title() . '&nbsp;' . $status . '</strong>';
             if (current_user_can($post_type_object->cap->edit_post, $event->get_id()) && 'trash' != $post->post_status) {
                 $actions['edit'] = '<a title="' . esc_attr(__('Edit Event', self::TEXT_DOMAIN)) . '" href="' . $edit_link . '">' . __('Edit') . '</a>';
                 if (!$event->is_recurring()) {
                     $actions['inline hide-if-no-js'] = '<a href="#" class="editinline" title="' . esc_attr(__('Edit this Event inline', self::TEXT_DOMAIN)) . '">' . __('Quick&nbsp;Edit') . '</a>';
                 }
             }
             if (current_user_can($post_type_object->cap->delete_post, $event->get_id())) {
                 if ('trash' == $post->post_status) {
                     $actions['untrash'] = "<a title='" . esc_attr(__('Restore this Event from the Trash', self::TEXT_DOMAIN)) . "' href='" . wp_nonce_url(admin_url(sprintf($post_type_object->_edit_link . '&amp;action=untrash', $event->get_id())), 'untrash-' . $post->post_type . '_' . $event->get_id()) . "'>" . __('Restore') . "</a>";
                 } else {
                     if (EMPTY_TRASH_DAYS) {
                         $actions['trash'] = '<a class="submitdelete" title="' . esc_attr(__('Move this Event to the Trash', self::TEXT_DOMAIN)) . '" href="' . get_delete_post_link($event->get_id()) . '">' . __('Trash') . '</a>';
                     }
                 }
                 if ('trash' == $post->post_status || !EMPTY_TRASH_DAYS) {
                     $actions['delete'] = "<a class='submitdelete' title='" . esc_attr(__('Delete this Event permanently', self::TEXT_DOMAIN)) . "' href='" . get_delete_post_link($event->get_id(), '', true) . "'>" . __('Delete Permanently') . "</a>";
                 }
             }
             if ('trash' != $post->post_status) {
                 $event_id = $event->get_id();
                 if ($event->is_recurring()) {
                     $children = Eab_CollectionFactory::get_all_recurring_children_events($event);
                     if (!$children || !$children[0] instanceof Eab_EventModel) {
                         $event_id = false;
                     } else {
                         $event_id = $children[0]->get_id();
                     }
                 }
                 if ($event_id) {
                     $actions['view'] = '<a href="' . get_permalink($event_id) . '" title="' . esc_attr(sprintf(__('View &#8220;%s&#8221;'), $event->get_title())) . '" rel="permalink">' . __('View') . '</a>';
                 }
             }
             echo $title;
             if (!empty($actions)) {
                 foreach ($actions as $action => $link) {
                     $actions[$action] = "<span class='{$action}'>{$link}</span>";
                 }
             }
             echo '<div class="row-actions">' . join('&nbsp;|&nbsp;', $actions) . '</div>';
             get_inline_data($post);
             break;
     }
 }
 private function _construct_unique_rsvp_activity($event_id, $user_id, $rsvp)
 {
     $group_id = $this->_is_group_event($event_id);
     if ($this->_data->get_option('bp-activity_autoupdate-user_rsvp_group_only') && !$group_id) {
         return false;
     }
     $event = new Eab_EventModel(get_post($event_id));
     $user_link = bp_core_get_userlink($user_id);
     $update = false;
     switch ($rsvp) {
         case Eab_EventModel::BOOKING_YES:
             $update = sprintf(__('%s will be attending <a href="%s">%s</a>', Eab_EventsHub::TEXT_DOMAIN), $user_link, get_permalink($event->get_id()), $event->get_title());
             break;
         case Eab_EventModel::BOOKING_MAYBE:
             $update = sprintf(__('%s will maybe attend <a href="%s">%s</a>', Eab_EventsHub::TEXT_DOMAIN), $user_link, get_permalink($event->get_id()), $event->get_title());
             break;
         case Eab_EventModel::BOOKING_NO:
             $update = sprintf(__('%s won\'t be attending <a href="%s">%s</a>', Eab_EventsHub::TEXT_DOMAIN), $user_link, get_permalink($event->get_id()), $event->get_title());
             break;
     }
     if (!$update) {
         return false;
     }
     $raw_activity = array('user_id' => $user_id, 'action' => $update, 'type' => 'event_rsvp', 'item_id' => $event->get_id());
     if ($this->_data->get_option('bp-activity_autoupdate-user_rsvp_group_post') && $group_id) {
         global $bp;
         $group_activity = $raw_activity;
         $group_activity['component'] = $bp->groups->id;
         $group_activity['item_id'] = $group_id;
         $group_activity['secondary_item_id'] = $event->get_id();
         $existing = bp_activity_get(array("filter" => array('user_id' => $user_id, "object" => $bp->groups->id, "action" => 'event_rsvp', 'primary_id' => $group_id, 'secondary_id' => $event->get_id())));
         if (isset($existing['activities']) && !empty($existing['activities'])) {
             $old = reset($existing['activities']);
             if (is_object($old) && isset($old->id)) {
                 $group_activity['id'] = $old->id;
             }
         }
         // Add group activity update
         groups_record_activity($group_activity);
     } else {
         $activity = $raw_activity;
         $activity['component'] = 'eab_events';
         $existing = bp_activity_get(array("filter" => array('user_id' => $user_id, "object" => 'eab_events', "action" => 'event_rsvp', 'primary_id' => $event->get_id())));
         if (isset($existing['activities']) && !empty($existing['activities'])) {
             $old = reset($existing['activities']);
             if (is_object($old) && isset($old->id)) {
                 $activity['id'] = $old->id;
             }
         }
         // Add site/user activity update
         bp_activity_add($activity);
     }
 }
 function get_payment_forms($form, $event_id)
 {
     $event = new Eab_EventModel($event_id);
     $price = $event->get_price();
     if (!is_array($price)) {
         return $form;
     }
     $selection = '<select id="" name="amount">';
     foreach ($price as $tier) {
         $selection .= '<option value="' . (double) $tier['fee'] . '">' . $tier['label'] . ": " . $this->_data->get_option("currency") . " " . $tier['fee'] . '</option>';
     }
     $selection .= '</select>';
     global $blog_id, $current_user;
     $content .= $this->_data->get_option('paypal_sandbox') ? '<form action="https://sandbox.paypal.com/cgi-bin/webscr" method="post">' : '<form action="https://www.paypal.com/cgi-bin/webscr" method="post">';
     $content .= '<input type="hidden" name="business" value="' . $this->_data->get_option('paypal_email') . '" />';
     $content .= '<input type="hidden" name="item_name" value="' . esc_attr($event->get_title()) . '" />';
     $content .= '<input type="hidden" name="item_number" value="' . $event->get_id() . '" />';
     $content .= '<input type="hidden" name="notify_url" value="' . admin_url('admin-ajax.php?action=eab_paypal_ipn&blog_id=' . $blog_id . '&booking_id=' . $booking_id) . '" />';
     $content .= '<br />' . __('Please, select price tier', Eab_EventsHub::TEXT_DOMAIN) . ' ' . $selection;
     $content .= '<input type="hidden" name="return" value="' . get_permalink($event->get_id()) . '" />';
     $content .= '<input type="hidden" name="currency_code" value="' . $this->_data->get_option('currency') . '">';
     $content .= '<input type="hidden" name="cmd" value="_xclick" />';
     // Add multiple tickets
     $extra_attributes = apply_filters('eab-payment-paypal_tickets-extra_attributes', $extra_attributes, $event->get_id(), $booking_id);
     $content .= '' . sprintf('<p>' . __('I want to buy %s ticket(s)', Eab_EventsHub::TEXT_DOMAIN) . '</p>', '<input type="number" size="2" name="quantity" value="1" min="1" ' . $extra_attributes . ' />');
     $content .= '<input type="image" name="submit" border="0" src="https://www.paypal.com/en_US/i/btn/btn_paynow_SM.gif" alt="PayPal - The safer, easier way to pay online" />';
     $content .= '<img alt="" border="0" width="1" height="1" src="https://www.paypal.com/en_US/i/scr/pixel.gif" />';
     $content .= '</form>';
     return $content;
 }