datatable.directory codebase https://datatable.directory/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
datatable.directory/app/Providers/AppServiceProvider.php

75 lines
2.3 KiB

6 years ago
<?php
namespace App\Providers;
use App\Models\User;
use App\View\WidgetFactory;
6 years ago
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
if($this->app->environment('production')) {
\URL::forceScheme('https');
}
\Route::bind('user', function ($value) {
// Hack to have the URL case insensitive (also needed a vendor patch for login)
$u = User::whereRaw('LOWER(name)=LOWER(?)', [$value])->first();
// it may also be the _id directly
if (!$u && is_numeric($value)) $u = User::find((int)$value);
if (!$u) abort(404);
return $u;
});
6 years ago
\Blade::directive('tooltip', function($arg) {
$arge = e($arg);
return 'aria-label="' . $arge . '" title="' . $arge . '"';
});
\Blade::directive('sr', function($arg) {
$sr = str_replace('~', '&nbsp;', e($arg));
return '<span class="sr-only">'.$sr.'</span>';
});
\Blade::directive('icon', function($arg) {
// arg: classes... , alt text
// tildes in alt text may be used to add nbsp to sr-only, they are removed from the tooltip.
// giving no alt text makes it sr-hidden, with no tooltip
$parts = explode(',', $arg, 2);
if (count($parts) == 2) {
list($classes, $title) = $parts;
$classes = trim($classes);
$title = trim($title);
$sr = str_replace('~', '&nbsp;', e($title));
$tit = str_replace('~', '', e(trim($title, ' \r\n\t:,')));
return '<span class="sr-only">' . $sr . '</span>' .
'<i class="' . e($classes) . '" title="' . $tit . '" aria-hidden=true></i>';
} else {
return '<i class="' . e(trim($arg)) . '" aria-hidden=true></i>';
}
});
6 years ago
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
$this->app->singleton(WidgetFactory::class, function () {
return new WidgetFactory();
});
6 years ago
}
}