laravel-blog maintained by omercanfs
Laravel Blog Package
Production-ready, reusable Laravel 11 blog package. Filament admin panel ve Tailwind CSS frontend ile birlikte gelir.
Özellikler
✅ Kategoriler & Etiketler - Sınırsız kategori ve etiket desteği ✅ SEO Dostu - Meta tags, canonical URL, slug, sitemap ✅ Resim Yönetimi - Sınırsız resim, alt text, başlık ve açıklama ✅ İçerik Editörü - Rich text editor, iframe desteği ✅ Görülme Sayacı - Unique visitors analytics ✅ Arama & Filtreleme - Full-text search, kategori ve etiket filtreleme ✅ Sosyal Paylaşım - Facebook, Twitter/X, LinkedIn, WhatsApp, Email ✅ Filament Admin Panel - Profesyonel CRUD arayüzü ✅ Responsive Design - Tailwind CSS ile mobil uyumlu ✅ Slug Yönetimi - Otomatik slug oluşturma
Kurulum
1. Composer ile Package'ı Yükle
composer require omercan/laravel-blog
Eğer private repository kullanıyorsanız, composer.json'ınıza ekleyin:
{
"repositories": [
{
"type": "path",
"url": "../laravel-blog"
}
]
}
2. Migrasyonları Çalıştır
php artisan migrate
3. Filament Paketini Kurulumunu Tamamla
Eğer daha önce Filament kurulmadıysa:
php artisan filament:install --panels=admin
4. Package'ı Publish Et (İsteğe Bağlı)
Views'i customize etmek için:
php artisan vendor:publish --provider="Omercan\Blog\BlogServiceProvider" --tag=blog-views
Config dosyasını customize etmek için:
php artisan vendor:publish --provider="Omercan\Blog\BlogServiceProvider" --tag=blog-config
Kullanım
Routes
Blog aşağıdaki route'lar otomatik olarak kaydedilir:
/blog - Blog listeleme
/blog/search?q=arama - Arama
/blog/category/{slug} - Kategoriye göre yazılar
/blog/tag/{slug} - Etikete göre yazılar
/blog/{slug} - Yazı detayı
Admin Panel (Filament)
Admin panelinde /admin adresinde şu menüler bulunur:
- Blog Posts - Yazı yönetimi (CRUD)
- Blog Categories - Kategori yönetimi
- Blog Tags - Etiket yönetimi
Views Özelleştirme
Views'ı özelleştirmek için vendor'ı publish edin:
php artisan vendor:publish --provider="Omercan\Blog\BlogServiceProvider" --tag=blog-views
Views şurada bulunacak: resources/views/vendor/blog/
Frontend Kullanım
Blade template'inde blog linklemek için:
<!-- Blog'a Linkle -->
<a href="{{ route('blog.index') }}">Blog</a>
<!-- Belirli bir yazıya linkle -->
<a href="{{ route('blog.show', $post->slug) }}">{{ $post->title }}</a>
<!-- Kategori -->
<a href="{{ route('blog.category', $category->slug) }}">{{ $category->name }}</a>
<!-- Etiket -->
<a href="{{ route('blog.tag', $tag->slug) }}">#{{ $tag->name }}</a>
Veritabanı Tabloları
blog_categories- Kategorilerblog_tags- Etiketlerblog_posts- Ana yazı tablosublog_post_images- Yazı içindeki resimlerblog_post_tag- Pivot table (yazı-etiket ilişkisi)blog_post_views- Görülme analytics
Model Relationships
// Post Model
$post->category; // Kategori
$post->tags; // Etiketler (Many-to-Many)
$post->images; // Resimler
$post->views; // Görülme sayısı
// Category Model
$category->posts; // Kategorideki yazılar
// Tag Model
$tag->posts; // Etiketteki yazılar
Scopes (Query Helpers)
// Aktif yazılar
Post::active()->get();
// Yayınlanmış yazılar
Post::published()->get();
// Kategoriye göre
Post::byCategory('teknoloji')->get();
// Etikete göre
Post::byTag('laravel')->get();
// Arama
Post::search('wordpress')->get();
// Öne çıkartılan
Post::featured()->get();
// Kombinasyon
Post::active()->published()->byCategory('teknoloji')->search('php')->get();
Görülme Sayacı
Yazı detay sayfasında otomatik olarak görülme sayılır:
- Aynı IP'den 24 saat içinde sadece 1 kez sayılır
blog_post_viewstablosunda detay kayıt tutulurview_countotomatik olarak güncellenir
SEO Meta Tags
Yazı gösterim sayfasında otomatik olarak eklenir:
<meta name="description" content="{{ $post->meta_description }}">
<meta name="keywords" content="{{ $post->meta_keywords }}">
<link rel="canonical" href="{{ $post->canonical_url }}">
<!-- Open Graph (Facebook, LinkedIn vb.) -->
<meta property="og:title" content="{{ $post->title }}">
<meta property="og:image" content="{{ $post->featured_image }}">
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image">
Sosyal Paylaşım
Yazı detay sayfasında otomatik olarak şu sosyal ağlara paylaşım bağlantıları eklenir:
- Twitter/X
- Link Kopyala
Gelişmiş Özellikler
Slug Otomatik Oluşturma
Başlık yazıldıkça slug otomatik olarak oluşturulur:
'Laravel 11 İle Blog Yapımı' → 'laravel-11-ile-blog-yapimi'
Full-Text Search
Yazı başlığı, açıklaması ve içeriğinde arama yapılır:
Post::search('laravel')->get();
Pagination
Yazılar 12'şer sayfalanır (ayarlanabilir):
Post::paginate(config('blog.per_page'));
Config Ayarları
config/blog.php:
return [
'per_page' => 12, // Sayfada gösterilecek yazı sayısı
'enable_comments' => false, // Yorum sistemi (gelecek)
'enable_ratings' => false, // Puan sistemi (gelecek)
'featured_limit' => 5, // Öne çıkartılan yazı sayısı
];
Lisans
MIT
Katkı
Katkılarınızı bekliyoruz! Pull request gönderin.
Destek
Sorunuz varsa support@omercan.com ile iletişime geçin.