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)); }
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; }