1+ <?php
2+
3+ use Diglactic \Breadcrumbs \Breadcrumbs ;
4+ use Diglactic \Breadcrumbs \Generator as BreadcrumbTrail ;
5+ use Illuminate \Support \Facades \Route ;
6+
7+ // admin dashboard
8+ Breadcrumbs::for ('admin.dashboard ' , function (BreadcrumbTrail $ trail ) {
9+ $ trail ->push ('Dashboard ' , route ('admin.dashboard ' ));
10+ });
11+
12+ Breadcrumbs::macro ('resource ' , function (string $ name , string $ title , ?string $ parentName = null ) {
13+ if ($ parentName ) {
14+ Breadcrumbs::for ("{$ name }.index " , function (BreadcrumbTrail $ trail , $ model ) use ($ name , $ title , $ parentName ) {
15+ $ trail ->parent ("{$ parentName }.show " , $ model );
16+ $ trail ->push ($ title , route ("{$ name }.index " , $ model ));
17+ });
18+
19+ Breadcrumbs::for ("{$ name }.create " , function (BreadcrumbTrail $ trail , $ model ) use ($ name ) {
20+ $ trail ->parent ("{$ name }.index " , $ model );
21+ $ trail ->push ('Create ' , route ("{$ name }.create " , $ model ));
22+ });
23+
24+ Breadcrumbs::for ("{$ name }.show " , function (BreadcrumbTrail $ trail , $ model , $ item ) use ($ name ) {
25+ $ trail ->parent ("{$ name }.index " , $ model , $ item );
26+ \Log::info ("{$ name }.show " );
27+ if (Route::has ("{$ name }.show " )) {
28+ $ trail ->push ($ item ->name ?? $ model , route ("{$ name }.show " , [$ model , $ item ]));
29+ } else {
30+ $ trail ->push ($ item ->name ?? $ model );
31+ }
32+ });
33+
34+ Breadcrumbs::for ("{$ name }.edit " , function (BreadcrumbTrail $ trail , $ model , $ item ) use ($ name ) {
35+ $ trail ->parent ("{$ name }.show " , $ model , $ item );
36+ $ trail ->push ('Edit ' , route ("{$ name }.edit " , [$ model , $ item ]));
37+ });
38+
39+ } else {
40+ Breadcrumbs::for ("{$ name }.index " , function (BreadcrumbTrail $ trail ) use ($ name , $ title ) {
41+ $ trail ->parent ('admin.dashboard ' );
42+ $ trail ->push ($ title , route ("{$ name }.index " ));
43+ });
44+
45+ Breadcrumbs::for ("{$ name }.create " , function (BreadcrumbTrail $ trail ) use ($ name ) {
46+ $ trail ->parent ("{$ name }.index " );
47+ $ trail ->push ('Create ' , route ("{$ name }.create " ));
48+ });
49+
50+ Breadcrumbs::for ("{$ name }.show " , function (BreadcrumbTrail $ trail , $ model ) use ($ name ) {
51+ $ trail ->parent ("{$ name }.index " );
52+ if (Route::has ("$ name.show " )) {
53+ $ trail ->push ($ model ->name ?? $ model , route ("{$ name }.show " , $ model ));
54+ } else {
55+ $ trail ->push ($ model ->name ?? $ model );
56+ }
57+ });
58+
59+ Breadcrumbs::for ("{$ name }.edit " , function (BreadcrumbTrail $ trail , $ model ) use ($ name ) {
60+ $ trail ->parent ("{$ name }.show " , $ model );
61+ $ trail ->push ('Edit ' , route ("{$ name }.edit " , $ model ));
62+ });
63+ }
64+ });
65+
66+ Breadcrumbs::resource ('admin.permission ' , 'Permissions ' );
67+ Breadcrumbs::resource ('admin.role ' , 'Roles ' );
68+ Breadcrumbs::resource ('admin.user ' , 'Users ' );
69+ Breadcrumbs::resource ('admin.media ' , 'Media ' );
70+ Breadcrumbs::resource ('admin.menu ' , 'Menu ' );
71+ Breadcrumbs::resource ('admin.menu.item ' , 'Menu Items ' , 'admin.menu ' );
72+ Breadcrumbs::resource ('admin.category.type ' , 'Category Types ' );
73+ Breadcrumbs::resource ('admin.category.type.item ' , 'Items ' , 'admin.category.type ' );
74+
75+ // admin account Info
76+ Breadcrumbs::for ('admin.account.info ' , function (BreadcrumbTrail $ trail ) {
77+ $ trail ->parent ('admin.dashboard ' );
78+ $ trail ->push ('Account Info ' , route ('admin.account.info ' ));
79+ });
0 commit comments