diff --git a/app/Http/Controllers/CityController.php b/app/Http/Controllers/CityController.php deleted file mode 100644 index 35822e7..0000000 --- a/app/Http/Controllers/CityController.php +++ /dev/null @@ -1,236 +0,0 @@ - 'list']); - - session(['city' => $city]); - - Layout::setCity($city); - - CafeNomad::setMode('list'); - - $fields = City::getFields($city); - - $entities = Entity::where('city', $city)->where('status', 10)->get(); - - $agent = new \Jenssegers\Agent\Agent(); - - return view($this->getView($city), ['entities' => $entities, 'fields' => $fields]); - } - - function createMapPage($city) - { - session(['mode' => 'map']); - - session(['city' => $city]); - - Layout::setCity($city); - - Layout::setIsMap(true); - - CafeNomad::setMode('map'); - - $fields = City::getFields($city); - - $cafes = \App\Cafe::where('city', $city)->where('status', 10) - ->where('latitude', '!=', '0') - ->where('longitude', '!=', '0') - ->get(); - - return view('map', ['cafes' => $cafes, 'fields' => $fields, - 'center' => City::getMapCenter($city)]); - } - - function getList($city) - { - return $this->createListPage($city); - } - - function getMap($city) - { - return $this->createMapPage($city); - } - - function getShop($id) - { - $targetEntity = Entity::find($id); - - $city = $targetEntity->city; - - session(['mode' => 'list']); - - session(['city' => $city]); - - Layout::setCity($city); - - CafeNomad::setMode('list'); - - $fields = City::getFields($city); - - $entities = Entity::where('city', $city)->where('status', 10)->get(); - - $agent = new \Jenssegers\Agent\Agent(); - - return view($this->getView($city), ['entities' => $entities, 'fields' => $fields, 'targetEntity' => $targetEntity]); - } - - function getDiscovery($city) - { - Layout::setDisplayNavbar(false); - - Layout::setOpenGraphTitle('Cafe Nomad ' . Config::get('city')[$city]['zh'] . ' - 網友們一起寫的咖啡廳食記&評鑑'); - - Layout::setOpenGraphImage(url('/img/marketing/mm.png')); - - $cafes = \App\Cafe::where('city', $city)->where('status', 10) - ->where('latitude', '!=', '0') - ->where('longitude', '!=', '0') - ->get(); - - $cafes = $cafes->filter(function($cafe){ - if ($cafe->photos->count() === 0) return false; - - return true; - }); - - return view('discovery', compact('cafes')); - } - - function getHomepage($city) - { - Layout::setOpenGraphTitle(Config::get('nomadic.global.app') . ' - ' . Config::get('city')[$city]['zh']); - - Layout::setCity($city); - - $displayNumber = 4; - - if (Layout::isMobile()) $displayNumber = 3; - - $comments = City::getLatestComments($city, $displayNumber); - - $reviews = City::getLatestReviews($city, $displayNumber); - - $photos = City::getLatestPhotos($city, $displayNumber); - - return view('city-homepage', compact('city', 'comments', 'reviews', 'photos')); - } - - function getFlaneur($city) - { - Layout::setOpenGraphTitle('Cafe Nomad - ' . Config::get('city')[$city]['zh'] . '咖啡廳 Facebook 最新動態'); - - Layout::setOpenGraphImage(url('/android-chrome-384x384.png')); - - Layout::setCity($city); - - CafeNomad::setMode('flaneur'); - - $feeds = $this->flaneurPagination($city, 1); - - return view('flaneur', compact('feeds', 'city')); - } - - function getFlaneurAjax() - { - $feeds = $this->flaneurPagination(Request::get('city'), Request::get('page')); - - foreach ($feeds as $feed) { - echo view('flaneur/_fb-posts', compact('feed')); - } - } - - function flaneurPagination($city, $page) - { - $rows = DB::table('fb_feeds') - ->join('fb_fan_pages', 'fb_feeds.fb_fan_page_id', '=', 'fb_fan_pages.id') - ->join('cafes', 'fb_fan_pages.cafe_id', '=', 'cafes.id') - ->select('fb_feeds.id') - ->where('cafes.city', $city) - ->orderby('fb_feeds.published_at', 'desc') - ->offset(($page - 1) * 25) - ->limit(25) - ->get(); - - $ids = []; - - foreach ($rows as $row) { - $ids[] = $row->id; - } - - $feeds = \App\Facebook\Feed::findMany($ids); - - $feeds = $feeds->sortByDesc('published_at'); - - return $feeds; - } - - function tag($city, $tagStr) - { - $tagId = explode('-', $tagStr)[0]; - - $tag = \App\Tag::find($tagId); - - $rows = \App\EntityTag::where('tag_id', $tagId)->get(); - - $cafeIds = []; - - foreach ($rows as $row) { - $cafe = Entity::find($row->entity_id); - - if ($cafe->city !== $city) continue; - - if (in_array($cafe->id, $cafeIds)) continue; - - $cafeIds[] = $cafe->id; - } - - $cafes = Entity::findMany($cafeIds); - - $latArr = []; - $lngArr = []; - - foreach($cafes as $cafe) { - if ($cafe->latitude != 0) { - $latArr[] = $cafe->latitude; - $lngArr[] = $cafe->longitude; - } - } - - if (count($latArr) > 0) { - $center = ['lat' => calculate_median($latArr), 'lng' => calculate_median($lngArr), 'zoom' => 13]; - } else { - $center = ['lat' => 24.042571, 'lng' => 120.9472711, 'zoom' => 8]; - } - - Layout::setOpenGraphTitle( config('nomadic.global.app'). ' - ' . Config::get('city')[$city]['zh'] . $tag->name . '的' . config('nomadic.global.subject') . '清單:共收錄' . $cafes->count() . '間網友推薦的店'); - - return view('tag', compact('cafes', 'city', 'tag', 'center')); - } - -} diff --git a/app/Http/Controllers/CommunityController.php b/app/Http/Controllers/CommunityController.php deleted file mode 100644 index b98335e..0000000 --- a/app/Http/Controllers/CommunityController.php +++ /dev/null @@ -1,47 +0,0 @@ -user()) { - return redirect('login?&path=/contribute'); - } - - return view('community.contribute'); - } - - public function saveContribution(Request $request) - { - $entity = new Entity(); - $entity->id = \Ramsey\Uuid\Uuid::uuid4()->toString(); - $entity->name = $request->input('name'); - $entity->city = $request->input('city'); - $entity->status = Entity::APPROVED_STATUS; - - $entity->review_fields = - collect(config('review-fields')) - ->pluck('key') - ->mapWithKeys(function ($key) use ($request) { - return [$key => $request->input('review_' . $key, "0")]; - }) - ->toJson(); - $entity->info_fields = - collect(config('info-fields')) - ->pluck('key') - ->mapWithKeys(function ($key) use ($request) { - return [$key => $request->input('info_' . $key, '')]; - }) - ->toJson(); - $entity->save(); - - return view('notice', ['title' => '新增成功!', 'message' => '非常謝謝您,已經新增進資料庫!']); - } -} diff --git a/app/Http/Controllers/HomepageController.php b/app/Http/Controllers/HomepageController.php deleted file mode 100644 index 2aad962..0000000 --- a/app/Http/Controllers/HomepageController.php +++ /dev/null @@ -1,164 +0,0 @@ -reviews as $review) { - $reviewCafeIds[] = $review->cafe_id; - } - - $checkinCafeIds = []; - - foreach ($user->recommendations->sortByDesc('created_at') as $recommendation) { - $checkinCafeIds[] = $recommendation->cafe_id; - } - - $reviewCafeIds = collect($reviewCafeIds); - - $checkinCafeIds = collect($checkinCafeIds); - - $readyToReviewCafeIds = $checkinCafeIds->diff($reviewCafeIds); - - $readyToReviewCafes = collect([]); - - foreach ($readyToReviewCafeIds as $id) { - $cafe = \App\Cafe::find($id); - - $readyToReviewCafes->push($cafe); - } - - View::share('readyToReviewCafes', $readyToReviewCafes); - - $this->prepareRightSide(); - } - - function prepareRightSide() - { - $cafes = Cafe::whereNotNull('opening_date')->orderBy('opening_date', 'desc')->get(); - - View::share('new_cafes', $cafes); - - $cafes = Cafe::where('is_donated', '1')->inRandomOrder()->get(); - - View::share('donated_cafes', $cafes); - } - - function home() - { - return redirect('/'); - - //if (!Auth::check()) return redirect('/'); - - $this->prepareSideMenu(); - - $discussions = \CafeNomad::getDiscussions()->take(3); - - $messages = \App\ChatroomMessage::where('cafe_id', '')->orderBy('created_at', 'desc')->limit(3)->get(); - - $messages = $messages->reverse(); - - return view('index/index-user', ['feeds' => $this->generateFeeds(), 'discussions' => $discussions, 'messages' => $messages]); - } - - function index(Request $request) - { - //if (Auth::check()) return redirect('/home'); - - $displayNumber = 4; - - if (Layout::isMobile()) $displayNumber = 3; - - //$pages = FanPage::whereStatus(FanPage::RUNNING_STATUS)->inRandomOrder()->limit($displayNumber)->get(); - - $pages = []; - - $boxCafes = collect([]); - - foreach ($pages as $page) { - $boxCafes->push($page->cafe); - } - - $mapCafes = Entity::whereStatus(Entity::APPROVED_STATUS)->whereCity('taipei')->inRandomOrder()->limit(50)->get(); - - $latArr = []; - $lngArr = []; - - foreach($mapCafes as $cafe) { - if ($cafe->latitude != 0) { - $latArr[] = $cafe->latitude; - $lngArr[] = $cafe->longitude; - } - } - - if (count($latArr) > 0) { - $center = ['lat' => calculate_median($latArr), 'lng' => calculate_median($lngArr), 'zoom' => 13]; - } else { - $center = ['lat' => 24.042571, 'lng' => 120.9472711, 'zoom' => 8]; - } - - //$fbFeeds = \App\Facebook\Feed::orderBy('published_at', 'desc')->limit($displayNumber)->get(); - $fbFeeds = []; - - if (is_null($request->input('beta'))) - { - return view('index/new-index', compact('boxCafes', 'mapCafes', 'center', 'fbFeeds')); - } - else - { - return view('home.index', compact('boxCafes', 'mapCafes', 'center', 'fbFeeds')); - } - } - - function generateFeeds() - { - $fromDateTime = \Carbon\Carbon::now()->subDays(2)->toDateTimeString(); - - $comments = Comment::orderBy('created_at', 'desc') - ->where('created_at', '>', $fromDateTime)->get(); - - $reviews = Review::orderBy('created_at', 'desc') - ->where('created_at', '>', $fromDateTime)->get(); - - $photos = Photo::whereStatus(Photo::CREATED_STATUS) - ->orderBy('created_at', 'desc') - ->where('created_at', '>', $fromDateTime)->get(); - - $feeds = collect([]); - - $feeds = $feeds->merge($comments); - - $feeds = $feeds->merge($reviews); - - $feeds = $feeds->merge($photos); - - $feeds = $feeds->sortByDesc('created_at'); - - return $feeds; - } - -} diff --git a/app/Http/Controllers/PostController.php b/app/Http/Controllers/PostController.php deleted file mode 100644 index fb276af..0000000 --- a/app/Http/Controllers/PostController.php +++ /dev/null @@ -1,121 +0,0 @@ -title . ' - Cafe Nomad'); - - Layout::setOpenGraphImage(url('/android-chrome-384x384.png')); - - return view('posts/post', compact('discussion')); - } - - function edit($id) - { - $post = Post::whereId($id)->whereUserId(Auth::user()->id)->first(); - - return view('posts/edit', compact('post')); - } - - function create() - { - return view('posts/create'); - } - - function createPost() - { - $discussion = new Discussion(); - - $discussion->title = Request::get('title'); - - $discussion->save(); - - $post = new Post(); - - $post->discussion_id = $discussion->id; - - $post->content = Request::get('content'); - - $post->user_id = Auth::user()->id; - - $post->save(); - - return redirect('/post/' . $discussion->id); - } - - function replyPost() - { - $post = new Post(); - - $post->discussion_id = Request::get('discussion_id'); - - $post->content = Request::get('content'); - - $post->user_id = Auth::user()->id; - - $post->save(); - - return redirect('/post/' . $post->discussion_id . '#post-' . $post->id); - } - - function updatePost() - { - $post = Post::whereId(Request::get('post_id'))->whereUserId(Auth::user()->id)->first(); - - $post->content = Request::get('content'); - - $post->save(); - - return redirect('/post/' . $post->discussion_id . '#post-' . $post->id); - } - - function commentToPost() - { - $comment = new Comment(); - - $comment->post_id = Request::get('post_id'); - - $comment->content = Request::get('content'); - - $comment->user_id = Auth::user()->id; - - $comment->save(); - - $post = Post::find(Request::get('post_id')); - - return redirect('/post/' . $post->discussion_id . '#comment-' . $comment->id); - } - -} diff --git a/app/Http/Controllers/ShopController.php b/app/Http/Controllers/ShopController.php deleted file mode 100644 index e2f69e1..0000000 --- a/app/Http/Controllers/ShopController.php +++ /dev/null @@ -1,256 +0,0 @@ -category = 'algolia-search'; - - $payload = [ - 'keyword' => $keyword - ]; - - $event->payload = json_encode($payload); - - $event->save(); - - $cafes = Cafe::search($keyword)->paginate(20); - if ($cafes->currentPage() != 1 && $cafes->currentPage() > $cafes->lastPage()) { - return redirect("/shop/search?query=$keyword"); - } - - return view('shop.search', compact('keyword', 'cafes')); - } - - function tag($id) - { - if ( !Auth::check() ) { - return redirect("login?&path=/shop/$id/tag"); - } - - $entity = Entity::find($id); - - $query = new \App\Tag\Query(); - - $userTags = $query->getAllByUserOnCafe(Auth::user(), $entity); - - $userOtherTags = $query->getAllByUserNotOnCafe(Auth::user(), $entity); - - $otherTags = $query->getAllByNotUserNotOnCafe(Auth::user(), $entity); - - return view('shop/tag', compact('entity', 'userTags', 'userOtherTags', 'otherTags')); - } - - function json($id) - { - $cafe = Cafe::find($id); - - return response()->json($cafe->toArray()); - } - - function newTag() - { - if (trim(Request::get('tag_name')) === '') { - return 'Please fill in the tag name.'; - } - - $tag = Tag::manualAdd(Request::get('tag_name')); - - $entityTag = new EntityTag(); - - $entityTag->entity_id = Request::get('entity_id'); - - $entityTag->tag_id = $tag->id; - - $entityTag->user_id = Auth::user()->id; - - $entityTag->save(); - - return redirect()->back(); - } - - function applyTag() - { - $entityTag = new EntityTag(); - - $entityTag->entity_id = Request::get('entity_id'); - - $entityTag->tag_id = Request::get('tag_id'); - - $entityTag->user_id = Auth::user()->id; - - $entityTag->save(); - - return redirect()->back(); - } - - function unapplyTag() - { - EntityTag::where('entity_id', Request::get('entity_id')) - ->where('tag_id', Request::get('tag_id')) - ->where('user_id', Auth::user()->id) - ->delete(); - - return redirect()->back(); - } - - function reportTag() - { - $cafeTag = new CafeTag(); - - $cafeTag->cafe_id = Request::get('cafe_id'); - - $cafeTag->tag_id = Request::get('tag_id'); - - $cafeTag->user_id = Auth::user()->id; - - $cafeTag->is_reported = true; - - $cafeTag->save(); - - return redirect()->back(); - } - - function unreportTag() - { - $cafeTag = CafeTag::where('cafe_id', Request::get('cafe_id')) - ->where('tag_id', Request::get('tag_id')) - ->where('user_id', Auth::user()->id) - ->delete(); - - return redirect()->back(); - } - - function report($id) - { - $cafe = Cafe::find($id); - - return view('shop/report', compact('cafe')); - } - - function stats($id) - { - $cafe = Cafe::find($id); - - $events = SystemEvent::whereCategory('view-shop') - ->where('payload', 'LIKE', "%$id%") - ->get(); - - $data = []; - - foreach ($events as $event) { - if ($event->getPayload()->id !== $id) continue; - - $joinDate = $event->created_at->format('m/d'); - - if (array_key_exists($joinDate, $data)) { - $data[$joinDate] += 1; - } else { - $data[$joinDate] = 1; - } - } - - // - - $displayData = []; - - $rows = DB::table('daily_event_counters') - ->where('category', 'display-shop-list') - ->where('cafe_id', $cafe->id) - ->orderBy('event_date') - ->get(); - - foreach ($rows as $row) { - $date = \Carbon\Carbon::parse($row->event_date)->format('m/d'); - - $displayData[$date] = $row->value; - } - - if ($rows->count() > 0) { - $startDate = \Carbon\Carbon::parse($rows->first()->event_date); - - $endDate = \Carbon\Carbon::parse($rows->last()->event_date); - - $cursor = \Carbon\Carbon::parse($rows->first()->event_date); - - while ($cursor != $endDate) { - if (!array_key_exists($cursor->format('m/d'), $displayData)) { - $displayData[$cursor->format('m/d')] = 0; - } - - $cursor->addDay(); - } - - ksort($displayData); - } - - // - - $displayData2 = []; - - $rows = DB::table('daily_event_counters') - ->where('category', 'display-shop-map') - ->where('cafe_id', $cafe->id) - ->orderBy('event_date') - ->get(); - - foreach ($rows as $row) { - $date = \Carbon\Carbon::parse($row->event_date)->format('m/d'); - - $displayData2[$date] = $row->value; - } - - if ($rows->count() > 0) { - $startDate = \Carbon\Carbon::parse($rows->first()->event_date); - - $endDate = \Carbon\Carbon::parse($rows->last()->event_date); - - $cursor = \Carbon\Carbon::parse($rows->first()->event_date); - - while ($cursor != $endDate) { - if (!array_key_exists($cursor->format('m/d'), $displayData2)) { - $displayData2[$cursor->format('m/d')] = 0; - } - - $cursor->addDay(); - } - - ksort($displayData2); - } - - return view('shop/stats', compact('cafe', 'data', 'displayData', 'displayData2')); - } - - function donate($id) - { - $cafe = Cafe::find($id); - - return view('shop/donate', compact('cafe')); - } - -} diff --git a/app/Http/Controllers/SocialController.php b/app/Http/Controllers/SocialController.php deleted file mode 100644 index b6fdca5..0000000 --- a/app/Http/Controllers/SocialController.php +++ /dev/null @@ -1,223 +0,0 @@ -where('user_id', Auth::user()->id) - ->first(); - - if (!$w) { - $w = new Wish(); - $w->cafe_id = Request::get('cafe_id'); - $w->user_id = Auth::user()->id; - $w->save(); - } - - return response()->json([ - 'status' => 1 - ]); - } - - function ajaxCancelWish() - { - $w = Wish::where('cafe_id', Request::get('cafe_id')) - ->where('user_id', Auth::user()->id) - ->first(); - - if ($w) { - $w->delete(); - } - - return response()->json([ - 'status' => 1 - ]); - } - - function ajaxVisit() - { - $rec = Recommendation::where('entity_id', Request::get('entity_id')) - ->where('user_id', Auth::user()->id) - ->first(); - - if (!$rec) { - $rec = new Recommendation(); - $rec->entity_id = Request::get('entity_id'); - $rec->user_id = Auth::user()->id; - $rec->save(); - } - - return response()->json([ - 'status' => 1 - ]); - } - - function ajaxCancelVisit() - { - $rec = Recommendation::where('entity_id', Request::get('entity_id')) - ->where('user_id', Auth::user()->id) - ->first(); - - if ($rec) { - $rec->delete(); - } - - return response()->json([ - 'status' => 1 - ]); - } - - function ajaxComment() - { - $c = new Comment(); - $c->cafe_id = Request::get('cafe_id'); - $c->body = Request::get('body'); - $c->user_id = Auth::user()->id; - $c->save(); - - return response()->json([ - 'status' => 1 - ]); - } - - function review($id){ - if ( !Auth::check() ) { - return redirect("login?&path=/review/$id&action=review"); - } - - $entity = Entity::find($id); - - $review = Review::where('entity_id', $id) - ->where('user_id', Auth::user()->id)->first(); - - if ($review) { - return view('edit-review', ['entity' => $entity, 'review' => $review]); - } - - return view('review', ['entity' => $entity]); - } - - function submitReview(){ - $entity = Entity::find(Request::get('entity_id')); - - $review = Review::where('entity_id', $entity->id) - ->where('user_id', Auth::user()->id)->first(); - - if ($review) { - return view('notice', ['title' => '您已經替' . $entity->name . '評分過了。', 'message' => '您只能對一間咖啡廳評分一次。']); - } - - $r = new Review(); - - $error = $this->checkHasError($r); - - if ($error) return view('notice', ['title' => '您有一項評分打了0分。', 'message' => '滿分5分,請輸入1到5。']); - - $r->entity_id = Request::get('entity_id'); - - $r->user_id = Auth::user()->id; - - $r->save(); - - //$r->checkin(); - - return view('message'); - } - - function updateReview(){ - - $r = Review::where('id', Request::get('review_id')) - ->where('user_id', Auth::user()->id) - ->first(); - - $error = $this->checkHasError($r); - - if ($error) return view('notice', ['title' => '您有一項評分打了0分。', 'message' => '滿分5分,請輸入1到5。']); - - $r->save(); - - return view('message'); - } - - function checkHasError($r) - { - $fields = getReviewKeys(); - - $error = false; - - $arr = []; - - foreach ($fields as $field) { - $value = (int) Request::get($field . '-rating'); - - if ($value === 0) { - $error = true; - } - - $arr[$field] = $value; - } - - $r->review_fields = json_encode($arr); - - return $error; - } - - function reviewers($id) - { - $cafe = Cafe::find($id); - - return view('reviewers', ['cafe' => $cafe]); - } - - function deleteReview(){ - - $r = Review::where('id', Request::get('review_id')) - ->where('user_id', Auth::user()->id) - ->first(); - - $r->delete(); - - return view('notice', ['title' => '刪除完成。', 'message' => '']); - } - - function addComment() - { - $c = new Comment(); - $c->entity_id = Request::get('entity_id'); - $c->body = Request::get('body'); - $c->user_id = Auth::user()->id; - $c->save(); - - return redirect()->back(); - } - - function removeComment() - { - $c = Comment::where('id', Request::get('comment_id')) - ->where('user_id', Auth::user()->id) - ->first(); - - $c->delete(); - - return redirect()->back(); - } - -} diff --git a/routes/web.php b/routes/web.php index 8f9e302..3d9949b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,348 +1,3 @@ redirect(); -}); - -Route::get('/callback', function(){ - - if (Request::get('error_reason') == 'user_denied') { - return redirect(Session::get('path')); - } - - $facebook = Socialite::driver('facebook')->user(); - - if ($credential = App\SocialCredential::where('social_id', $facebook->id)->first()) { - - Auth::loginUsingId($credential->user_id); - - } else { - - $user = new App\User(); - - $email = $facebook->getEmail() ? $facebook->getEmail() : $facebook->getId() . '@facebook.com'; - - $user->email = $email; - - $user->name = $facebook->getName(); - - $user->password = ''; - - $user->save(); - - $profile = new App\Profile(); - - $profile->user_id = $user->id; - - $profile->avatar = str_replace('type=normal', 'type=square', $facebook->getAvatar()); - - $profile->save(); - - $credential = new App\SocialCredential(); - - $credential->user_id = $user->id; - - $credential->social_id = $facebook->id; - - $credential->save(); - - Auth::login($user); - - } - - if (Session::get('action')=='recommend') { - $rec = App\Recommendation::where('cafe_id', Session::get('cafe_id')) - ->where('user_id', Auth::user()->id) - ->first(); - - if (!$rec) { - $rec = new App\Recommendation(); - $rec->cafe_id = Session::get('cafe_id'); - $rec->user_id = Auth::user()->id; - $rec->save(); - } - } - - return redirect(Session::get('path'). '#' . Session::get('cafe_id')); -}); - -Route::get('/logout', function(){ - - Auth::logout(); - - return redirect('/'); -}); - -Route::post('/ajax/wish', 'SocialController@ajaxWish'); -Route::post('/ajax/cancel-wish', 'SocialController@ajaxCancelWish'); - -Route::post('/ajax/visit', 'SocialController@ajaxVisit'); -Route::post('/ajax/cancel-visit', 'SocialController@ajaxCancelVisit'); - -Route::post('/ajax/comment', 'SocialController@ajaxComment'); -Route::post('/add-comment', 'SocialController@addComment'); -Route::post('/remove-comment', 'SocialController@removeComment'); - -Route::post('/submit-review', 'SocialController@submitReview'); -Route::post('/update-review', 'SocialController@updateReview'); -Route::post('/delete-review', 'SocialController@deleteReview'); - -Route::get('/reviewers/{id}', 'SocialController@reviewers'); - -Route::get('/user/{id}', function($id){ - - $user = App\User::find($id); - - $latArr = []; - $lngArr = []; - - foreach($user->recommendations as $rec) { - if ($rec->cafe->latitude != 0) { - $latArr[] = $rec->cafe->latitude; - $lngArr[] = $rec->cafe->longitude; - } - } - - if (count($latArr) > 0) { - $center = ['lat' => calculate_median($latArr), 'lng' => calculate_median($lngArr), 'zoom' => 13]; - } else { - $center = ['lat' => 24.042571, 'lng' => 120.9472711, 'zoom' => 8]; - } - - if (Request::get('tab')) { - $mode = Request::get('tab'); - } else { - $mode = 'summary'; - } - - return view('history', ['user' => $user, 'center' => $center, 'mode' => $mode]); - -}); - -Route::get('/user/{id}/map', function($id){ - - $user = App\User::find($id); - - $latArr = []; - $lngArr = []; - - foreach($user->recommendations as $rec) { - if ($rec->cafe->latitude != 0) { - $latArr[] = $rec->cafe->latitude; - $lngArr[] = $rec->cafe->longitude; - } - } - - if (count($latArr) > 0) { - $center = ['lat' => calculate_median($latArr), 'lng' => calculate_median($lngArr), 'zoom' => 13]; - } else { - $center = ['lat' => 24.042571, 'lng' => 120.9472711, 'zoom' => 8]; - } - - return view('user/map', ['user' => $user, 'center' => $center]); - -}); - -Route::get('/editing/{id}', function($id){ - - if ( !Auth::check() ) { - return redirect("login?&path=/editing/$id"); - } - - $entity = App\Entity::find($id); - - return view('editing', ['entity' => $entity]); - -}); - -Route::post('/submit-editing', function(){ - $entity = App\Entity::find(Request::get('entity_id')); - - $infoFields = Request::only(getInfoKeys()); - - $e = new App\Editing(); - - $e->name = Request::get('name'); - - $e->info_fields = json_encode($infoFields); - - $e->entity_id = Request::get('entity_id'); - - $e->user_id = Auth::check() ? Auth::user()->id : 0; - - $e->save(); - - $e->approve(); - - return view('notice', ['title' => '修改成功!', 'message' => '非常謝謝您,已經更新進資料庫!']); -}); - -Route::get('/privacy-policy', function(){ - return view('privacy-policy'); -}); - -Route::get('upload-photo', function(){ - return view('upload-photo'); -}); - -Route::post('upload-photo', function(){ - $service = new App\UploadPhoto(); - - $photo = $service->handle(); - - $photo->cafe_id = Request::get('cafe_id'); - - $photo->user_id = Auth::user()->id; - - $photo->save(); - - return redirect(URL::previous()); - -}); - -Route::post('/remove-photo', function(){ - $p = \App\Photo::where('id', Request::get('photo_id')) - ->where('user_id', Auth::user()->id) - ->first(); - - $p->status = \App\Photo::HIDDEN_STATUS; - - $p->save(); - - return redirect()->back(); -}); - -Route::post('/remove-post', function(){ - $p = \App\Post::where('id', Request::get('post_id')) - ->where('user_id', Auth::user()->id) - ->first(); - - if ($p->discussion->posts->first()->id == $p->id) { - $discussion = $p->discussion; - foreach ($discussion->posts as $post) { - $post->delete(); - } - $discussion->delete(); - return redirect('/forum'); - } else { - $p->delete(); - return redirect()->back(); - } - -}); - -Route::get('/shop/search', 'ShopController@search'); -Route::post('/shop/new-tag', 'ShopController@newTag'); -Route::post('/shop/apply-tag', 'ShopController@applyTag'); -Route::post('/shop/unapply-tag', 'ShopController@unapplyTag'); -Route::post('/shop/report-tag', 'ShopController@reportTag'); -Route::post('/shop/unreport-tag', 'ShopController@unreportTag'); - -Route::get('/shop/{id}/report', 'ShopController@report'); -Route::get('/shop/{id}/donate', 'ShopController@donate'); - -Route::group(['prefix' => LaravelLocalization::setLocale(), 'middleware' => [ 'localeSessionRedirect', 'localizationRedirect' ]], function() -{ - Route::get('/try-i18n', function() - { - return view('try-i18n'); - }); - - Route::get('/', 'HomepageController@index'); - - Route::get('/home', 'HomepageController@home'); - - Route::get('/review/{id}', 'SocialController@review'); - - Route::get('/community', function(){ - $page = Request::get('page') ? : 1; - - $users = App\User::all(); - - $users = $users->filter(function($user){ - return $user->profile->score > 0; - }); - - $users = $users->sortByDesc(function($user){ - return $user->profile->score; - }); - - $numOfPage = 40; - - $totalPage = ceil($users->count()/40); - - $users = $users->forPage($page, $numOfPage); - - return view('community', compact('users', 'totalPage', 'page')); - }); - - Route::group(['middleware' => 'track_activity'], function () { - - Route::get('/' . Config::get('nomadic.global.unit-url') . '/{id}', 'CityController@getshop'); - - Route::get('/shop/{id}/tag', 'ShopController@tag'); - - Route::get('/shop/{id}/stats', 'ShopController@stats'); - - Route::get('/shop/{id}/json', 'ShopController@json'); - - Route::get("/{city}/tag/{tagStr}", 'CityController@tag'); - - foreach (Config::get('city') as $key => $value) { - - Route::get('/{' . $key . '}', 'CityController@getHomepage'); - - Route::get('/{' . $key . '}/list', 'CityController@getList'); - - Route::get('/map/{' . $key . '}', function($key){ - return redirect("/$key/map"); - }); - - Route::get('/{' . $key . '}/map', 'CityController@getMap'); - - Route::get('/discovery/{' . $key . '}', 'CityController@getDiscovery'); - - Route::get('/flaneur/{' . $key . '}', function($key){ - return redirect("/$key/flaneur"); - }); - - Route::get('/{' . $key . '}/flaneur', 'CityController@getFlaneur'); - - } - - }); - - Route::get('/ajax/modal/{id}', function($id){ - $entity = App\Entity::find($id); - - $fields = App\City::getFields($entity->city); - - Layout::setCity($entity->city); - - App\SystemEvent::track('view-shop', [ - 'id' => $entity->id, - 'mode' => Request::get('mode') - ]); - - return view('_cafe-modal', ['entity' => $entity, 'fields' => $fields]); - }); -}); +//