. * * @package LibreNMS * @link http://librenms.org * @copyright 2021 Tony Murray * @author Tony Murray */ namespace App\Plugins\Hooks; use App\Models\Port; use App\Models\User; use App\Plugins\Hook; use Illuminate\Support\Str; abstract class PortTabHook implements Hook { /** @var string */ public $view = 'resources.views.port-tab'; public function authorize(User $user, Port $port, array $settings): bool { return true; } public function data(Port $port): array { return [ 'title' => __CLASS__, 'port' => $port, ]; } final public function handle(string $pluginName, Port $port): \Illuminate\Contracts\View\View { return view(Str::start($this->view, "$pluginName::"), $this->data($port)); } }