Files
crater/app/Providers/AppServiceProvider.php
Mohit Panjwani bdea879273 v6 update
2022-01-10 16:06:17 +05:30

70 lines
1.7 KiB
PHP

<?php
namespace Crater\Providers;
use Illuminate\Pagination\Paginator;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Paginator::useBootstrapThree();
$this->loadJsonTranslationsFrom(resource_path('scripts/locales'));
if (\Storage::disk('local')->has('database_created') && Schema::hasTable('abilities')) {
$this->addMenus();
}
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
public function addMenus()
{
//main menu
\Menu::make('main_menu', function ($menu) {
foreach (config('crater.main_menu') as $data) {
$this->generateMenu($menu, $data);
}
});
//setting menu
\Menu::make('setting_menu', function ($menu) {
foreach (config('crater.setting_menu') as $data) {
$this->generateMenu($menu, $data);
}
});
\Menu::make('customer_portal_menu', function ($menu) {
foreach (config('crater.customer_menu') as $data) {
$this->generateMenu($menu, $data);
}
});
}
public function generateMenu($menu, $data)
{
$menu->add($data['title'], $data['link'])
->data('icon', $data['icon'])
->data('name', $data['name'])
->data('owner_only', $data['owner_only'])
->data('ability', $data['ability'])
->data('model', $data['model'])
->data('group', $data['group']);
}
}