Exemple #1
0
 /**
  * Bootstrap any application services.
  *
  * @return void
  */
 public function boot()
 {
     User::created(function (User $user) {
         Folder::create(['name' => '/', 'user_id' => $user->id]);
         Activity::create(['type' => 'user_created', 'user_id' => $user->id]);
     });
     Folder::deleting(function (Folder $folder) {
         foreach ($folder->folders as $_folder) {
             $_folder->_delete();
         }
         foreach ($folder->files as $file) {
             $file->delete();
         }
     });
     File::deleting(function (File $file) {
         $file = updateFile($file, fileInfo($file));
         $filenames = [];
         if ($file->type == 'image') {
             $altImages = ['opt', 'xs'];
             foreach ($altImages as $suffix) {
                 $name = explode('.', $file->filename)[0];
                 $extension = explode('.', $file->filename)[1];
                 array_push($filenames, "{$name}.{$suffix}.{$extension}");
             }
         }
         Storage::delete($file->filename);
         if (!empty($filenames)) {
             foreach ($filenames as $filename) {
                 Storage::delete($filename);
             }
         }
     });
 }
Exemple #2
0
 public function createFolder(Request $request, Folder $folder)
 {
     $this->authorize('all', $folder);
     $this->validate($request, $this->nameValidationRules());
     Folder::create(['parent_id' => $folder->id, 'user_id' => $folder->user->id, 'name' => $request->name]);
     fmsgs(['title' => 'New Folder', 'type' => 'success', 'text' => 'The folder created successfully']);
     return redirect('/files/' . $folder->id);
 }
Exemple #3
0
 public function uri($linkSelf = false)
 {
     $folder = $this;
     $folders = [$folder];
     while ($folder->parent_id) {
         $folder = Folder::find($folder->parent_id);
         array_push($folders, $folder);
     }
     $folders = array_reverse($folders);
     $view = "";
     $tpl = "<li><a href='%s'>%s</a></li>";
     $tplActive = "<li class='active'>%s</li>";
     foreach ($folders as $index => $folder) {
         if ($folder->name === "/") {
             $folder->name = 'Files';
         }
         if (count($folders) === $index + 1 && !$linkSelf) {
             $view .= sprintf($tplActive, $folder->name);
         } else {
             $view .= sprintf($tpl, url("/files/" . $folder->id), $folder->name);
         }
     }
     return $view;
 }