Exemplo n.º 1
0
 public function save()
 {
     $event_model = new EventsModel();
     $this_id = intval($_POST['id']);
     $old_event = $event_model->find($this_id);
     if ($old_event['longitute'] != $_POST['longitute'] || $old_event['latitude'] != $_POST['latitude']) {
         $map_data_model = D('MapData');
         $map_data_model->invalidate_tile($old_event['longitute'], $old_event['latitude']);
         $map_data_model->invalidate_tile($_POST['longitute'], $_POST['latitude']);
     }
     $event_model->create();
     if (!user('is_admin')) {
         $event_model->user_id = user('id');
     }
     if (!check_model()) {
         flash('您提交的内容中可能有不合适的地方,请重新编辑');
     }
     $event_model->save();
     $event_model->create_tags($this_id);
     $event_model->create_image_records($this_id);
     flash('成功更新活动信息');
     $this->redirect('Event/view', array('id' => $this_id));
 }
Exemplo n.º 2
0
 public function events_by_event($id, $type = 'ngo', $count = 6, $has_image = true)
 {
     $geo_weight = 10;
     $category_weight = 200;
     $event_model = new EventsModel();
     $media_model = new MediaModel();
     $event = $event_model->find($id);
     if (!$event) {
         return false;
     }
     $my_longitude = $event['longitude'];
     $my_latitude = $event['latitude'];
     $sql = "select id,name,longitude,latitude,description, {$geo_weight}*(abs(longitude-{$my_longitude})+abs(latitude-{$my_latitude})) score from events where type='{$type}' and longitude is not null order by score limit {$count}";
     $result = $event_model->query($sql);
     if ($has_image) {
         for ($i = 0; $i < count($result); $i++) {
             $result[$i]['image'] = $media_model->where(array('event_id' => $result[$i]['id'], 'type' => image))->find();
         }
     }
     return $result;
 }