rmscms / tickets
RMSCMS Ticket Management System - Complete ticketing solution with admin and user interfaces
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Language:Blade
pkg:composer/rmscms/tickets
Requires
- php: ^8.1
- illuminate/database: ^11.0
- illuminate/events: ^11.0
- illuminate/support: ^11.0
- rmscms/core: ^1.0
This package is auto-updated.
Last update: 2025-12-04 10:40:10 UTC
README
پکیج مدیریت تیکت کامل برای سیستم RMS با پشتیبانی از ادمین و پنل کاربری.
✨ ویژگیها
- ✅ مدیریت کامل تیکت - ایجاد، پاسخ، بستن، بازکردن مجدد
- ✅ پنل ادمین - مشاهده همه تیکتها + ارجاع + تغییر وضعیت
- ✅ پنل کاربر - ایجاد و مدیریت تیکتهای خود
- ✅ سیستم رویداد - Event/Listener برای نوتیفیکیشن
- ✅ آپلود فایل - پشتیبانی از ضمیمه با فشردهسازی خودکار تصاویر
- ✅ وضعیتهای سفارشی - قابل تنظیم در دیتابیس
- ✅ ماژولار و Extendable - قابل سفارشیسازی کامل
- ✅ مدلهای قابل تنظیم - استفاده از مدلهای پروژه یا پکیج
- ✅ رابط کاربری زیبا - با Limitless Template + Dark Mode
📦 نصب
1️⃣ نصب از طریق Composer
composer require rms/tickets
2️⃣ انتشار فایلهای پکیج
# انتشار config php artisan vendor:publish --tag=tickets-config # انتشار migrations php artisan vendor:publish --tag=tickets-migrations # انتشار views (اختیاری - برای سفارشیسازی) php artisan vendor:publish --tag=tickets-views # انتشار assets (CSS/JS) php artisan vendor:publish --tag=tickets-assets
3️⃣ اجرای Migration
php artisan migrate
⚙️ تنظیمات
فایل config/tickets.php
return [ // 🎨 مدلهای قابل تنظیم (استفاده از مدلهای پروژه) 'models' => [ 'ticket' => \App\Models\Ticket::class, 'ticket_detail' => \App\Models\TicketDetail::class, 'ticket_status' => \App\Models\TicketStatus::class, 'department' => \App\Models\Department::class, 'admin' => \App\Models\Admin::class, 'user' => \App\Models\User::class, ], // 📊 وضعیتهای پیشفرض 'status' => [ 'default' => 1, // وضعیت پیشفرض تیکت جدید 'closed' => 4, // وضعیت بسته شده ], // 📁 تنظیمات آپلود 'upload' => [ 'max_size' => 10240, // 10MB 'allowed_types' => ['jpg', 'jpeg', 'png', 'pdf', 'zip'], ], ];
🚀 استفاده
ثبت روتها
در فایل routes/admin.php:
use RMS\Tickets\Controllers\Admin\TicketsController; use RMS\Core\Helpers\RouteHelper; RouteHelper::adminResource(TicketsController::class, 'tickets');
در فایل routes/panel.php:
use RMS\Tickets\Controllers\Panel\TicketsController; use RMS\Core\Helpers\RouteHelper; RouteHelper::panelResource(TicketsController::class, 'tickets');
استفاده از Events
پکیج شامل رویدادهای زیر است:
TicketCreatedEvent- تیکت جدید ایجاد شدAdminReplyEvent- ادمین پاسخ دادUserReplyEvent- کاربر پاسخ دادTicketClosedEvent- تیکت بسته شدTicketReopenedEvent- تیکت باز شدTicketReferredEvent- تیکت ارجاع داده شد
برای دریافت نوتیفیکیشن، در EventServiceProvider ثبت کنید.
🎨 سفارشیسازی
استفاده از مدلهای سفارشی
اگر میخواهید از مدلهای خودتان استفاده کنید:
// در config/tickets.php 'models' => [ 'ticket' => \App\Models\MyCustomTicket::class, ],
مدل شما باید از RMS\Tickets\Models\Ticket ارثبری کند.
Override کردن View ها
بعد از انتشار viewها:
php artisan vendor:publish --tag=tickets-views
میتوانید فایلها را در resources/views/vendor/tickets/ ویرایش کنید.
توسعه کنترلر
میتوانید کنترلر را extend کنید:
use RMS\Tickets\Controllers\Admin\TicketsController as BaseController; class TicketsController extends BaseController { protected function getUserStats($user): array { // منطق سفارشی خود را اضافه کنید return [ 'credit' => $user->credit, 'accounts_30d' => $user->accounts()->recent()->count(), ]; } }
📂 ساختار پکیج
rms/tickets/
├── src/
│ ├── Controllers/
│ │ ├── Admin/TicketsController.php
│ │ └── Panel/TicketsController.php
│ ├── Models/
│ │ ├── Ticket.php
│ │ ├── TicketDetail.php
│ │ └── TicketStatus.php
│ ├── Events/
│ ├── Listeners/
│ └── TicketsServiceProvider.php
├── resources/
│ ├── views/
│ └── assets/
├── database/migrations/
├── config/tickets.php
└── README.md
🐛 مشکلات رایج
1. مسیر View پیدا نمیشود
php artisan view:clear php artisan vendor:publish --tag=tickets-views --force
2. مدل پیدا نمیشود
مطمئن شوید namespace مدلها در config/tickets.php درست است.
3. Asset ها لود نمیشوند
php artisan vendor:publish --tag=tickets-assets --force
📝 TODO
- افزودن متدهای کامل به کنترلرها (show, reply, close, reopen)
- کپی View های Blade
- کپی Asset های CSS/JS
- ساخت Migration ها
- ساخت ServiceProvider
- افزودن تستهای واحد
- مستندسازی کامل API
🤝 مشارکت
برای مشارکت در توسعه این پکیج، لطفاً PR ارسال کنید.
📄 لایسنس
MIT License
👨💻 سازنده
RMS Team
Email: msharif.ahrari@gmail.com