예제 #1
0
 public function retrieve()
 {
     global $wpdb, $_wt_options;
     $id = $this->id;
     $data = null;
     if ($id) {
         $data = $wpdb->get_results($wpdb->prepare("SELECT \n\t\t\t\t*  \n\t\t\t\tFROM " . WORDTOUR_EVENTS . " AS e \n\t\t\t\tLEFT JOIN " . WORDTOUR_VENUES . " AS v \n\t\t\t\tON e.event_venue_id = v.venue_id \n\t\t\t\tLEFT JOIN " . WORDTOUR_ARTISTS . " AS a\n\t\t\t\tON e.event_artist_id = a.artist_id \n\t\t\t\tLEFT JOIN " . WORDTOUR_TOUR . " AS t\n\t\t\t\tON e.event_tour_id = t.tour_id \n\t\t\t\tLEFT JOIN " . WORDTOUR_EVENTS_META . " AS m ON e.event_meta_id = m.meta_id\n\t\t\t\tWHERE e.event_id = {$id} ORDER BY id ASC"), "ARRAY_A");
         if (is_array($data)) {
             $event = $data[0];
             $event["event_more_artists"] = array();
             foreach ($data as $e) {
                 if (!$e["event_is_headline"]) {
                     $event["event_more_artists"][] = array("id" => $e["artist_id"], "name" => $e["artist_name"]);
                 }
             }
             $event_wpdb = clone $wpdb;
             $this->meta_id = $event["event_meta_id"];
             $social = new WT_Social();
             $fbstatus = $social->get_by_event($this->id, "fbstatus");
             $ebstatus = $social->get_by_event($this->id, "ebevent");
             $fbevent = $social->get_by_event($this->id, "fbevent");
             $twitter = $social->get_by_event($this->id, "twitter");
             $post = $social->get_by_event($this->id, "post");
             $data = array_merge($data, array("post_ref_id" => $post ? admin_url("post.php?action=edit&post={$post['social_ref_id']}") : 0, "facebook_event_id" => $fbevent ? $fbevent["social_ref_id"] : 0, "twitter_status_date" => $twitter ? $twitter["social_publish_time"] : 0, "facebook_status_date" => $fbstatus ? $fbstatus["social_publish_time"] : 0, "eventbrite_status_date" => $ebstatus ? $ebstatus["social_publish_time"] : 0, "eventbrite_event_id" => $ebstatus ? $ebstatus["social_ref_id"] : 0));
             $event["event_thumbnail"] = get_attachment_data($this->get_thumbnail("event"));
             $event["event_videos"] = $this->get_videos("event");
             $event["event_gallery"] = $this->get_gallery("event");
             $event["event_category"] = $this->get_category("event");
             $event["event_genre"] = $this->get_genre("event");
         }
     }
     //$this->db_result("error",$event_wpdb,array("msg"=>"Can't retrieve event(<i>Missing event id</i>)"));
     return parent::retrieve($event);
 }
