🎵

Play Tuşu Otomatik Yönlendirme Sorunu

Muzibu.com.tr | 21 Aralık 2025

📝

Basit Anlatım (Herkes İçin)

Sorun Nedir?
Kullanıcı üye olmadan veya premium üyeliği yokken albüm, playlist, tür (genre), sektör veya radyo kartlarındaki Play ▶ tuşuna bastığında:

  • Yanlış Davranış: Uyarı mesajı gösteriliyor SONRA otomatik olarak kayıt/üyelik sayfasına yönlendiriliyor (800ms sonra)
  • Problem: Kullanıcı "Yükleniyor..." modalı görüyor, sayfa değişiyor, kafa karıştırıcı deneyim

Nasıl Olmalı?
Play tuşu ASLA sayfa değiştirmemeli:

  • Doğru Davranış: Sadece kırmızı uyarı baloncuğu (toast) göster: "Şarkı dinlemek için kayıt olmalısınız"
  • Kullanıcı Kontrolü: Kullanıcı isterse kendisi kayıt sayfasına gider, zorla yönlendirme YOK
  • Temiz Deneyim: Sayfa aynı kalır, sadece bilgilendirme yapılır

Benzetme: Bir mağazada kapalı kapının önünde "Sadece üyeler girebilir" tabelası vardır. Tabelayı okuyunca kapı seni zorla kayıt noktasına götürmez, sadece bilgilendirir. Kararı sen verirsin.

🔍

Sorunun Kaynağı

Dosya: public/themes/muzibu/js/player/features/play-helpers.js

Bu dosyada 5 fonksiyon var (tüm içerik türleri için):

  • playGenres() - Tür (genre) çalma
  • playPlaylist() - Playlist çalma
  • playAlbum() - Albüm çalma
  • playRadio() - Radyo çalma
  • playSector() - Sektör çalma

❌ Hatalı Kod Örneği:

// playGenres() fonksiyonu - satır 22-37
if (!player.isLoggedIn) {
    player.showToast('Şarkı dinlemek için kayıt olmalısınız', 'warning');
    setTimeout(() => {
        window.location.href = '/register';  // ❌ SORUN: Otomatik yönlendirme!
    }, 800);
    return;
}

const isPremiumOrTrial = player.currentUser?.is_premium || player.currentUser?.is_trial;
if (!isPremiumOrTrial) {
    player.showToast('Şarkı dinlemek için premium üyelik gereklidir', 'warning');
    setTimeout(() => {
        window.location.href = '/subscription/plans';  // ❌ SORUN: Otomatik yönlendirme!
    }, 800);
    return;
}

✅ Doğru Kod (Düzeltilmiş):

// playGenres() fonksiyonu - DÜZELTME
if (!player.isLoggedIn) {
    player.showToast('Şarkı dinlemek için kayıt olmalısınız', 'warning');
    // ✅ DÜZELTME: setTimeout ve yönlendirme kaldırıldı!
    return;
}

const isPremiumOrTrial = player.currentUser?.is_premium || player.currentUser?.is_trial;
if (!isPremiumOrTrial) {
    player.showToast('Şarkı dinlemek için premium üyelik gereklidir', 'warning');
    // ✅ DÜZELTME: setTimeout ve yönlendirme kaldırıldı!
    return;
}
🔧

Teknik Detaylar (Geliştiriciler İçin)

📁 Dosya Konumu:

/var/www/vhosts/tuufi.com/httpdocs/public/themes/muzibu/js/player/features/play-helpers.js

🔨 Düzeltilecek Satırlar:

playGenres() → Satır 24-27 (login check) + Satır 33-36 (premium check)
playPlaylist() → Satır 88-91 (login check) + Satır 97-100 (premium check)
playAlbum() → Satır 151-155 (login check) + Satır 161-164 (premium check)
playRadio() → Satır 215-219 (login check) + Satır 224-228 (premium check)
playSector() → Satır 279-283 (login check) + Satır 288-292 (premium check)

⚙️ Kaldırılacak Kod Bloğu (10 yerde aynı pattern):

setTimeout(() => {
    window.location.href = '/register';  // veya '/subscription/plans'
}, 800);

✅ Düzeltme Sonrası Davranış:

  • Toast mesajı gösterilir (warning seviyesinde, sarı/turuncu)
  • Fonksiyon return ile sonlanır
  • Sayfa yerinde kalır, yönlendirme yapılmaz
  • Player yüklenmeye çalışmaz (player.isLoading = false)
🎯

Yapılacaklar (Step-by-Step)

1️⃣

Dosyayı Düzenle

play-helpers.js dosyasında 5 fonksiyondan toplamda 10 yerde otomatik yönlendirme kodu var.

Her fonksiyonda 2 yerde:

  • Login kontrolü → /register yönlendirmesi KALDIR
  • Premium kontrolü → /subscription/plans yönlendirmesi KALDIR
2️⃣

Test Et (Manuel)

Tarayıcıda üye olmadan test et:

✅ Beklenen sonuç:

  • Play tuşuna bas → Toast mesajı görünsün
  • Sayfa değişmesin, aynı yerde kalsın
  • "Yükleniyor..." modal'ı açılmasın
3️⃣

Cache Temizle

JavaScript dosyası değiştiği için tarayıcı cache'ini temizle:

Ctrl+Shift+R (hard refresh) veya Ctrl+F5
4️⃣

Tamamlandı Kontrolü

Düzeltmenin başarılı olduğunu doğrula:

Test senaryoları:

  • Ana sayfada albüm play → Toast görülsün, sayfa kalmalı ✅
  • Playlist sayfasında play → Toast görülsün, sayfa kalmalı ✅
  • Tür (genre) kartında play → Toast görülsün, sayfa kalmalı ✅
  • Sektör kartında play → Toast görülsün, sayfa kalmalı ✅
  • Radyo kartında play → Toast görülsün, sayfa kalmalı ✅
💡

Neden Önemli?

🎯
Kullanıcı Deneyimi:

Zorla yönlendirme kafa karıştırır. Kullanıcı play tuşuna bastığında sayfa değişmemeli, sadece bilgilendirilmeli. Karar kullanıcının olmalı.

Performans:

Gereksiz sayfa değişimi önlenir. Toast mesajı instant gösterilir, kullanıcı aynı yerden devam eder.

🎨
Tutarlılık:

Tüm müzik platformları (Spotify, Apple Music, YouTube Music) aynı şekilde çalışır: Play tuşu sadece çalmaya çalışır, yönlendirme yapmaz.