AppServiceProvider.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. namespace App\Providers;
  3. use App\User;
  4. use Auth, Horizon;
  5. use App\Observers\UserObserver;
  6. use Illuminate\Support\Facades\Blade;
  7. use Illuminate\Support\Facades\Schema;
  8. use Illuminate\Support\ServiceProvider;
  9. class AppServiceProvider extends ServiceProvider
  10. {
  11. /**
  12. * Bootstrap any application services.
  13. *
  14. * @return void
  15. */
  16. public function boot()
  17. {
  18. Schema::defaultStringLength(191);
  19. User::observe(UserObserver::class);
  20. Horizon::auth(function ($request) {
  21. return Auth::check() && $request->user()->is_admin;
  22. });
  23. Blade::directive('prettyNumber', function($expression) {
  24. $num = $expression;
  25. $abbrevs = array(12 => "T", 9 => "B", 6 => "M", 3 => "K", 0 => "");
  26. foreach($abbrevs as $exponent => $abbrev) {
  27. if($expression >= pow(10, $exponent)) {
  28. $display_num = $expression / pow(10, $exponent);
  29. $num = number_format($display_num,0) . $abbrev;
  30. return "<?php echo '$num'; ?>";
  31. }
  32. }
  33. return "<?php echo $num; ?>";
  34. });
  35. Blade::directive('prettySize', function($expression) {
  36. $size = intval($expression);
  37. $precision = 0;
  38. $short = true;
  39. $units = $short ?
  40. ['B','k','M','G','T','P','E','Z','Y'] :
  41. ['B','kB','MB','GB','TB','PB','EB','ZB','YB'];
  42. for($i = 0; ($size / 1024) > 0.9; $i++, $size /= 1024) {}
  43. $res = round($size, $precision).$units[$i];
  44. return "<?php echo '$res'; ?>";
  45. });
  46. Blade::directive('maxFileSize', function() {
  47. $value = config('pixelfed.max_photo_size');
  48. return \App\Util\Lexer\PrettyNumber::size($value, true);
  49. });
  50. }
  51. /**
  52. * Register any application services.
  53. *
  54. * @return void
  55. */
  56. public function register()
  57. {
  58. //
  59. }
  60. }