/
ProdottiController.php
123 lines (77 loc) · 5.24 KB
/
ProdottiController.php
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<?php
namespace Ibi\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Http\Requests;
use Ibi\Repositories\ListiniRepo;
use Ibi\Repositories\PagineRepo;
use Ibi\Repositories\SezioniRepo;
use Ibi\Repositories\CategorieTerapeuticheRepo;
use Ibi\Repositories\PrincipiAttiviRepo;
use Illuminate\Http\Request;
use Session;
class ProdottiController extends Controller
{
public function __construct()
{
parent::__construct();
$this->middleware('guest', ['only' => 'area_riservata']);
}
public function prodotti_export(ListiniRepo $listini_repo, SezioniRepo $sezioni_repo, CategorieTerapeuticheRepo $categorie_repo, PrincipiAttiviRepo $principi_repo, PagineRepo $pagine_repo)
{
$prodotti_raw = $sezioni_repo->getBySlug('ibi-export')->prodotti;
list($prodotti, $categorie, $principi, $principi_validi, $contenuti, $listini) = $this->sliceData('prodotti-export', $prodotti_raw, $pagine_repo, $listini_repo);
// return $principi;
Session::put('currentPage', 'prodotti');
return view('prodotti.prodotti-export', compact('listini', 'prodotti', 'categorie', 'principi', 'principi_validi', 'contenuti'));
}
public function prodotti_italia(ListiniRepo $listini_repo, SezioniRepo $sezioni_repo, CategorieTerapeuticheRepo $categorie_repo, PrincipiAttiviRepo $principi_repo, PagineRepo $pagine_repo)
{
Session::put('currentPage', 'prodotti');
$prodotti_raw = $sezioni_repo->getBySlug('ibi-italia')->prodotti;
list($prodotti, $categorie, $principi, $principi_validi, $contenuti, $listini) = $this->sliceData('prodotti-italia', $prodotti_raw, $pagine_repo, $listini_repo);
return view('prodotti.prodotti-italia', compact('listini', 'prodotti', 'categorie', 'principi', 'principi_validi', 'contenuti'));
}
public function prodotti_ibisqus(ListiniRepo $listini_repo, SezioniRepo $sezioni_repo, CategorieTerapeuticheRepo $categorie_repo, PrincipiAttiviRepo $principi_repo, PagineRepo $pagine_repo)
{
Session::put('currentPage', 'prodotti');
$prodotti_raw = $sezioni_repo->getBySlug('ibisqus-regno-unito')->prodotti;
list($prodotti, $categorie, $principi, $principi_validi, $contenuti, $listini) = $this->sliceData('prodotti-ibisqus', $prodotti_raw, $pagine_repo, $listini_repo);
return view('prodotti.prodotti-ibisqus', compact('listini', 'prodotti', 'categorie', 'principi', 'principi_validi', 'contenuti'));
}
public function prodotti_ibisqus_italia(ListiniRepo $listini_repo, SezioniRepo $sezioni_repo, CategorieTerapeuticheRepo $categorie_repo, PrincipiAttiviRepo $principi_repo, PagineRepo $pagine_repo)
{
Session::put('currentPage', 'prodotti');
$prodotti_raw = $sezioni_repo->getBySlug('ibisqus-italia')->prodotti;
list($prodotti, $categorie, $principi, $principi_validi, $contenuti, $listini) = $this->sliceData('prodotti-ibisqus', $prodotti_raw, $pagine_repo, $listini_repo);
return view('prodotti.prodotti-ibisqus-italia', compact('listini', 'prodotti', 'categorie', 'principi', 'principi_validi', 'contenuti'));
}
public function prodotti_ibisqus_germania(ListiniRepo $listini_repo, SezioniRepo $sezioni_repo, CategorieTerapeuticheRepo $categorie_repo, PrincipiAttiviRepo $principi_repo, PagineRepo $pagine_repo)
{
Session::put('currentPage', 'prodotti');
$prodotti_raw = $sezioni_repo->getBySlug('ibisqus-germania')->prodotti;
list($prodotti, $categorie, $principi, $principi_validi, $contenuti, $listini) = $this->sliceData('prodotti-ibisqus', $prodotti_raw, $pagine_repo, $listini_repo);
return view('prodotti.prodotti-ibisqus-germania', compact('listini', 'prodotti', 'categorie', 'principi', 'principi_validi', 'contenuti'));
}
public function prodotti_ibisqus_uk(ListiniRepo $listini_repo, SezioniRepo $sezioni_repo, CategorieTerapeuticheRepo $categorie_repo, PrincipiAttiviRepo $principi_repo, PagineRepo $pagine_repo)
{
Session::put('currentPage', 'prodotti');
$prodotti_raw = $sezioni_repo->getBySlug('ibisqus-regno-unito')->prodotti;
list($prodotti, $categorie, $principi, $principi_validi, $contenuti, $listini) = $this->sliceData('prodotti-ibisqus', $prodotti_raw, $pagine_repo, $listini_repo);
return view('prodotti.prodotti-ibisqus-uk', compact('listini', 'prodotti', 'categorie', 'principi', 'principi_validi', 'contenuti'));
}
private function sliceData($sezione, $prodotti_raw, $pagine_repo, $listini_repo)
{
$listini = $listini_repo->getAllFront();
$contenuti = $pagine_repo->getContentForPage($sezione);
$prodotti = [];
foreach ($prodotti_raw as $prodotto) {
$prodotti[strtoupper($prodotto['nome'])][] = $prodotto;
}
$categorie = collect(array_pluck(array_collapse($prodotti), 'categoria_terapeutica'))->unique();
$principi_validi = array_pluck(collect(array_pluck(array_collapse($prodotti), 'principio_attivo'))->unique(), 'slug');
$principi = collect(array_sort(array_pluck(array_collapse($prodotti), 'principio_attivo'), function ($value) {
return $value['nome'];
}))->unique();
return array($prodotti, $categorie, $principi, $principi_validi, $contenuti, $listini);
}
}