ahmed-j-alsarem / saudi-riyal-filament-currency
A Laravel package for formatting and displaying Saudi Riyal currency in Filament applications with full Arabic support
1.1.6
2025-05-05 07:11 UTC
Requires
- php: ^8.1
- filament/filament: ^3.0
- filament/support: ^3.0
- illuminate/support: ^12.0
Requires (Dev)
- orchestra/testbench: ^8.0
- phpunit/phpunit: ^10.0
README
حزمة لارافيل لتنسيق وعرض الريال السعودي في تطبيقات Filament مع دعم كامل للغة العربية.
المميزات
- استبدال تلقائي لرموز الريال السعودي (SAR، ر.س، ر.س.)
- دعم كامل للغة العربية
- تكامل مع Filament
- دعم Livewire
- تنسيق تلقائي للأرقام
- إمكانية التحكم اليدوي في الاستبدال
التثبيت
composer require ahmed-j-alsarem/saudi-riyal-filament-currency
الإعداد
- أضف Service Provider في
config/app.php
:
'providers' => [ // ... AhmedJAlsarem\SaudiRiyal\FilamentCurrency\SaudiRiyalSymbolServiceProvider::class, ]
- أضف ملف CSS في
app/Providers/AdminPanelProvider.php
:
public function panel(Panel $panel): Panel { return $panel ->default() ->id('admin') ->path('admin') ->login() ->colors([ 'primary' => Color::Amber, ]) ->discoverResources(in: app_path('Filament/Resources'), for: 'App\\Filament\\Resources') ->discoverPages(in: app_path('Filament/Pages'), for: 'App\\Filament\\Pages') ->pages([ Pages\Dashboard::class, ]) ->discoverWidgets(in: app_path('Filament/Widgets'), for: 'App\\Filament\\Widgets') ->widgets([ Widgets\AccountWidget::class, Widgets\FilamentInfoWidget::class, ]) ->middleware([ EncryptCookies::class, AddQueuedCookiesToResponse::class, StartSession::class, AuthenticateSession::class, ShareErrorsFromSession::class, VerifyCsrfToken::class, SubstituteBindings::class, DisableBladeIconComponents::class, DispatchServingFilamentEvent::class, ]) ->authMiddleware([ Authenticate::class, ]) ->viteTheme('resources/css/filament/admin/theme.css') ->assets([ 'https://cdn.jsdelivr.net/npm/@emran-alhaddad/saudi-riyal-font/index.css', ]); }
الاستخدام
1. الاستخدام الأساسي (الاستبدال التلقائي)
بمجرد تثبيت الباكدج، سيتم استبدال جميع رموز الريال السعودي تلقائياً في التطبيق. لا تحتاج لأي إعدادات إضافية.
2. التحكم اليدوي في الاستبدال
إذا كنت تريد التحكم يدوياً في مكان معين:
@php // تعطيل الاستبدال التلقائي \AhmedJAlsarem\SaudiRiyal\FilamentCurrency\Services\SaudiRiyalFormatter::disable(); // كودك الخاص هنا $price = 1000; $formattedPrice = number_format($price, 2) . ' <span class="icon-saudi_riyal"></span>'; // تفعيل الاستبدال التلقائي مرة أخرى \AhmedJAlsarem\SaudiRiyal\FilamentCurrency\Services\SaudiRiyalFormatter::enable(); @endphp
3. استخدام مع Number::currency
@php $price = 1000; $formattedPrice = Number::currency($price, 'SAR', app()->getLocale()); @endphp
4. استخدام في Filament
في أعمدة الجداول:
TextColumn::make('price') ->formatStateUsing(function ($state) { return number_format($state, 2) . ' <span class="icon-saudi_riyal"></span>'; })
في حقول النماذج:
TextInput::make('price') ->numeric() ->formatStateUsing(function ($state) { return number_format($state, 2) . ' <span class="icon-saudi_riyal"></span>'; })
5. استخدام في Livewire
public function render() { return view('livewire.your-component', [ 'price' => number_format($this->price, 2) . ' <span class="icon-saudi_riyal"></span>' ]); }
أمثلة إضافية
تنسيق السعر مع اللغة العربية
@php $price = 1000; $formattedPrice = app()->getLocale() === 'ar' ? number_format($price, 2, '.', ',') . ' <span class="icon-saudi_riyal"></span>' : Number::currency($price, 'SAR', app()->getLocale()); @endphp
استخدام في Blade مباشرة
<span class="price"> {{ number_format($price, 2) }} <span class="icon-saudi_riyal"></span> </span>
ملاحظات مهمة
- تأكد من إضافة ملف CSS في كل صفحة تستخدم فيها الرمز
- يمكنك تعطيل الاستبدال التلقائي في أي وقت باستخدام
disable()
- الباكدج يدعم جميع أشكال كتابة الريال السعودي (SAR، ر.س، ر.س.)
- يتم تنسيق الأرقام تلقائياً حسب إعدادات اللغة
المساهمة
نرحب بمساهماتكم! يرجى فتح issue أو pull request للمساهمة في تحسين الباكدج.
الترخيص
هذا الباكدج مرخص تحت MIT license.
الدعم
إذا واجهتك أي مشكلة أو لديك أي استفسار، يرجى فتح issue في GitHub.