northlab/thememanager

WordPress-like theme management system for Laravel

v0.1 2025-09-09 16:08 UTC

This package is auto-updated.

Last update: 2025-09-09 16:18:23 UTC


README

Laravel Tema Yönetim Sistemi (Filament v4)

Kurulum

Package'ı ana Laravel projenizde kullanmak için:

  1. Package'ı yükleyin:
composer require northlab/thememanager
  1. Migration'ları çalıştırın:
php artisan migrate
  1. Filament panel'inize resource'u ekleyin (app/Providers/Filament/AdminPanelProvider.php):
use NorthLab\ThemeManager\Filament\Resources\ThemeResource;

public function panel(Panel $panel): Panel
{
    return $panel
        ->resources([
            ThemeResource::class,
        ]);
}

Tema Yapısı

Bir tema şu yapıya sahip olmalıdır:

theme-name/
├── theme.json          # Tema bilgileri (zorunlu)
├── screenshot.png      # Tema önizlemesi (isteğe bağlı)
├── views/             # Blade template dosyaları
│   ├── layouts/
│   ├── components/
│   └── pages/
└── assets/            # CSS, JS, resim dosyaları
    ├── css/
    ├── js/
    └── images/

theme.json Örneği

{
    "name": "Tema Adı",
    "slug": "benim-temam",
    "description": "Tema Açıklaması",
    "version": "1.0.0",
    "author": "Geliştiricinin Adı",
    "screenshot": "screenshot.png"
}

Kullanım

Helper Fonksiyonları

// Aktif tema bilgisi
$theme = current_theme();

// Tema asset'i
$cssUrl = theme_asset('css/style.css');

// Tema konfigürasyonu
$config = theme_config('colors.primary');

Blade Template'lerde

{{-- Tema asset'i kullanma --}}
<link rel="stylesheet" href="{{ theme_asset('css/style.css') }}">

{{-- Aktif tema bilgisi --}}
@if($activeTheme)
    <p>Aktif tema: {{ $activeTheme->name }}</p>
@endif

Middleware Kullanımı

Web route'larınızda tema middleware'ini kullanın:

Route::group(['middleware' => 'theme'], function () {
    Route::get('/', [HomeController::class, 'index']);
    // Diğer route'lar...
});

Artisan Komutları

# Tema yükleme
php artisan theme:install /path/to/theme.zip

Filament Admin Panel

Package, Filament v4.0 ile uyumlu bir admin paneli sağlar:

  • Tema yükleme (ZIP dosyası ile)
  • Tema etkinleştirme/devre dışı bırakma
  • Tema bilgilerini görüntüleme
  • Tema silme

Admin panelinde "Temalar" menüsünden tüm işlemleri yapabilirsiniz.