1<?php 2 3namespace App\Http\Controllers; 4 5use App\Checks; 6use Illuminate\Contracts\Session\Session; 7use Illuminate\Http\Request; 8use Illuminate\Support\Arr; 9use Illuminate\Support\Str; 10use LibreNMS\Config; 11use LibreNMS\Util\Debug; 12 13class LegacyController extends Controller 14{ 15 public function index(Request $request, Session $session) 16 { 17 Checks::postAuth(); 18 19 // Set variables 20 $no_refresh = false; 21 $init_modules = ['web', 'auth']; 22 require base_path('/includes/init.php'); 23 24 Debug::set(Str::contains($request->path(), 'debug')); 25 26 ob_start(); // protect against bad plugins that output during start 27 \LibreNMS\Plugins::start(); 28 ob_end_clean(); 29 30 if (Str::contains($request->path(), 'widescreen=yes')) { 31 $session->put('widescreen', 1); 32 } 33 if (Str::contains($request->path(), 'widescreen=no')) { 34 $session->forget('widescreen'); 35 } 36 37 // Load the settings for Multi-Tenancy. 38 if (Config::has('branding') && is_array(Config::get('branding'))) { 39 $branding = Arr::dot(Config::get('branding.' . $request->server('SERVER_NAME'), Config::get('branding.default'))); 40 foreach ($branding as $key => $value) { 41 Config::set($key, $value); 42 } 43 } 44 45 // page_title_prefix is displayed, unless page_title is set FIXME: NEEDED? 46 if (Config::has('page_title')) { 47 Config::set('page_title_prefix', Config::get('page_title')); 48 } 49 50 // render page 51 ob_start(); 52 $vars['page'] = basename($vars['page'] ?? ''); 53 if ($vars['page'] && is_file('includes/html/pages/' . $vars['page'] . '.inc.php')) { 54 require 'includes/html/pages/' . $vars['page'] . '.inc.php'; 55 } else { 56 abort(404); 57 } 58 59 $html = ob_get_clean(); 60 ob_end_clean(); 61 62 /** @phpstan-ignore-next-line */ 63 if (isset($pagetitle) && is_array($pagetitle)) { 64 // if prefix is set, put it in front 65 if (Config::get('page_title_prefix')) { 66 array_unshift($pagetitle, Config::get('page_title_prefix')); 67 } 68 69 // if suffix is set, put it in the back 70 if (Config::get('page_title_suffix')) { 71 $pagetitle[] = Config::get('page_title_suffix'); 72 } 73 74 // create and set the title 75 $title = join(' - ', $pagetitle); 76 $html .= "<script type=\"text/javascript\">\ndocument.title = '$title';\n</script>"; 77 } 78 79 return response()->view('layouts.legacy_page', [ 80 'content' => $html, 81 'refresh' => $no_refresh ? 0 : Config::get('page_refresh'), 82 ]); 83 } 84 85 public function dummy() 86 { 87 return 'Dummy page'; 88 } 89} 90