Easy Footer plugin screenshot
Dark mode ready
Multilingual support
Supports v5.x

Easy Footer

A simple plugin to display a customizable footer in your Filament application.

Tags: Panels
Supported versions:
5.x 4.x 3.x
Devonab avatar Author: Devonab

Documentation

Filament Easy Footer cover

Latest v2.x Tests Code Style Total Downloads

FilamentPHP Package version Branch
v3.x v1.x filament-v3
v4.x v2.x main
v5.x v2.x main

This filament Plugin provides an easy and flexible way to add a customizable footer to your FilamentPHP application. This plugin integrates seamlessly with Filament's admin interface, enabling you to enhance your application's user experience with a good looking footer.

#Navigation


#Installation


First, you can start to install the package via composer:

composer require devonab/filament-easy-footer:^2.0

You can publish the config file with. This file is needed if you want to change the default:

php artisan vendor:publish --tag="filament-easy-footer-config"

Optionally, you can publish the views using

php artisan vendor:publish --tag="filament-easy-footer-views"

This is the contents of the published config file:

return [
    'app_name' => null,

    'github' => [
        'repository' => null,
        'token' => null,
        'cache_ttl' => 3600,
    ],
];

#Usage


To start using this plugin, simply add it to the Filament provider's plugin array.

use Devonab\FilamentEasyFooter\EasyFooterPlugin;

->plugins([
    EasyFooterPlugin::make(),
])

#Custom theme


You will need to create a custom theme for the footer styles to be applied correctly.

Once that is done, add this line to your theme.css file before compiling everything with npm run build.

@source '../../../../vendor/devonab/filament-easy-footer/resources/views/**/*';

#Configurations


#Enable or Disable the Footer

You can enable or disable the footer entirely using the following configuration:

use Devonab\FilamentEasyFooter\EasyFooterPlugin;

->plugins([
    EasyFooterPlugin::make()
    ->footerEnabled() // true by default,
]);

Without this configuration, the footer will be enabled by default.

#Footer position

You can choose the position of the footer by using this configuration :

use Devonab\FilamentEasyFooter\EasyFooterPlugin;

->plugins([
    EasyFooterPlugin::make()
    ->withFooterPosition('footer'),
])

You can choose between 3 positions, represented by their corresponding render hooks

  • footer : panels::footer (by default)
  • sidebar : panels::sidebar.nav.end
  • sidebar.footer : panels::sidebar.footer
use Devonab\FilamentEasyFooter\EasyFooterPlugin;

->plugins([
    EasyFooterPlugin::make()
    ->withFooterPosition('footer'),
])

Filament Easy Footer position

use Devonab\FilamentEasyFooter\EasyFooterPlugin;

->plugins([
    EasyFooterPlugin::make()
    ->withFooterPosition('sidebar'),
])

Filament Easy Footer sidebar position

use Devonab\FilamentEasyFooter\EasyFooterPlugin;

->plugins([
    EasyFooterPlugin::make()
    ->withFooterPosition('sidebar.footer'),
])

Filament Easy Footer sidebar footer position

#Custom sentence

Filament Easy Footer custom sentence

By default, the plugin will display the name of your application (configured from your .ENV), or the app_name key in the plugin config file,next to the copyright. You can change the phrase by publishing the plugin configuration file.

If you prefer a more personalized approach, you can use the following method:

use Devonab\FilamentEasyFooter\EasyFooterPlugin;

->plugins([
    EasyFooterPlugin::make()
    ->withSentence('your sentence'),
])

The method accepts a string or HTMLString as a parameter. With this, you can get the result you want. For example, for the result shown in the image above :

use Devonab\FilamentEasyFooter\EasyFooterPlugin;

->plugins([
    EasyFooterPlugin::make()
    ->withSentence(new HtmlString('<img src="https://static.cdnlogo.com/logos/l/23/laravel.svg" style="margin-right:.5rem;" alt="Laravel Logo" width="20" height="20"> Laravel'))
,
])

The authorized tags are as follows: <strong><img><a><em><span><b><i><small>.

#Show GitHub version

Filament Easy Footer github

You can show the GitHub version of your application by using this configuration :

use Devonab\FilamentEasyFooter\EasyFooterPlugin;

->plugins([
    EasyFooterPlugin::make()
    ->withGithub(showLogo: true, showUrl: true)
])
  • showLogo : Display the GitHub logo next to the version
  • showUrl : Add an <a> tag to the Github URL around the logo

