KyleMassacre /
laravel-menus
| 1 | <?php |
||||
| 2 | |||||
| 3 | namespace KyleMassacre\Menus\Presenters\Bootstrap; |
||||
| 4 | |||||
| 5 | use KyleMassacre\Menus\Contracts\MenuItemContract; |
||||
| 6 | use KyleMassacre\Menus\Presenters\Presenter; |
||||
| 7 | |||||
| 8 | class NavbarPresenter extends Presenter |
||||
| 9 | { |
||||
| 10 | /** |
||||
| 11 | * {@inheritdoc} |
||||
| 12 | */ |
||||
| 13 | 5 | public function getOpenTagWrapper(): ?string |
|||
| 14 | { |
||||
| 15 | 5 | return PHP_EOL . '<ul class="nav navbar-nav">' . PHP_EOL; |
|||
| 16 | } |
||||
| 17 | |||||
| 18 | /** |
||||
| 19 | * {@inheritdoc} |
||||
| 20 | */ |
||||
| 21 | 5 | public function getCloseTagWrapper(): ?string |
|||
| 22 | { |
||||
| 23 | 5 | return PHP_EOL . '</ul>' . PHP_EOL; |
|||
| 24 | } |
||||
| 25 | |||||
| 26 | /** |
||||
| 27 | * {@inheritdoc} |
||||
| 28 | */ |
||||
| 29 | public function getMenuWithoutDropdownWrapper(MenuItemContract $item): ?string |
||||
| 30 | { |
||||
| 31 | return '<li' . $this->getActiveState($item) . '><a href="' . $item->getUrl() . '" ' . $item->getAttributes() . '>' . $item->getIcon() . ' ' . $item->title . '</a></li>' . PHP_EOL; |
||||
|
0 ignored issues
–
show
The property
title does not exist on KyleMassacre\Menus\Contracts\MenuItemContract. Since you implemented __get, consider adding a @property annotation.
Loading history...
|
|||||
| 32 | } |
||||
| 33 | |||||
| 34 | /** |
||||
| 35 | * {@inheritdoc} |
||||
| 36 | */ |
||||
| 37 | public function getActiveState(MenuItemContract $item, string $state = ' class="active"'): ?string |
||||
| 38 | { |
||||
| 39 | return $item->isActive() ? $state : null; |
||||
| 40 | } |
||||
| 41 | |||||
| 42 | /** |
||||
| 43 | * Get active state on child items. |
||||
| 44 | * |
||||
| 45 | * @param $item |
||||
| 46 | * @param string $state |
||||
| 47 | * |
||||
| 48 | * @return null|string |
||||
| 49 | */ |
||||
| 50 | public function getActiveStateOnChild(MenuItemContract $item, string $state = 'active'): ?string |
||||
| 51 | { |
||||
| 52 | return $item->hasActiveOnChild() ? $state : null; |
||||
| 53 | } |
||||
| 54 | |||||
| 55 | /** |
||||
| 56 | * {@inheritdoc} |
||||
| 57 | */ |
||||
| 58 | public function getDividerWrapper(): ?string |
||||
| 59 | { |
||||
| 60 | return '<li class="divider"></li>'; |
||||
| 61 | } |
||||
| 62 | |||||
| 63 | /** |
||||
| 64 | * {@inheritdoc} |
||||
| 65 | */ |
||||
| 66 | public function getHeaderWrapper(MenuItemContract $item): ?string |
||||
| 67 | { |
||||
| 68 | return '<li class="dropdown-header">' . $item->title . '</li>'; |
||||
|
0 ignored issues
–
show
The property
title does not exist on KyleMassacre\Menus\Contracts\MenuItemContract. Since you implemented __get, consider adding a @property annotation.
Loading history...
|
|||||
| 69 | } |
||||
| 70 | |||||
| 71 | /** |
||||
| 72 | * {@inheritdoc} |
||||
| 73 | */ |
||||
| 74 | public function getMenuWithDropDownWrapper(MenuItemContract $item): ?string |
||||
| 75 | { |
||||
| 76 | return '<li class="dropdown' . $this->getActiveStateOnChild($item, ' active') . '"> |
||||
| 77 | <a href="#" class="dropdown-toggle" data-toggle="dropdown"> |
||||
| 78 | ' . $item->getIcon() . ' ' . $item->title . ' |
||||
|
0 ignored issues
–
show
The property
title does not exist on KyleMassacre\Menus\Contracts\MenuItemContract. Since you implemented __get, consider adding a @property annotation.
Loading history...
The call to
KyleMassacre\Menus\Contr...ItemContract::getIcon() has too few arguments starting with default.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check compares calls to functions or methods with their respective definitions. If the call has less arguments than are defined, it raises an issue. If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. Please note the @ignore annotation hint above. Loading history...
|
|||||
| 79 | <b class="caret"></b> |
||||
| 80 | </a> |
||||
| 81 | <ul class="dropdown-menu"> |
||||
| 82 | ' . $this->getChildMenuItems($item) . ' |
||||
| 83 | </ul> |
||||
| 84 | </li>' |
||||
| 85 | . PHP_EOL; |
||||
| 86 | } |
||||
| 87 | |||||
| 88 | /** |
||||
| 89 | * Get multilevel menu wrapper. |
||||
| 90 | * |
||||
| 91 | * @param MenuItemContract $item |
||||
| 92 | * |
||||
| 93 | * @return string |
||||
| 94 | */ |
||||
| 95 | public function getMultiLevelDropdownWrapper(MenuItemContract $item): string |
||||
| 96 | { |
||||
| 97 | return '<li class="dropdown' . $this->getActiveStateOnChild($item, ' active') . '"> |
||||
| 98 | <a href="#" class="dropdown-toggle" data-toggle="dropdown"> |
||||
| 99 | ' . $item->getIcon() . ' ' . $item->title . ' |
||||
|
0 ignored issues
–
show
The property
title does not exist on KyleMassacre\Menus\Contracts\MenuItemContract. Since you implemented __get, consider adding a @property annotation.
Loading history...
The call to
KyleMassacre\Menus\Contr...ItemContract::getIcon() has too few arguments starting with default.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check compares calls to functions or methods with their respective definitions. If the call has less arguments than are defined, it raises an issue. If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. Please note the @ignore annotation hint above. Loading history...
|
|||||
| 100 | <b class="caret pull-right caret-right"></b> |
||||
| 101 | </a> |
||||
| 102 | <ul class="dropdown-menu"> |
||||
| 103 | ' . $this->getChildMenuItems($item) . ' |
||||
| 104 | </ul> |
||||
| 105 | </li>' |
||||
| 106 | . PHP_EOL; |
||||
| 107 | } |
||||
| 108 | } |
||||
| 109 |
This check compares calls to functions or methods with their respective definitions. If the call has less arguments than are defined, it raises an issue.
If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. Please note the @ignore annotation hint above.