53 lines
2.7 KiB
Markdown
53 lines
2.7 KiB
Markdown
# Vernova - Calendar Fix (رفع مشکل تقویم)
|
||
|
||
## مشکل
|
||
بخشهایی از برنامه تاریخها رو به میلادی نمایش میداد حتی وقتی کاربر تقویم رو روی شمسی ست کرده بود.
|
||
|
||
## تغییرات
|
||
|
||
### 1. app/Http/Middleware/SetLocale.php
|
||
**مشکل:** اولویت خواندن تقویم از سشن اشتباه بود. Middleware در هر درخواست، مقدار سشن رو با مقدار دیتابیس کاربر override میکرد. اگر کاربر تقویم رو از هدر تغییر بده، در درخواست بعدی مقدار سشن دوباره از دیتابیس خونده میشد و تغییر کاربر نادیده گرفته میشد.
|
||
|
||
**رفع:** اولویت سشن بالاتر از دیتابیس قرار گرفت. حالا ترتیب اولویت:
|
||
1. سشن (بالاترین اولویت - کاربر همین الان تغییر داده)
|
||
2. تنظیمات دیتابیس کاربر
|
||
3. تنظیمات tenant
|
||
4. تنظیمات مرورگر
|
||
5. تنظیمات پیشفرض config
|
||
|
||
### 2. app/Http/Controllers/DashboardController.php
|
||
**مشکل:** کلید کانفیگ اشتباه بود: `config('projectra.defaults.calendar')` به جای `config('projectra.default_calendar')`.
|
||
|
||
**رفع:** کلید کانفیگ اصلاح شد.
|
||
|
||
### 3. resources/views/layouts/header.blade.php
|
||
**مشکل:** سینتکس `@x-localized-date :date="now()"` معتبر نیست و به صورت متنی خام نمایش داده میشد.
|
||
|
||
**رفع:** خط نامعتبر حذف شد و فقط `{{ calendar_date(now()) }}` باقی ماند.
|
||
|
||
### 4. app/Helpers/helpers.php
|
||
**مشکل:** تابع `calendar_date()` تاریخ شمسی رو با ارقام لاتین نمایش میداد (مثلاً 1403/01/15 به جای ۱۴۰۳/۰۱/۱۵).
|
||
|
||
**رفع:** تبدیل خودکار ارقام فارسی وقتی locale روی 'fa' هست اضافه شد.
|
||
|
||
### 5. app/Models/Project.php
|
||
**مشکل:** اکسسور `getStatusLabelAttribute()` وجود نداشت اما ویوها از `$project->status_label` استفاده میکردن.
|
||
|
||
**رفع:** اکسسور `status_label` و رابطه `defaultCurrency()` اضافه شد.
|
||
|
||
## نحوه نصب
|
||
فایلها رو در مسیرهای مربوطه در پروژه لاراول کپی کنید:
|
||
```
|
||
calendar-fix/
|
||
├── app/
|
||
│ ├── Http/
|
||
│ │ ├── Middleware/SetLocale.php
|
||
│ │ └── Controllers/DashboardController.php
|
||
│ ├── Helpers/helpers.php
|
||
│ └── Models/Project.php
|
||
├── resources/
|
||
│ └── views/
|
||
│ └── layouts/header.blade.php
|
||
└── README.md
|
||
```
|