X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/37b91b6b0ebd2dd77bb06daadcf062784d2a3ed2..refs/pull/1462/head:/app/Providers/AppServiceProvider.php diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 77154baac..9b91ba126 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -3,11 +3,14 @@ use Blade; use BookStack\Entities\Book; use BookStack\Entities\Bookshelf; +use BookStack\Entities\BreadcrumbsViewComposer; use BookStack\Entities\Chapter; use BookStack\Entities\Page; use BookStack\Settings\Setting; use BookStack\Settings\SettingService; use Illuminate\Database\Eloquent\Relations\Relation; +use Illuminate\Http\UploadedFile; +use Illuminate\Support\Facades\View; use Illuminate\Support\ServiceProvider; use Schema; use Validator; @@ -21,6 +24,17 @@ class AppServiceProvider extends ServiceProvider */ public function boot() { + // Custom validation methods + Validator::extend('image_extension', function ($attribute, $value, $parameters, $validator) { + $validImageExtensions = ['png', 'jpg', 'jpeg', 'bmp', 'gif', 'tiff', 'webp']; + return in_array(strtolower($value->getClientOriginalExtension()), $validImageExtensions); + }); + + Validator::extend('no_double_extension', function ($attribute, $value, $parameters, $validator) { + $uploadName = $value->getClientOriginalName(); + return substr_count($uploadName, '.') < 2; + }); + // Custom blade view directives Blade::directive('icon', function ($expression) { return ""; @@ -36,6 +50,9 @@ class AppServiceProvider extends ServiceProvider 'BookStack\\Chapter' => Chapter::class, 'BookStack\\Page' => Page::class, ]); + + // View Composers + View::composer('partials.breadcrumbs', BreadcrumbsViewComposer::class); } /**