File: /var/www/ipsremont-demo/app/Http/ViewComposers/TopMenuComposer.php
<?php
namespace App\Http\ViewComposers;
use Illuminate\Support\Facades\Auth;
class TopMenuComposer
{
public static function render($route, $activeMenu)
{
$items = self::items();
$result = '';
$prefix = substr($route->getPrefix(), 1);
$slug = str_replace("/$prefix/", '', $route->getCompiled()->getStaticPrefix());
if(strpos($slug, '/'))
$slug = stristr($slug, '/', true);
if(isset($items[$prefix]))
foreach ($items[$prefix] as $item) {
$class = ($item['slug'] == $slug || $item['slug'] == $activeMenu)
? 'menu-item menu-item-submenu menu-item-rel menu-item-active'
: 'menu-item menu-item-submenu menu-item-rel';
$result .=
'<li class="' . $class . '" aria-haspopup="true">
<a href="' . $item['href'] . '" onclick="goToLink(this)" class="menu-link menu-toggle">
<span class="menu-text">' . __($item['name']) . '</span>
<i class="menu-arrow"></i>
</a>
</li>';
}
echo $result;
}
protected static function items()
{
$fields['emails'] = [
[
'name' => 'topMenu.emails.users',
'href' => '/emails/users',
'slug' => 'users'
],
[
'name' => 'topMenu.emails.orders',
'href' => '/emails/orders',
'slug' => 'orders'
],
[
'name' => 'topMenu.emails.repairs',
'href' => '/emails/repairs',
'slug' => 'repairs'
],
[
'name' => 'topMenu.emails.acttc',
'href' => '/emails/acttc',
'slug' => 'acttc'
],
[
'name' => 'topMenu.emails.shipment',
'href' => '/emails/shipment',
'slug' => 'shipment'
],
[
'name' => 'topMenu.emails.address',
'href' => '/emails/address',
'slug' => 'address'
],
[
'name' => 'topMenu.emails.columnTitle',
'href' => '/emails/columntitle',
'slug' => 'columntitle'
],
[
'name' => 'topMenu.emails.sent',
'href' => '/emails/list',
'slug' => 'list'
]
];
if(Auth::user()->isService()) {
$fields['repairs'] = [
[
'name' => 'topMenu.repairs.repairs',
'href' => '/repairs/index',
'slug' => 'index'
],
[
'name' => 'topMenu.repairs.reporting',
'href' => '/repairs/reporting',
'slug' => 'reporting'
]
];
}
return $fields;
}
}