268 medya dosyası kalıcı olarak kayıp!
Sebep: app:clear-all komutu 2025-11-30 tarihinde çalıştırıldı ve storage/tenant2/app/ klasörünü tamamen sildi.
Mevcut: Sadece 2 medya (ID: 1733, 1734) | Orphan: 268 DB kaydı fiziksel dosya yok
| Bileşen | Kullanım | Durum |
|---|---|---|
| og:image | Facebook/LinkedIn paylaşım görseli | ✅ featured_image collection'dan çekiliyor |
| twitter:image | Twitter/X card görseli | ✅ featured_image collection'dan çekiliyor |
| Schema.org Image | Google Rich Results görseli | ✅ Blog model getSeoFallbackSchemaMarkup() |
| Frontend Hero | Blog detay sayfası ana görsel | ✅ $item->getFirstMediaUrl('featured_image') |
| Blog Card Thumbnail | Liste sayfası küçük görsel | ✅ Thumbmaker ile otomatik conversion |
featured_image collection'ı destekliyor. Leonardo.AI görsellerini bu collection'a ekleyeceğiz.
İşlem: Tüm orphan media kayıtlarını temizle, fresh start
TRUNCATE TABLE media; -- 270 kayıt (268 orphan + 2 valid) silinecek
Bu işlem 2 mevcut medyayı da silecek (ID: 1733, 1734). Ancak zaten 268 medya kayıp olduğu için temiz başlangıç gerekli.
Kullanıcı onayı alındı ✓ - "tüm medyayı sıfırla tabloyu flush et truncate yani"
Beklenen Sonuç: Media tablosu tamamen boş, auto_increment sıfırlanacak
Kaynak: https://app.leonardo.ai/library
blog-{blog_id}-{slug-kisa}.webpblog-1-transpalet-nedir.webp/tmp/leonardo-blog-images/ klasörüne kaydet
# Mapping örneği (leonardo-mapping.json):
{
"blog_1": "transpalet-cesitleri-ve-kullanim-alanlari.webp",
"blog_2": "forklift-periyodik-bakim-rehberi.webp",
"blog_3": "akulu-transpalet-avantajlari.webp"
}
Blog::find($blog_id)addMedia($filepath)toMediaCollection('featured_image')og:image, twitter:image
// Pseudo-kod (implementation detayları kodda)
foreach ($mapping as $blog_id => $filename) {
$blog = Blog::find($blog_id);
$filepath = "/tmp/leonardo-blog-images/{$filename}";
// Featured image attach (sync mode - queue yok!)
$blog->addMedia($filepath)
->preservingOriginal()
->toMediaCollection('featured_image');
// SEO meta otomatik güncellenir (SeoMetaTagService)
}
| Alan | Değer | Örnek |
|---|---|---|
| file_name | Blog başlığı slugified | transpalet-cesitleri-ve-kullanim.webp |
| name | Blog başlığı (Türkçe) | Transpalet Çeşitleri ve Kullanım Alanları |
| alt_text | SEO friendly açıklama | Transpalet çeşitleri - Manuel, akülü ve elektrikli transpalet modelleri |
| custom_properties | width, height, copyright | {"width": 1200, "height": 630, "generated_by": "Leonardo.AI"} |
SeoMetaTagService zaten featured_image collection'ını kontrol ediyor. Görsel attach edilince otomatik meta taglar güncellenir.
https://ixtif.com/admin/blog # Blog liste
https://ixtif.com/admin/blog/manage/1 # Blog edit
https://ixtif.com/admin/media # Media library
| Alan | Kontrol | Beklenen |
|---|---|---|
| Blog Liste Sayfası | Card thumbnail gösterimi | Thumbmaker ile optimize edilmiş küçük görsel (400x300px) |
| Blog Detay Hero | Ana görsel gösterimi | Full-width hero image (1200px+) |
| Related Posts | İlgili blog görselleri | Thumbnail görseller doğru görünüyor |
| Mobile Responsive | Mobil cihazlarda görsel | Responsive image serving (srcset) |
| Lazy Loading | Sayfa yükleme hızı | Görseller lazy load ile yükleniyor |
| Alt Text | Görsel erişilebilirliği | Alt text SEO-friendly ve açıklayıcı |
https://ixtif.com/blog # Blog liste
https://ixtif.com/blog/{slug} # Blog detay
https://ixtif.com/blog/category/{cat} # Kategori
'featured_image' => [
'type' => 'image',
'single_file' => true, // Sadece 1 görsel
'max_items' => 1,
'max_size' => 10240, // 10MB
'conversions' => [ // Otomatik thumbnail'ler
'thumb', // 150x150
'medium', // 300x300
'large', // 1024x768
'responsive' // Çoklu boyut
],
'sortable' => false
]
1. SEO Settings og_image (manuel yükleme)
2. hero collection (YENİ STANDART - 2025)
3. featured_image collection (LEGACY - Blog kullanıyor) ← BİZ BURAYI KULLANIYORUZ
4. gallery collection (ilk görsel)
5. product_images collection (Shop için)
6. images collection (genel)
7. default collection
8. FALLBACK: Site logo
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "Blog başlığı",
"description": "Blog özeti",
"image": {
"@type": "ImageObject",
"url": "https://ixtif.com/storage/XXX/featured-image.webp",
"width": 1200,
"height": 630
},
"datePublished": "2025-11-30T10:00:00Z",
"dateModified": "2025-11-30T15:00:00Z",
"author": {
"@type": "Organization",
"name": "İxtif Endüstriyel Ekipman"
}
}
268 kayıp medya yerine Leonardo.AI'dan temiz, profesyonel, SEO-uyumlu görseller. Blog sisteminde tamamen çalışan, sosyal medya paylaşımlarında doğru önizleme gösteren, Google'da rich results ile görünen komple bir medya sistemi.