1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace Kunstmaan\TranslatorBundle\Service\Menu; |
4
|
|
|
|
5
|
|
|
use Kunstmaan\AdminBundle\Helper\Menu\MenuAdaptorInterface; |
6
|
|
|
use Kunstmaan\AdminBundle\Helper\Menu\MenuBuilder; |
7
|
|
|
use Kunstmaan\AdminBundle\Helper\Menu\MenuItem; |
8
|
|
|
use Symfony\Component\HttpFoundation\Request; |
9
|
|
|
|
10
|
|
|
class TranslatorMenuAdaptor implements MenuAdaptorInterface |
11
|
|
|
{ |
12
|
|
|
/** |
13
|
|
|
* In this method you can add children for a specific parent, but also remove and change the already created children |
14
|
|
|
* |
15
|
|
|
* @param MenuBuilder $menu The MenuBuilder |
16
|
|
|
* @param MenuItem[] &$children The current children |
17
|
|
|
* @param MenuItem $parent The parent Menu item |
|
|
|
|
18
|
|
|
* @param Request $request The Request |
|
|
|
|
19
|
|
|
*/ |
20
|
|
|
public function adaptChildren(MenuBuilder $menu, array &$children, MenuItem $parent = null, Request $request = null) |
21
|
|
|
{ |
22
|
|
|
if (\is_null($parent)) { |
23
|
|
|
return; |
24
|
|
|
} |
25
|
|
|
|
26
|
|
View Code Duplication |
if ('KunstmaanAdminBundle_settings' == $parent->getRoute()) { |
27
|
|
|
$menuItem = new MenuItem($menu); |
28
|
|
|
$menuItem |
29
|
|
|
->setRoute('KunstmaanTranslatorBundle_settings_translations') |
30
|
|
|
->setLabel('translator.translator.title') |
31
|
|
|
->setUniqueId('Translations') |
32
|
|
|
->setParent($parent); |
33
|
|
|
if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) { |
34
|
|
|
$menuItem->setActive(true); |
35
|
|
|
$parent->setActive(true); |
36
|
|
|
} |
37
|
|
|
$children[] = $menuItem; |
38
|
|
|
} elseif ('KunstmaanTranslatorBundle_settings_translations' == $parent->getRoute()) { |
39
|
|
|
$menuItem = new MenuItem($menu); |
40
|
|
|
$menuItem |
41
|
|
|
->setRoute('KunstmaanTranslatorBundle_settings_translations_add') |
42
|
|
|
->setUniqueId('Add translation') |
43
|
|
|
->setLabel('Add translation') |
44
|
|
|
->setParent($parent) |
45
|
|
|
->setAppearInNavigation(false); |
46
|
|
|
if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) { |
47
|
|
|
$menuItem->setActive(true); |
48
|
|
|
} |
49
|
|
|
$children[] = $menuItem; |
50
|
|
|
|
51
|
|
|
$menuItem = new MenuItem($menu); |
52
|
|
|
$menuItem |
53
|
|
|
->setRoute('KunstmaanTranslatorBundle_settings_translations_edit') |
54
|
|
|
->setUniqueId('Edit translation') |
55
|
|
|
->setLabel('Edit translation') |
56
|
|
|
->setParent($parent) |
57
|
|
|
->setAppearInNavigation(false); |
58
|
|
|
if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) { |
59
|
|
|
$menuItem->setActive(true); |
60
|
|
|
} |
61
|
|
|
$children[] = $menuItem; |
62
|
|
|
} |
63
|
|
|
} |
64
|
|
|
} |
65
|
|
|
|
This check looks for
@param
annotations where the type inferred by our type inference engine differs from the declared type.It makes a suggestion as to what type it considers more descriptive.
Most often this is a case of a parameter that can be null in addition to its declared types.