To make this one work, you need to publish the plugin configuration file and set the following keys :

return [
    'app_name' => null,

    'github' => [
        'repository' => null, #user/name-of-the-repo
        'token' => null, # Recommended but not compulsory for all repos, required for private repos
        'cache_ttl' => 3600, # in seconds, 3600 by default
    ],
];

If needed, you can generate a token here. The token need to have at least the read-only permission on the "Contents" scope in Repository permissions.

#Load time

Filament Easy Footer load time

If you want to display the page load time, you can use this configuration :

use Devonab\FilamentEasyFooter\EasyFooterPlugin;

->plugins([
    EasyFooterPlugin::make()
    ->withLoadTime(),
])

You can also display a prefix by using this configuration :

use Devonab\FilamentEasyFooter\EasyFooterPlugin;

->plugins([
    EasyFooterPlugin::make()
    ->withLoadTime('This page loaded in'),
])

Filament Easy Footer loadtime prefix

#Custom logo with link

Filament Easy Footer custom logo

#Custom logo with link

Filament Easy Footer custom logo

You can add a custom logo with optional link and text to the footer by using this configuration:

use Devonab\FilamentEasyFooter\EasyFooterPlugin;

->plugins([
    EasyFooterPlugin::make()
        ->withLogo(
            'https://static.cdnlogo.com/logos/l/23/laravel.svg', // Path to logo
            'https://laravel.com'                                // URL for logo link (optional)
        )
])

You can customize the logo further with optional text and height:

use Devonab\FilamentEasyFooter\EasyFooterPlugin;

->plugins([
    EasyFooterPlugin::make()
        ->withLogo(
            'https://static.cdnlogo.com/logos/l/23/laravel.svg', // Path to logo
            'https://laravel.com',                               // URL for logo link (optional)
            'Powered by Laravel',                                // Text to display (optional)
            35                                                   // Logo height in pixels (default: 20)
        )
])

If you don't need the link, you can pass null for the second parameter:

use Devonab\FilamentEasyFooter\EasyFooterPlugin;

->plugins([
    EasyFooterPlugin::make()
        ->withLogo(
            'https://static.cdnlogo.com/logos/l/23/laravel.svg', // Path to logo
            null,                                                // No link
            null,                                                // No text
            60                                                   // Logo height in pixels
        )
])

#Links

Filament Easy Footer links

You can add custom links (3 links max) to the footer by using this configuration :

use Devonab\FilamentEasyFooter\EasyFooterPlugin;

->plugins([
    EasyFooterPlugin::make()
    ->withLinks([
        ['title' => 'About', 'url' => 'https://example.com/about'],
        ['title' => 'CGV', 'url' => 'https://example.com/cgv'],
        ['title' => 'Privacy Policy', 'url' => 'https://example.com/privacy-policy']
    ]),
])

#Border on top

You can add a border on the top of the footer by using this configuration :

use Devonab\FilamentEasyFooter\EasyFooterPlugin;

->plugins([
    EasyFooterPlugin::make()
    ->withBorder(),
])

#Hiding from specific pages

By default, the footer is also showed on the 3 auth pages : admin/login, admin/forgot-password and admin/register. You can hide it by using this configuration :

use Devonab\FilamentEasyFooter\EasyFooterPlugin;

->plugins([
    EasyFooterPlugin::make()
    ->hiddenFromPagesEnabled(),
])

If you would like to hide the footer on other pages, you can use this configuration :

use Devonab\FilamentEasyFooter\EasyFooterPlugin;

->plugins([
    EasyFooterPlugin::make()
    ->hiddenFromPagesEnabled()
    ->hiddenFromPages(['sample-page', 'another-page', 'admin/login', 'admin/forgot-password', 'admin/register']),
])

Note that anything set in hiddenFromPages() will override the default behavior.

#Testing


You can run the test with this command

composer test

#Changelog


Please see CHANGELOG for more information on what has changed recently.

#Contributing


Please see CONTRIBUTING for details.

#Security Vulnerabilities


Please review our security policy on how to report security vulnerabilities.

#Credits


#License


The MIT License (MIT). Please see License File for more information.

The author

Devonab avatar Author: Devonab

Hi all! I'm Alexandre, a Belgian developer and webdesigner who's been working with Laravel for almost 10 years and on a daily basis for the past few years.

Plugins
1
Stars
53