Skip to content

Commit 06ba934

Browse files
committed
added "megamenu" option
1 parent 54a6941 commit 06ba934

7 files changed

Lines changed: 83 additions & 1 deletion

File tree

src/Builder.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,10 @@ public function mainMenu(array $options)
7878
$this->menu->getChild($menuItem['title'])->setLinkAttribute('target', '_blank');
7979
}
8080

81+
if($menuItem['isMegaMenu']){
82+
$this->menu->getChild($menuItem['title'])->setAttribute('class', 'megamenu');
83+
}
84+
8185
$this->recursiveGeneratePositions($menuItems, $menuId, $menuItem);
8286

8387
}
@@ -98,7 +102,8 @@ private function getItemsFromDB(int $category_id)
98102
$menuItems[($menuItem->getParent() ? $menuItem->getParent()->getId() : 0)][$menuItem->getId()] = [
99103
'title' => $menuItem->getTitle(),
100104
'isInNewTab' => $menuItem->isInNewTab(),
101-
'url' => $this->returnRoute($menuItem->getRoute())
105+
'url' => $this->returnRoute($menuItem->getRoute()),
106+
'isMegaMenu' => $menuItem->isMegamenu()
102107
];
103108
}
104109

src/Entity/Menu.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,12 @@ class Menu implements TranslatableInterface, BlameableInterface, TimestampableIn
5252
*/
5353
private $isInNewTab = false;
5454

55+
/**
56+
* @var boolean
57+
* @ORM\Column(type="boolean")
58+
*/
59+
private $isMegamenu = false;
60+
5561
public function __toString()
5662
{
5763
$title = $this->translate(null, false)->getTitle();
@@ -154,4 +160,20 @@ public function setRoute($route): void
154160
{
155161
$this->translate(null, false)->setRoute($route);
156162
}
163+
164+
/**
165+
* @return bool
166+
*/
167+
public function isMegamenu(): bool
168+
{
169+
return $this->isMegamenu;
170+
}
171+
172+
/**
173+
* @param bool $isMegamenu
174+
*/
175+
public function setIsMegamenu(bool $isMegamenu): void
176+
{
177+
$this->isMegamenu = $isMegamenu;
178+
}
157179
}

src/Form/MenuType.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ public function buildForm(FormBuilderInterface $builder, array $options)
6666
'label' => $this->translator->translate('menu.open_in_a_new_tab'),
6767
'help' => $this->translator->translate('menu.open_in_a_new_tab_help')
6868
])
69+
->add('isMegamenu', ToggleChoiceType::class,[
70+
'label' => $this->translator->translate('menu.is_mega_menu')
71+
])
6972
->add('buttons', SaveButtonsType::class);
7073
}
7174

src/templates/menu/index.html.twig

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@
3232
<span class="badge badge-warning">{{ "cms.no_translations"|translate_admin }}</span>
3333
{% endif %}
3434
</a>
35+
{% if child.isMegamenu %}
36+
<span class="badge badge-info">{{ "menu.megamenu"|translate_admin }}</span>
37+
{% endif %}
3538
</div>
3639
</div>
3740
{{ block('changes_box_in_list') }}
@@ -72,6 +75,9 @@
7275
<span class="badge badge-warning">{{ "cms.no_translations"|translate_admin }}</span>
7376
{% endif %}
7477
</a>
78+
{% if menu.isMegamenu %}
79+
<span class="badge badge-info">{{ "menu.megamenu"|translate_admin }}</span>
80+
{% endif %}
7581
</div>
7682
</div>
7783
{{ block('changes_box_in_list') }}

src/translations/messages.en.yaml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,27 @@
11
menu:
22
menu: Menu
3+
add_new_menu_position: Dodawanie nowej pozycji
4+
edit_menu_category: Edytuj
5+
menu_elements: Zawartość menu
6+
add_new_menu_item: Tworzenie nowej pozycji menu
37
redirect: Redirect
48
parent: Parent item
59
choose_parent: Choose parent
610
open_in_a_new_tab: Open in a new tab
711
open_in_a_new_tab_help: Select YES if this link is to open in a new tab
12+
the_menu_item_has_been_deleted: Pozycja menu została skasowana
13+
megamenu: Megamenu
14+
is_mega_menu: Czy to jest megamenu?
15+
16+
menu_category:
17+
menu_categories: Kategorie menu
18+
title: Nazwa menu
19+
code: Kod menu
20+
isCached: Czy jest cachowane?
21+
cache: Cache
22+
add_new_menu: Dodawanie nowego menu
23+
24+
25+
26+
27+

src/translations/messages.pl.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ menu:
1010
open_in_a_new_tab: Otworzyć w nowej karcie
1111
open_in_a_new_tab_help: Wybierz TAK, jeśli ten link ma się otworzyć w nowej zakładce
1212
the_menu_item_has_been_deleted: Pozycja menu została skasowana
13+
megamenu: Megamenu
14+
is_mega_menu: Czy to jest megamenu?
1315

1416
menu_category:
1517
menu_categories: Kategorie menu

src/translations/messages.ru.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
menu:
2+
menu: Меню
3+
add_new_menu_position: Создание новой позиции
4+
edit_menu_category: Редактировать
5+
menu_elements: Содержимое меню
6+
add_new_menu_item: Создание нового елемента
7+
redirect: Перенаправление
8+
parent: Родительская позиция меню
9+
choose_parent: Выберите страницу
10+
open_in_a_new_tab: Открыть в новой вкладке
11+
open_in_a_new_tab_help: Выберите ДА, если ссылка должна открыться в новой вкладке
12+
the_menu_item_has_been_deleted: Элемент меню удален
13+
megamenu: Мегаменю
14+
is_mega_menu: Czy to jest megamenu?
15+
16+
menu_category:
17+
menu_categories: Kategorie menu
18+
title: Nazwa menu
19+
code: Kod menu
20+
isCached: Czy jest cachowane?
21+
cache: Cache
22+
add_new_menu: Dodawanie nowego menu
23+
24+

0 commit comments

Comments
 (0)