Files
PipoCanaja 61ad4bfbbf Plugins v2 cleanup (#16298)
* cleanup

* use Illuminate\Support\Facades\Auth;

* style

* add route:cache and revert

* add route:cache and revert

* fix   in pluginExample

* fix Example plugin

* style

* fix other Hooks with Illuminate\Contracts\Auth\Authenticatable

* style

* whitespace

* whitespace2

---------

Co-authored-by: Tony Murray <murraytony@gmail.com>
2024-08-26 19:45:12 +02:00

45 lines
1.7 KiB
PHP

<?php
namespace App\Plugins\ExamplePlugin;
use App\Plugins\Hooks\PortTabHook;
// this will insert a tab into every port view
class PortTab extends PortTabHook
{
// point to the view for your plugin's port plugin
// this is the default name so you can create the blade file as in this plugin
// by ommitting the variable, or point to another one
// public string $view = 'resources.views.port-tab';
// override the data function to add additional data to be accessed in the view
// title is a required attribute and will be shown above your returned html from your blade file
// inside the blade, all variables will be named based on the key in the returned array
public function data(\App\Models\Port $port): array
{
// run any calculations here
$total_delta = $port->ifOutOctets_delta + $port->ifInOctets_delta; // nonsense calculation :)
return [
'title' => 'Example Plugin',
'port' => $port,
'something' => 'this is a variable and can be accessed with {{ $something }}',
'total' => $total_delta,
];
}
// The authorize method will determine if the user will see this tab or not
// if you want all users to see it, simple return true
public function authorize(\Illuminate\Contracts\Auth\Authenticatable $user, \App\Models\Port $port): bool
{
// you can check user's roles like this:
// return $user->can('admin');
// or use whatever you like. Including conditions on the \App\Models\Port $port of course
// return \Carbon\Carbon::now()->dayOfWeek == Carbon::THURSDAY; // only allowed access on Thursdays!
return true; // allow every logged in user to access
}
}