salmanalmajali / jokes-widget
A fun Filament PHP plugin to display Dad Jokes (Bahasa Indonesia & English) via API. Make your filament dashboard tell a joke
Fund package maintenance!
Requires
- php: ^8.2
- filament/filament: ^3.0|^4.0|^5.0
- guzzlehttp/guzzle: ^7.10
- spatie/laravel-package-tools: ^1.15.0
Requires (Dev)
- larastan/larastan: ^2.11
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.9
- orchestra/testbench: ^8.0
- pestphp/pest: ^2.1
- pestphp/pest-plugin-arch: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2026-04-01 07:12:53 UTC
README
Add a touch of fun and lightweight Filament PHP widget that brings "Dad Jokes" humor directly to your dashboard and make your Filament Dashboard tell a joke. This plugin is designed to add a bit of humor to the administrative experience by displaying jokes tailored to your application's language settings.
Key Features
- Automatic Localization:
- Bahasa Indonesia: Displays a collection of iconic local "bapak-bapak" jokes. Collected from Candaan API Repository by Ardhi Putra
- English: Dynamically fetches fresh dad jokes from the
icanhazdadjoke.comAPI.
- Interactive Refresh: Includes a button to instantly swap jokes without reloading the page using Livewire.
- Filament V4 and V5 Ready: Optimized to run seamlessly on the latest version of Filament.
Installation
You can install the package via Composer:
composer require salmanalmajali/jokes-widget
(Optional) Publish the translation files if you wish to customize the widget text:
php artisan vendor:publish --tag="jokes-widget-translations"
Usage
Register the plugin in your Filament Panel Provider (typically AdminPanelProvider.php):
use SalmanAlmajali\JokesWidget\JokesWidget; public function panel(Panel $panel): Panel { return $panel ->widgets([ JokesWidget::class, ]); }
Localization and Screenshoot
The widget automatically detects your application's locale:
- If the locale is set to id, the widget uses the local joke collection.
- or any other locale (default en), the widget fetches data from the external API.
Testing
Run the package tests using Pest:
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security-related issues, please email undermod007@gmail.com instead of using the issue tracker.