wiensa/support-ticket
最新稳定版本:v2.1.0
Composer 安装命令:
composer require wiensa/support-ticket
包简介
Laravel 12 Support Ticket System Package
README 文档
README
Bu paket, Laravel uygulamalarınız için tam özellikli bir destek bileti sistemi sunar. Kullanıcılarınızın destek taleplerini kolayca yönetmenize olanak tanır.
Özellikler
- Kullanıcı Talepleri: Kullanıcılar destek talebi oluşturabilir, görüntüleyebilir ve yanıtlayabilir
- Kategori Sistemi: Talepleri farklı kategorilere ayırma
- Dosya Ekleri: Taleplere ve yanıtlara dosya ekleme desteği
- Bildirimler: E-posta bildirimleri ve webhook entegrasyonları
- Admin Paneli: Tüm destek taleplerini yönetme
- Ayarlar Yönetimi: Sistem ayarlarını admin panelinden değiştirme
- API Desteği: RESTful API entegrasyonu
- Yetkilendirme: Laravel Gate ve Policy sistemi ile tam entegrasyon
- Morph İlişkileri: Herhangi bir kullanıcı modeli ile kullanılabilir
- Modern UI: Bootstrap 5 ile responsive tasarım
- Filtreleme ve Arama: Gelişmiş arama ve filtreleme özellikleri
Ekran Görüntüleri
Kullanıcı Arayüzü
Admin Arayüzü
Kurulum
Composer aracılığıyla paketi yükleyin:
composer require wiensa/support-ticket
Paket yapılandırması, görünümleri ve migrationları yayınlamak için aşağıdaki komutu çalıştırın:
php artisan supportticket:install
Migrationları çalıştırın:
php artisan migrate
Temel verileri eklemek için seed komutunu çalıştırın:
php artisan db:seed --class=Database\\Seeders\\SupportTicketCategorySeeder php artisan db:seed --class=Database\\Seeders\\SupportTicketSettingsSeeder
Kullanım
Kullanıcı Modülü Entegrasyonu
Kullanıcı modülünüze destek talepleri sistemini entegre etmek için, projenizin routes/web.php dosyasına aşağıdaki rotaları ekleyin:
// Destek talepleri için route'ları include et Route::middleware(['web', 'auth'])->group(function () { Route::prefix('support')->name('support.')->group(function () { include base_path('vendor/wiensa/support-ticket/routes/web.php'); }); });
Blade şablonlarınıza destek talepleri bağlantısını ekleyin:
<a href="{{ route('supportticket.tickets.index') }}">Destek Taleplerim</a>
Admin Modülü Entegrasyonu
Admin panel yapınıza destek talepleri yönetimini entegre etmek için, admin route yapılandırmanıza:
// Admin için destek talepleri route'larını include et Route::middleware(['web', 'auth', 'admin'])->group(function () { Route::prefix('admin/support')->name('admin.support.')->group(function () { include base_path('vendor/wiensa/support-ticket/routes/admin.php'); }); });
Ayrıca, config dosyasında admin middleware'i düzenleyebilirsiniz:
// config/supportticket.php 'admin_middleware' => ['web', 'auth', 'admin'], // Admin middleware
Blade Komponentleri
Paket, kullanmanız için bir dizi Blade komponenti içerir:
<!-- Talep listesi komponenti --> <x-supportticket::ticket-list :tickets="$tickets" /> <!-- Talep detay komponenti --> <x-supportticket::ticket-detail :ticket="$ticket" /> <!-- Yanıt form komponenti --> <x-supportticket::reply-form :ticket="$ticket" /> <!-- Kategori seçici komponenti --> <x-supportticket::category-selector :selected="$category" /> <!-- Dosya eki yükleyici komponenti --> <x-supportticket::attachment-uploader :ticketable="$ticket" />
Partial Bileşenleri
Paket, projenize entegre edebileceğiniz partial bileşenler içerir:
<!-- Bildirimler --> @include('partials.alerts') <!-- Kategori Filtreleme --> @include('partials.category-filter') <!-- Dosya Eki Formu --> @include('partials.attachment-form', ['ticketable' => $ticket])
Servis Sınıfları
Paketi programatik olarak kullanmak için aşağıdaki servis sınıflarını kullanabilirsiniz:
use Wiensa\SupportTicket\Services\TicketService; use Wiensa\SupportTicket\Services\AttachmentService; use Wiensa\SupportTicket\Services\NotificationService; // Ticket Service $ticketService = app(TicketService::class); $ticket = $ticketService->createTicket([ 'subject' => 'Konu', 'message' => 'Mesaj', 'priority' => 'medium', 'category' => $categoryId, ], $user); // Attachment Service $attachmentService = app(AttachmentService::class); $attachment = $attachmentService->uploadFile($file, $ticket, $user); // Notification Service $notificationService = app(NotificationService::class); $notificationService->sendNewTicketNotifications($ticket);
Olaylar ve Dinleyiciler
Paket, aşağıdaki olayları tetikler:
Wiensa\SupportTicket\Events\TicketCreated- Yeni talep oluşturulduğundaWiensa\SupportTicket\Events\TicketReplied- Talebe yanıt verildiğindeWiensa\SupportTicket\Events\TicketClosed- Talep kapatıldığındaWiensa\SupportTicket\Events\TicketReopened- Talep yeniden açıldığındaWiensa\SupportTicket\Events\TicketStatusChanged- Talep durumu değiştiğindeWiensa\SupportTicket\Events\AttachmentUploaded- Dosya yüklendiğinde
Uygulamanızda bu olayları dinlemek için event listener'lar oluşturabilirsiniz.
API Kullanımı
API endpointleri şunlardır:
GET /api/support/tickets- Tüm talepleri listelerGET /api/support/tickets/{id}- Belirli bir talebi görüntülerPOST /api/support/tickets- Yeni talep oluştururPOST /api/support/tickets/{id}/replies- Talebe yanıt eklerPUT /api/support/tickets/{id}- Talebi güncellerDELETE /api/support/tickets/{id}- Talebi silerPOST /api/support/tickets/{id}/close- Talebi kapatırPOST /api/support/tickets/{id}/reopen- Talebi yeniden açarPOST /api/support/attachments- Dosya eklerGET /api/support/categories- Kategorileri listeler
API kullanımı örneği:
// Yeni talep oluşturma $response = $client->post('/api/support/tickets', [ 'json' => [ 'subject' => 'API Test', 'message' => 'Bu bir API test talebidir', 'category' => $categoryId, 'priority' => 'high', ], 'headers' => [ 'Authorization' => 'Bearer ' . $token, ], ]);
Yapılandırma
config/supportticket.php dosyasında aşağıdaki ayarları özelleştirebilirsiniz:
route_prefix- Rota önekimiddleware- Rotalarda kullanılacak middlewareadmin_middleware- Admin rotalarında kullanılacak middlewareevents- Olay yapılandırmasıattachments- Dosya eki yapılandırmasımax_size- Maksimum dosya boyutu (MB)allowed_types- İzin verilen dosya tipleristorage_disk- Depolama diskistorage_path- Depolama yolu
categories- Kategori yapılandırmasıallow_create- Kullanıcıların kategori oluşturmasına izin verdefault- Varsayılan kategori ID'si
auto_close- Otomatik kapanma ayarlarıenabled- Aktif/Pasifdays- Otomatik kapanma günü
admin_emails- Bildirim alacak admin e-postaları
Özelleştirme
Views
Viewları özelleştirmek için:
php artisan vendor:publish --tag=supportticket-views
Config
Yapılandırma dosyasını özelleştirmek için:
php artisan vendor:publish --tag=supportticket-config
Translations
Dil dosyalarını özelleştirmek için:
php artisan vendor:publish --tag=supportticket-lang
Assets
CSS ve JS dosyalarını özelleştirmek için:
php artisan vendor:publish --tag=supportticket-assets
Değişiklik Geçmişi
Değişiklik geçmişi için CHANGELOG.md dosyasına bakın.
Lisans
Bu paket MIT lisansı altında lisanslanmıştır.
统计信息
- 总下载量: 2
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-04-30




