1
|
|
|
<?php namespace VojtaSvoboda\Brands\Controllers; |
2
|
|
|
|
3
|
|
|
use BackendMenu; |
4
|
|
|
use Backend\Classes\Controller; |
5
|
|
|
use Input; |
6
|
|
|
use Session; |
7
|
|
|
use VojtaSvoboda\Brands\Models\Category; |
8
|
|
|
|
9
|
|
|
/** |
10
|
|
|
* Brands Back-end Controller |
11
|
|
|
*/ |
12
|
|
|
class Brands extends Controller |
13
|
|
|
{ |
14
|
|
|
public $implement = [ |
15
|
|
|
'Backend\Behaviors\FormController', |
16
|
|
|
'Backend\Behaviors\ListController', |
17
|
|
|
'Backend\Behaviors\ReorderController', |
18
|
|
|
]; |
19
|
|
|
|
20
|
|
|
public $formConfig = 'config_form.yaml'; |
21
|
|
|
public $listConfig = 'config_list.yaml'; |
22
|
|
|
public $reorderConfig = 'config_reorder.yaml'; |
23
|
|
|
|
24
|
|
|
public $requiredPermissions = [ |
25
|
|
|
'vojtasvoboda.brands.brands', |
26
|
|
|
]; |
27
|
|
|
|
28
|
|
|
public function __construct() |
29
|
|
|
{ |
30
|
|
|
parent::__construct(); |
31
|
|
|
|
32
|
|
|
BackendMenu::setContext('VojtaSvoboda.Brands', 'brands', 'brands'); |
33
|
|
|
|
34
|
|
|
// update filters by GET parameter |
35
|
|
|
if ($id = Input::get('category')) { |
36
|
|
|
// get original filtering |
37
|
|
|
$widgetSession = Session::get('widget'); |
38
|
|
|
$key = 'vojtasvoboda_brands-Brands-Filter-listFilter'; |
39
|
|
|
|
40
|
|
|
// create new filter |
41
|
|
|
$filter['scope-category'] = [ |
|
|
|
|
42
|
|
|
$id => Category::find($id)->name, |
43
|
|
|
]; |
44
|
|
|
|
45
|
|
|
// save new filter |
46
|
|
|
$encoded = base64_encode(serialize($filter)); |
47
|
|
|
$withoutFiltering = !isset($widgetSession[$key]); |
48
|
|
|
if ($withoutFiltering || $widgetSession[$key] !== $encoded) { |
49
|
|
|
$widgetSession[$key] = $encoded; |
50
|
|
|
Session::put('widget', $widgetSession); |
51
|
|
|
} |
52
|
|
|
} |
53
|
|
|
} |
54
|
|
|
} |
55
|
|
|
|
Adding an explicit array definition is generally preferable to implicit array definition as it guarantees a stable state of the code.
Let’s take a look at an example:
As you can see in this example, the array
$myArray
is initialized the first time when the foreach loop is entered. You can also see that the value of thebar
key is only written conditionally; thus, its value might result from a previous iteration.This might or might not be intended. To make your intention clear, your code more readible and to avoid accidental bugs, we recommend to add an explicit initialization $myArray = array() either outside or inside the foreach loop.