예제 #2
0
 public function save_event($data = array())
 {
     $event_id = $data["eventbrite_event_id"];
     $event = new WT_Event($event_id);
     $event->retrieve();
     if ($this->is_init() && $event->data) {
         $social = new WT_Social();
         // check if event social type is exist
         $social_row = $social->get_by_event($data[eventbrite_event_id], "ebevent");
         // if exist get eventbrite event id
         $eb_event_id = $social_row ? $social_row["social_ref_id"] : 0;
         // check if event exist - by id
         $r = wt_file_get_contents("http://www.eventbrite.com/json/event_get?app_key={$this->app_key}&user_key={$this->user_key}&id={$eb_event_id}");
         // event exist in system - need to update
         if ($this->is_valid_response($r)) {
             $is_event = 1;
         } else {
             try {
                 // event doesnt exist in system - need to add new
                 if ($this->response["error"]["error_type"] == "Not Found") {
                     $is_event = 0;
                 } else {
                     return 0;
                 }
             } catch (Exception $e) {
                 return 0;
             }
         }
         $param = array("title" => $data["eventbrite_title"], "start_date" => $event->data["event_start_date"] . " " . $event->data["event_start_time"], "end_date" => $event->data["event_end_date"] . " " . ($event->data["event_end_time"] == "00:00:01" ? $event->data["event_start_time"] : $event->data["event_end_time"]), "timezone" => "GMT" . (get_option("gmt_offset") > 0 ? "+" . get_option("gmt_offset") : get_option("gmt_offset")), "privacy" => $data["eventbrite_privacy"], "personalized_url" => $data["personalized_url"], "status" => $data["eventbrite_status"], "description" => $data["eventbrite_description"], "organizer_id" => $this->get_organizer_id());
         $venue_id = $this->get_venue_id($event->data["event_venue_id"]);
         if ($venue_id) {
             $param["venue_id"] = $venue_id;
             if (!$is_event) {
                 $action = "event_new";
             } else {
                 $action = "event_update";
                 $param["event_id"] = $eb_event_id;
             }
             $r = wt_file_get_contents("http://www.eventbrite.com/json/{$action}?app_key={$this->app_key}&user_key={$this->user_key}&" . http_build_query($param));
             if ($this->is_valid_response($r)) {
                 if (!$social_row) {
                     $eb_event_id = $this->response["process"]["id"];
                     $social->insert(wp_create_nonce(WT_SOCIAL::NONCE_INSERT), "ebevent", $event_id, $eb_event_id, "event");
                     return $eb_event_id;
                 } else {
                     $social->update(wp_create_nonce(WT_SOCIAL::NONCE_INSERT), $social_row["social_id"], "ebevent", $event_id, $eb_event_id, "event");
                     return $eb_event_id;
                 }
             } else {
                 if ($this->response["error"]["error_type"] == "Not Found") {
                     global $wpdb;
                     $wpdb->query("DELETE FROM " . WORDTOUR_SOCIAL . " WHERE social_type='ebevent' AND social_parent_id={$event_id} AND social_parent_type='event' AND social_ref_id={$eb_event_id}");
                 }
             }
         }
         return 0;
     }
 }
예제 #3
0
     $eb_id = $eventbrite->save_event($_POST);
     try {
         $r = $eventbrite->response;
         if ($r["error"]) {
             if ($r["error"]["error_type"] == "Region error") {
                 $r["error"]["error_message"] = $r["error"]["error_message"] . "<br/>Refer to the venue administration page, could be because venue is missing a state value";
             }
             if ($r["error"]["error_type"] == "Not Found") {
                 $r["error"]["error_message"] = $r["error"]["error_message"] . "<br/>Event dosn't exist in Eventbrite, Please try again";
             }
             echo json_encode(array("type" => "error", "msg" => "Error publishing event to eventbrite:<p>" . $r["error"]["error_message"] . " (" . $r["error"]["error_type"] . ")</p>"));
             exit;
         } else {
             if ($r["process"]) {
                 $social = new WT_Social();
                 $social_row = $social->get_by_event($_POST["eventbrite_event_id"], "ebevent");
                 echo json_encode(array("type" => "success", "url" => "http://www.eventbrite.com/myevent?eid={$eb_id}", "tickets" => "http://www.eventbrite.com/event/{$eb_id}", "publish_date" => WT_DBPrepere::datetime_short_out($social_row["social_publish_time"]), "eventbrite" => $r));
                 exit;
             }
         }
     } catch (Exception $e) {
     }
     echo json_encode(array("type" => "error", "msg" => "Error connecting to Eventbrite, Please try again later"));
     break;
 case "import-eventbrite-events":
     $eventbrite = new WT_Eventbrite();
     $eventbrite->import($_POST["artist_id"]);
     echo json_encode($eventbrite->response);
     break;
     // GENERAL
 // GENERAL