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; }); \Blade::directive('tooltip', function($arg) { $arg = trim($arg); $placement = ''; if (starts_with($arg, ['top,', 'bottom,', 'left,', 'right,'])) { list($placement, $arg) = explode(',', $arg); $arg = trim($arg); } $arge = e($arg); $html = ''; if ($placement) $html .= 'data-placement="' . $placement . '" '; return $html . 'data-toggle="tooltip" aria-label="' . $arge . '" title="' . $arge . '"'; }); \Blade::directive('sr', function($arg) { $sr = str_replace('~', ' ', e($arg)); return ''.$sr.''; }); \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); $notooltip = false; if (strpos($title, 'sr:') === 0) { $notooltip = true; $title = substr($title, 3); } $sr = str_replace('~', ' ', e($title)); $tit = str_replace('~', '', e(trim($title, " \r\n\t:,"))); return '' . $sr . '' . ''; } else { return ''; } }); } /** * Register any application services. * * @return void */ public function register() { $this->app->singleton(WidgetFactory::class, function () { return new WidgetFactory(); }); } }