SiteController.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App;
  4. use App\Follower;
  5. use App\Profile;
  6. use App\Status;
  7. use App\User;
  8. use App\UserFilter;
  9. use App\Util\Lexer\PrettyNumber;
  10. use Auth;
  11. use Cache;
  12. use Illuminate\Http\Request;
  13. class SiteController extends Controller
  14. {
  15. public function home()
  16. {
  17. if (Auth::check()) {
  18. return $this->homeTimeline();
  19. } else {
  20. return $this->homeGuest();
  21. }
  22. }
  23. public function homeGuest()
  24. {
  25. return view('site.index');
  26. }
  27. public function homeTimeline()
  28. {
  29. return view('timeline.home');
  30. }
  31. public function changeLocale(Request $request, $locale)
  32. {
  33. // todo: add other locales after pushing new l10n strings
  34. $locales = ['en'];
  35. if(in_array($locale, $locales)) {
  36. session()->put('locale', $locale);
  37. }
  38. return redirect()->back();
  39. }
  40. public function about()
  41. {
  42. $stats = Cache::remember('site:about:stats', 1440, function() {
  43. return [
  44. 'posts' => Status::whereLocal(true)->count(),
  45. 'users' => User::count(),
  46. 'admin' => User::whereIsAdmin(true)->first()
  47. ];
  48. });
  49. return view('site.about', compact('stats'));
  50. }
  51. public function language()
  52. {
  53. return view('site.language');
  54. }
  55. }