private function _map_from_address($address, $args = array(), $content = false) { $key = md5(serialize($args)); $map_id = get_option($key, false); if (!$map_id) { $model = new AgmMapModel(); $map_id = $model->autocreate_map(false, false, false, $address); if (!$map_id) { return $content; } update_option($key, $map_id); } $args['id'] = $map_id; $codec = new AgmMarkerReplacer(); return $codec->process_tags($args, $content); }
private function _import_event($event) { $time = !empty($event['time']) && (int) $event['time'] ? (int) $event['time'] / 1000 : false; if (!$time) { return false; } if (empty($event['status']) || 'upcoming' != $event['status']) { return false; } // Is the event already imported? global $wpdb; $id = esc_sql($event['id']); $is_imported = $wpdb->get_var("SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key='_eab_meetup_id' AND meta_value='{$id}'"); if (!empty($is_imported)) { return false; } $post = array('post_type' => Eab_EventModel::POST_TYPE, 'post_status' => 'publish', 'post_title' => isset($event['name']) ? $event['name'] : '', 'post_content' => wp_kses_post(isset($event['description']) ? $event['description'] : ''), 'post_date' => date('Y-m-d H:i:s'), 'post_author' => get_current_user_id()); $meta = array('_eab_meetup_id' => $event['id'], '_eab_meetup_original' => $event, 'incsub_event_status' => Eab_EventModel::STATUS_OPEN, 'incsub_event_start' => date('Y-m-d H:i:s', $time), 'incsub_event_end' => date('Y-m-d 23:59:00', $time), 'incsub_event_no_end' => 1); // Import event $post_id = wp_insert_post($post); if (!$post_id) { return false; } // Something went very wrong foreach ($meta as $key => $value) { update_post_meta($post_id, $key, $value); } // Geolocate event if (!empty($event['venue'])) { $venue = !empty($event['venue']['name']) ? $event['venue']['name'] : false; if (class_exists('AgmMapModel') && !empty($event['venue']['lat']) && !empty($event['venue']['lon'])) { $model = new AgmMapModel(); $map_id = $model->autocreate_map($post_id, $event['venue']['lat'], $event['venue']['lon'], false); //if ($map_id) $venue = "[map id='{$map_id}']"; if ($map_id) { $venue = false; } } if (!empty($venue)) { update_post_meta($post_id, 'incsub_event_venue', $venue); } } return $post_id; }
function json_save_event() { global $current_user; header('Content-type: application/json'); if (!isset($_POST['data'])) { die(json_encode(array('status' => 0, 'message' => __('No data received', Eab_EventsHub::TEXT_DOMAIN)))); } $data = $_POST['data']; if (!$this->_check_perms((int) $data['id'])) { die(json_encode(array('status' => 0, 'message' => __('Insufficient privileges', Eab_EventsHub::TEXT_DOMAIN)))); } $post = array(); $start = date('Y-m-d H:i', strtotime($data['start'])); $end = date('Y-m-d H:i', strtotime($data['end'])); $post_type = get_post_type_object(Eab_EventModel::POST_TYPE); $post['post_title'] = strip_tags($data['title']); $post['post_content'] = current_user_can('unfiltered_html') ? $data['content'] : wp_filter_post_kses($data['content']); $post['post_status'] = current_user_can($post_type->cap->publish_posts) ? 'publish' : 'pending'; $post['post_type'] = Eab_EventModel::POST_TYPE; $post['post_author'] = $current_user->id; $data['featured'] = !empty($data['featured']) ? is_numeric($data['featured']) ? (int) $data['featured'] : false : false; if ((int) $data['id']) { $post['ID'] = $post_id = $data['id']; wp_update_post($post); /* Added by Ashok */ update_post_meta($post_id, '_thumbnail_id', $data['featured']); /* End of adding by Ashok */ } else { $post_id = wp_insert_post($post); /* Added by Ashok */ update_post_meta($post_id, '_thumbnail_id', $data['featured']); /* End of adding by Ashok */ } if (!$post_id) { die(json_encode(array('status' => 0, 'message' => __('There has been an error saving this Event', Eab_EventsHub::TEXT_DOMAIN)))); } update_post_meta($post_id, 'incsub_event_start', $start); update_post_meta($post_id, 'incsub_event_end', $end); update_post_meta($post_id, 'incsub_event_status', strip_tags($data['status'])); $venue_map = get_post_meta($post_id, 'agm_map_created', true); if (!$venue_map && $data['venue'] && class_exists('AgmMapModel')) { $model = new AgmMapModel(); $model->autocreate_map($post_id, false, false, $data['venue']); } update_post_meta($post_id, 'incsub_event_venue', strip_tags($data['venue'])); $is_paid = (int) $data['is_premium']; $fee = $is_paid ? strip_tags($data['fee']) : ''; update_post_meta($post_id, 'incsub_event_paid', $is_paid ? '1' : ''); update_post_meta($post_id, 'incsub_event_fee', $fee); do_action('eab-events-fpe-save_meta', $post_id, $data); wp_set_post_terms($post_id, array((int) $data['category']), 'eab_events_category', false); if (current_user_can($post_type->cap->publish_posts)) { $message = __('Event saved and published', Eab_EventsHub::TEXT_DOMAIN); do_action('eab_bp_event_published', $post_id); } else { $message = __('Event saved and waiting for approval', Eab_EventsHub::TEXT_DOMAIN); do_action('eab_bp_event_saved_for_approval', $post_id); } die(json_encode(array('status' => 1, 'post_id' => $post_id, 'permalink' => get_permalink($post_id), 'message' => $message))); }
private function _get_group_map($group_id, $data_overrides = array()) { $data_overrides = wp_parse_args($data_overrides, array('show_members' => true)); $data = groups_get_groupmeta($group_id, "agm-group_map"); $model = new AgmMapModel(); $map_id = get_option("_agm-group_map-for-{$group_id}", false); $address = !empty($data["address"]) ? $data["address"] : apply_filters('agm-group_map-default_group_address', false, $group_id, $data); $map = false; if ($map_id) { $map = $model->get_map($map_id); } else { if (!$map_id && $address) { $map_id = $model->autocreate_map(false, false, false, $address); if (!$map_id) { return false; } update_option("_agm-group_map-for-{$group_id}", $map_id); $map = $model->get_map($map_id); } else { $map = $model->get_map_defaults(); $map['defaults'] = $model->get_map_defaults(); $map['id'] = $group_id . md5(time() . rand()); $map['show_map'] = 1; $map['show_markers'] = 0; $map['markers'] = array(); } } if (!empty($data_overrides['group_marker']) && 'avatar' == $data_overrides['group_marker'] && function_exists('bp_core_fetch_avatar')) { if (1 != count($map['markers'])) { continue; } if (empty($map['markers'][0])) { continue; } $avatar = bp_core_fetch_avatar(array('object' => 'group', 'item_id' => $group_id, 'width' => 32, 'height' => 32, 'html' => false)); if (!empty($avatar)) { $map['markers'][0]['icon'] = $avatar; } } if (!empty($data['member_locations']) && !empty($data_overrides['show_members']) && class_exists('Agm_Bp_Pm_UserPages')) { $profile = new Agm_Bp_Pm_UserPages(); $markers = $map['markers']; $members = groups_get_group_members($group_id); if ($members && !empty($members['members'])) { foreach ($members['members'] as $member) { $marker = $profile->member_to_marker($member->ID); if ($marker) { $markers[] = $marker; } } } $map['markers'] = $markers; } if (empty($map['markers'])) { return false; } return $map; }