Blame view

app/Http/ViewComposers/Suggestions.php 1.3 KB
b7c7a5f6   Alexey Boroda   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
  <?php
  
  namespace App\Http\ViewComposers;
  
  use Illuminate\View\View;
  use App\Traits\Modules as RemoteModules;
  use Route;
  use App\Models\Module\Module;
  
  class Suggestions
  {
      use RemoteModules;
  
      /**
       * Bind data to the view.
       *
       * @param  View  $view
       * @return void
       */
      public function compose(View $view)
      {
          // No need to add suggestions in console
          if (app()->runningInConsole() || !env('APP_INSTALLED')) {
              return;
          }
  
          $modules = false;
  
          $path = Route::current()->uri();
  
          if ($path) {
              $suggestions = $this->getSuggestions($path);
  
              if ($suggestions) {
                  $suggestion_modules = $suggestions->modules;
  
                  foreach ($suggestion_modules as $key => $module) {
                      $installed = Module::where('company_id', '=', session('company_id'))->where('alias', '=', $module->alias)->first();
  
                      if ($installed) {
                          unset($suggestion_modules[$key]);
                      }
                  }
  
                  if ($suggestion_modules) {
                      shuffle($suggestion_modules);
  
                      $modules[] = $suggestion_modules[0];
                  }
              }
          }
  
          $view->with(['suggestion_modules' => $modules]);
      }
  }