Skip to content
This repository was archived by the owner on Jan 3, 2023. It is now read-only.

Commit d69ccf5

Browse files
committed
fuck yeah
- add a solution for centralizing a view for routes with params so we can have now each menu view can have its own format and one place to resolve route params. WEEEEEEE - update wiki - update rdme
1 parent 852893a commit d69ccf5

7 files changed

+56
-37
lines changed

README.md

+2-3
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@
1313

1414
- `composer require ctf0/simple-menu`
1515

16-
- add the service provider & facade to `config/app.php`
16+
- add the service provider & facade to `config/app.php`
1717

1818
- all the package dependencies "serviceProvider & aliases" are registerd with the package.
19-
19+
2020
```php
2121
'providers' => [
2222
ctf0\SimpleMenu\SimpleMenuServiceProvider::class,
@@ -100,4 +100,3 @@ Ofcourse you are free to code your app the way you want, but just in-case here a
100100

101101
* [ ] CRUD Views for (roles/perms/pages/menus).
102102
* [ ] Clear cache through pivot table events.
103-
* [ ] Find away to share route params across all views with `@include` or similar.

src/Traits/NavigationTrait.php

+23-8
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
trait NavigationTrait
99
{
10+
protected $urlRoute;
11+
1012
/**
1113
* resolve route & params for lang switcher.
1214
*
@@ -57,7 +59,7 @@ public function getUrl($code)
5759
public function getRoute($crntRouteName, array $params = null)
5860
{
5961
$code = LaravelLocalization::getCurrentLocale();
60-
$url = $this->routeLink($crntRouteName, $code);
62+
$url = $this->routeLink($crntRouteName, $code);
6163

6264
// resolve route params
6365
if ($params) {
@@ -69,17 +71,30 @@ public function getRoute($crntRouteName, array $params = null)
6971

7072
// fix link not being 'is-active' when "hideDefaultLocaleInURL => true"
7173
if (LaravelLocalization::hideDefaultLocaleInURL() && $code == LaravelLocalization::getDefaultLocale()) {
72-
return url($this->getParams($url, $value));
74+
$finalUrl = LaravelLocalization::getLocalizedURL($code, url($this->getParams($url, $value)), []);
75+
}else {
76+
$finalUrl = LaravelLocalization::getLocalizedURL($code, url($this->getParams($url, $value)), [], true);
7377
}
7478

75-
return LaravelLocalization::getLocalizedURL(
76-
$code, url($this->getParams($url, $value)), [], true
77-
);
79+
$this->urlRoute = $finalUrl;
80+
return $finalUrl;
7881
}
7982
}
8083
}
8184

82-
return route($crntRouteName);
85+
$finalUrl = route($crntRouteName);
86+
$this->urlRoute = $finalUrl;
87+
return $finalUrl;
88+
}
89+
90+
/**
91+
* helper.
92+
*
93+
* @return [type] [description]
94+
*/
95+
public function urlRoute()
96+
{
97+
return $this->urlRoute;
8398
}
8499

85100
/**
@@ -128,12 +143,12 @@ public function render($pages, $classes = null, $params = null, $url)
128143
case 'config':
129144
$ul = config('simpleMenu.listClasses.ul');
130145
$li = config('simpleMenu.listClasses.li');
131-
$a = config('simpleMenu.listClasses.a');
146+
$a = config('simpleMenu.listClasses.a');
132147
break;
133148
default:
134149
$ul = array_get($classes, 'ul');
135150
$li = array_get($classes, 'li');
136-
$a = array_get($classes, 'a');
151+
$a = array_get($classes, 'a');
137152
break;
138153
}
139154

src/views/breadCrump.blade.php

+4-6
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
<ul>
2-
@foreach ($items as $item)
3-
@php
4-
$route = SimpleMenu::getRoute($item->route_name);
5-
@endphp
2+
@foreach ($items as $one)
3+
@include('SimpleMenu::partials.r_params')
64

75
<li>
8-
<a href="{{ $route }}" class="{{ request()->url() == $route ? 'is-active' : '' }}">
9-
{{ $item->title }}
6+
<a href="{{ SimpleMenu::urlRoute() }}" class="{{ request()->url() == SimpleMenu::urlRoute() ? 'is-active' : '' }}">
7+
{{ $one->title }}
108
</a>
119
</li>
1210
@if (!$loop->last)

src/views/menu/_nested.blade.php

-15
This file was deleted.

src/views/menu/example.blade.php

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
<ul>
22
@foreach ($PAGES as $one)
33

4-
@php
5-
$route = SimpleMenu::getRoute($one->route_name);
6-
@endphp
4+
@include('SimpleMenu::partials.r_params')
75

86
<li>
9-
<a href="{{ $route }}" class="{{ request()->url() == $route ? 'is-active' : '' }}">{{ $one->title }}</a>
7+
<a href="{{ SimpleMenu::urlRoute() }}" class="{{ request()->url() == SimpleMenu::urlRoute() ? 'is-active' : '' }}">{{ $one->title }}</a>
108

119
@if (count($childs = $one->getImmediateDescendants()))
1210
<ul>
13-
@include('SimpleMenu::menu._nested', ['items' => $childs])
11+
@include('SimpleMenu::partials.nested', ['items' => $childs])
1412
</ul>
1513
@endif
1614
</li>

src/views/partials/nested.blade.php

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
@foreach ($items as $one)
2+
@include('SimpleMenu::partials.r_params')
3+
4+
<li>
5+
<a href="{{ SimpleMenu::urlRoute() }}" class="{{ request()->url() == SimpleMenu::urlRoute() ? 'is-active' : '' }}">{{ $one->title }}</a>
6+
7+
@if (count($childs = $one->getImmediateDescendants()))
8+
<ul>
9+
@include('SimpleMenu::partials.nested', ['items' => $childs])
10+
</ul>
11+
@endif
12+
</li>
13+
@endforeach

src/views/partials/r_params.blade.php

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
@php
2+
SimpleMenu::getRoute($one->route_name);
3+
@endphp
4+
5+
{{-- example --}}
6+
{{-- @php
7+
SimpleMenu::getRoute($one->route_name, [
8+
'about' => ['name'=> isset($var) ? $var : 'default'],
9+
'contact-us' => ['name'=>'other'],
10+
])
11+
@endphp --}}

0 commit comments

Comments
 (0)