. * * @link http://librenms.org * @copyright 2018 Tony Murray * @author Tony Murray */ namespace App\Http\Controllers\Widgets; use Illuminate\Http\Request; use Illuminate\Support\Str; class ImageController extends WidgetController { protected $title = 'Custom Image'; protected $defaults = [ 'title' => null, 'image_url' => null, 'target_url' => null, ]; public function getView(Request $request) { $data = $this->getSettings(); if (is_null($data['image_url'])) { return $this->getSettingsView($request); } $dimensions = $request->get('dimensions'); $data['dimensions'] = $dimensions; // send size so generated images can generate the proper size $data['image_url'] = str_replace(['@AUTO_HEIGHT@', '@AUTO_WIDTH@'], [$dimensions['y'], $dimensions['x']], $data['image_url']); // bust cache if (Str::contains($data['image_url'], '?')) { $data['image_url'] .= '&' . mt_rand(); } else { $data['image_url'] .= '?' . mt_rand(); } return view('widgets.image', $data); } public function getSettingsView(Request $request) { return view('widgets.settings.image', $this->getSettings(true)); } public function getSettings($settingsView = false) { if (is_null($this->settings)) { parent::getSettings(); if (! empty($this->settings['image_title'])) { $this->settings['title'] = $this->settings['image_title']; } } return $this->settings; } }