• 04-07-2024, 20:35:50
    #10
    Emek verenlerin ellerine sağlık. Latince okunuşu da eklenirse harika olur. Arapça bilmeyenler için. ek olarak mobilde başlamıyor okumaya, play pause butonu da eklenirse daha sağlıklı olabilir.
  • 05-07-2024, 00:52:56
    #11
    Elinize sağlık
  • 05-07-2024, 09:34:31
    #12
    Ferecbilisim adlı üyeden alıntı: mesajı görüntüle
    Emek verenlerin ellerine sağlık. Latince okunuşu da eklenirse harika olur. Arapça bilmeyenler için. ek olarak mobilde başlamıyor okumaya, play pause butonu da eklenirse daha sağlıklı olabilir.
    Kontrol edeceğim bu sorunu bugün teşekkürler.
  • 05-07-2024, 13:39:38
    #13
    Ben de kendimce birşeyler ekledim:

    + pencereyi kapatıp yeniden girdiğiniz de, ya da yenilediğinizde kaldığınız yerden devam etme özelliği ekledim.
    + Alt kısma sabit bar ekleyip play pause butonu, bir sonraki ve bir önce ki butonları ekledim. tıklayınca bir önce ki ve yada bir sonraki ayete atlıyor.
    + Sadece Aktif yani çalan ayeti ön plana çıkarıp pasif olanların rengini soldurdum
    + Herhangi bir ayete tıklayınca otomatik aktif edip ayeti okutmayı ekledim
    + Latince okunuşu bölümünü ekledim. Arapça bilmeyenler Latince okuyabilirler
    + Sessizce takip edebilmek için ses kapatma ve açma butonu ekledim.
    + Tasarımda ufak çaplı değişiklik yaptım.
    + Şuan hangi ayette olduğunu gösteren ibare ekledim.



  • 05-07-2024, 14:41:51
    #14
    Ferecbilisim adlı üyeden alıntı: mesajı görüntüle
    Ben de kendimce birşeyler ekledim:

    + pencereyi kapatıp yeniden girdiğiniz de, ya da yenilediğinizde kaldığınız yerden devam etme özelliği ekledim.
    + Alt kısma sabit bar ekleyip play pause butonu, bir sonraki ve bir önce ki butonları ekledim. tıklayınca bir önce ki ve yada bir sonraki ayete atlıyor.
    + Sadece Aktif yani çalan ayeti ön plana çıkarıp pasif olanların rengini soldurdum
    + Herhangi bir ayete tıklayınca otomatik aktif edip ayeti okutmayı ekledim
    + Latince okunuşu bölümünü ekledim. Arapça bilmeyenler Latince okuyabilirler
    + Sessizce takip edebilmek için ses kapatma ve açma butonu ekledim.
    + Tasarımda ufak çaplı değişiklik yaptım.
    + Şuan hangi ayette olduğunu gösteren ibare ekledim.



    Ellerine sağlık ☺️
  • 05-07-2024, 14:44:17
    #15
    Ferecbilisim adlı üyeden alıntı: mesajı görüntüle
    Ben de kendimce birşeyler ekledim:

    + pencereyi kapatıp yeniden girdiğiniz de, ya da yenilediğinizde kaldığınız yerden devam etme özelliği ekledim.
    + Alt kısma sabit bar ekleyip play pause butonu, bir sonraki ve bir önce ki butonları ekledim. tıklayınca bir önce ki ve yada bir sonraki ayete atlıyor.
    + Sadece Aktif yani çalan ayeti ön plana çıkarıp pasif olanların rengini soldurdum
    + Herhangi bir ayete tıklayınca otomatik aktif edip ayeti okutmayı ekledim
    + Latince okunuşu bölümünü ekledim. Arapça bilmeyenler Latince okuyabilirler
    + Sessizce takip edebilmek için ses kapatma ve açma butonu ekledim.
    + Tasarımda ufak çaplı değişiklik yaptım.
    + Şuan hangi ayette olduğunu gösteren ibare ekledim.



    İndirme linkini paylaşırsanız, yararlanmak isteyenler kullanabilsinler sizden ricam.
  • 05-07-2024, 14:57:06
    #16
    Pc ye geçince kaynak kodları iletirim inşallah.
  • 05-07-2024, 22:02:16
    #17
    Kodlar aşağıdadır.

    Alıntı
    <!DOCTYPE html>
    <html lang="tr">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Yasin Suresi</title>
        <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
        <style>
            .card-arabic {
                background-color: #f9f9f9;
            }
    
            .card-text-arabic {
                font-size: 1.2em;
                direction: rtl;
            }
    
            .card-text-translation {
                font-size: 1em;
                color: green;
            }
    
            .card-text-transliteration {
                font-size: 1em;
                font-style: italic;
            }
    
            .highlight {
                background-color: #d4edda !important;
                padding-top: 15px;
                padding-bottom: 15px;
            }
    
            .ayah-card:not(.highlight) .card-text-translation {
                color: black; /* Normal renk */
            }
    
            .ayah-card:not(.highlight) .card-text-transliteration {
                font-style: normal; /* Normal stil */
            }
    
            .ayah-card:not(.highlight) {
                opacity: 0.5;
            }
    
            .audio-player-container {
                position: fixed;
                bottom: 0;
                left: 0;
                width: 100%;
                background-color: #f1f1f1;
                padding: 10px;
                box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
                z-index: 1000;
                display: flex;
                align-items: center;
                justify-content: center;
            }
    
            #audioPlayer {
                display: none;
            }
    
            .audio-controls {
                display: flex;
                justify-content: center;
                align-items: center;
            }
    
            .audio-controls button {
                background-color: #007bff;
                color: white;
                border: none;
                padding: 10px;
                cursor: pointer;
                font-size: 1.2em;
                border-radius: 5px;
                margin: 0 5px;
                display: flex;
                align-items: center;
                justify-content: center;
                width: 50px;
                height: 50px;
            }
    
            .audio-controls button:hover {
                background-color: #0056b3;
            }
    
            .audio-controls button svg {
                width: 24px;
                height: 24px;
            }
    
            .now-playing {
                text-align: center;
                margin-bottom: 10px;
                font-weight: bold;
                color: green;
                font-size: 1.1em;
            }
        </style>
    </head>
    
    <body>
    
        <div class="container mt-5" id="surah-content">
            <h1 class="text-center mb-4">Yasin Suresi</h1>
            <div class="row" id="surah-container">
                <?php
                // AlQuran API'den Yasin Suresi'ni (Süre 36) almak için URL belirleyin
                $urlArabic = "http://api.alquran.cloud/v1/surah/36"; // Arabic text
                $urlTranslation = "http://api.alquran.cloud/v1/surah/36/tr.golpinarli"; // Diyanet translation
                $urlTransliteration = "http://api.alquran.cloud/v1/surah/36/tr.transliteration"; // Transliteration
                $urlAudio = "http://api.alquran.cloud/v1/surah/36/ar.alafasy"; // Audio recitation by Alafasy
    
                // cURL başlat
                $chArabic = curl_init();
                $chTranslation = curl_init();
                $chTransliteration = curl_init();
                $chAudio = curl_init();
    
                // cURL seçeneklerini ayarla
                curl_setopt($chArabic, CURLOPT_URL, $urlArabic);
                curl_setopt($chArabic, CURLOPT_RETURNTRANSFER, 1);
    
                curl_setopt($chTranslation, CURLOPT_URL, $urlTranslation);
                curl_setopt($chTranslation, CURLOPT_RETURNTRANSFER, 1);
    
                curl_setopt($chTransliteration, CURLOPT_URL, $urlTransliteration);
                curl_setopt($chTransliteration, CURLOPT_RETURNTRANSFER, 1);
    
                curl_setopt($chAudio, CURLOPT_URL, $urlAudio);
                curl_setopt($chAudio, CURLOPT_RETURNTRANSFER, 1);
    
                // cURL isteğini gerçekleştir ve yanıtı al
                $responseArabic = curl_exec($chArabic);
                $responseTranslation = curl_exec($chTranslation);
                $responseTransliteration = curl_exec($chTransliteration);
                $responseAudio = curl_exec($chAudio);
    
                // cURL oturumunu kapat
                curl_close($chArabic);
                curl_close($chTranslation);
                curl_close($chTransliteration);
                curl_close($chAudio);
    
                // JSON yanıtını çöz
                $dataArabic = json_decode($responseArabic, true);
                $dataTranslation = json_decode($responseTranslation, true);
                $dataTransliteration = json_decode($responseTransliteration, true);
                $dataAudio = json_decode($responseAudio, true);
    
                // İsteğin başarılı olup olmadığını kontrol et
                if ($dataArabic && $dataArabic['status'] === "OK" && $dataTranslation && $dataTranslation['status'] === "OK" && $dataTransliteration && $dataTransliteration['status'] === "OK" && $dataAudio && $dataAudio['status'] === "OK") {
                    // Sure verilerini al
                    $surahArabic = $dataArabic['data'];
                    $surahTranslation = $dataTranslation['data'];
                    $surahTransliteration = $dataTransliteration['data'];
                    $surahAudio = $dataAudio['data']['ayahs'];
    
                    // Yasin Suresi'ni kartlarla göster
                    foreach ($surahArabic['ayahs'] as $index => $ayah) {
                        $arabicText = $ayah['text'];
                        $translation = $surahTranslation['ayahs'][$index]['text'];
                        $transliteration = $surahTransliteration['ayahs'][$index]['text'];
    
                        // "ü" harfini "u" ile değiştir
                        $transliteration = str_replace('ü', 'u', $transliteration);
                         $transliteration = str_replace('g', 'ğ', $transliteration);
    
                        $cardClass = ($index === 0) ? 'ayah-card highlight' : 'ayah-card';
                        echo '<div class="col-md-12 mb-4 ' . $cardClass . '" id="ayah-' . $ayah['numberInSurah'] . '">';
                        echo '<div class="card card-arabic">';
                        echo '<div class="card-body">';
                        echo '<h5 class="card-title text-center" >Yasin Suresi ' . $ayah['numberInSurah'] . '. Ayet</h5>';
                      
                        echo '</div>';
                        echo '</div>';
                         echo '<div class="card mt-2">';
                        echo '<div class="card-body">';
                      
                        echo '<p class="card-text card-text-arabic text-center">' . $arabicText . '</p>';
                        echo '</div>';
                        echo '</div>';
                        echo '<div class="card mt-2">';
                        echo '<div class="card-body">';
                        echo '<p class="card-text card-text-transliteration"><strong>Latince Okunuşu :</strong> ' . $transliteration . '</p>';
                        echo '</div>';
                        echo '</div>';
                        echo '<div class="card mt-2">';
                        echo '<div class="card-body">';
                        echo '<p class="card-text card-text-translation"><strong>Meali :</strong> <span class="ayah-translation">' . $translation . '</span></p>';
                        echo '</div>';
                        echo '</div>';
                        echo '</div>';
                    }
                } else {
                    echo '<div class="alert alert-danger">Sure alınamadı.</div>';
                }
                ?>
            </div>
        </div>
    
        <div class="audio-player-container">
            <div id="nowPlaying" class="now-playing"></div>
            <div class="audio-controls">
                <button id="prevAyah">
                    <svg viewBox="0 0 24 24">
                        <path d="M5 12l14-9v18z"></path>
                    </svg>
                </button>
                <button id="playPause">
     <svg id="pauseIcon" viewBox="0 0 24 24" style="display: none;">
                        <path d="M6 19h4V5H6v14zm8-14v14h4V5h-4z"></path>
                    </svg>
                    <svg id="playIcon" viewBox="0 0 24 24">
                        <path d="M8 5v14l11-7z"></path>
                    </svg>
                  
                </button>
                <button id="nextAyah">
                    <svg viewBox="0 0 24 24">
                        <path d="M19 12l-14 9V3z"></path>
                    </svg>
                </button>
                <button id="muteToggle">
                    <svg id="unmutedIcon" viewBox="0 0 24 24">
                        <path d="M12 3v18l-5-5H3V9h4l5-6zm8.5 8.5L18 13V7l-1.5 1.5L13 7v10l3.5-3.5L18 17v-6l1.5 1.5V12h1v-1.5z"></path>
                    </svg>
                    <svg id="mutedIcon" viewBox="0 0 24 24" style="display: none;">
                        <path d="M12 3v18l-5-5H3V9h4l5-6zm8.5 8.5L18 13V7l-1.5 1.5L13 7v10l3.5-3.5L18 17v-6l1.5 1.5V12h1v-1.5z"></path>
                    </svg>
                </button>
            </div>
            <audio id="audioPlayer" controls>
                <source id="audioSource" src="" type="audio/mp3">
                Tarayıcınız ses etiketini desteklemiyor.
            </audio>
        </div>
    
        <script>
            document.addEventListener('DOMContentLoaded', function () {
                const totalAyahs = <?php echo count($surahArabic['ayahs']); ?>;
                let currentAyah = 1;
                const audioPlayer = document.getElementById('audioPlayer');
                const audioSource = document.getElementById('audioSource');
                const ayahCards = document.querySelectorAll('.ayah-card');
                const audioUrls = <?php echo json_encode(array_map(function ($ayah) {
                                        return $ayah['audio'];
                                    }, $surahAudio)); ?>;
                const surahContent = document.getElementById('surah-content');
                const loadingScreen = document.getElementById('preloader');
                const progress = document.getElementById('progress');
                const loadingText = document.getElementById('loadingText');
                const nowPlaying = document.getElementById('nowPlaying');
                const playPauseButton = document.getElementById('playPause');
                const prevAyahButton = document.getElementById('prevAyah');
                const nextAyahButton = document.getElementById('nextAyah');
                const muteToggleButton = document.getElementById('muteToggle');
                let audioPreloaded = [];
                let isPlaying = false;
                let isPaused = false;
    
                function highlightAyah(ayahNumber) {
                    ayahCards.forEach(card => {
                        if (card.id === `ayah-${ayahNumber}`) {
                            card.classList.add('highlight');
                        } else {
                            card.classList.remove('highlight');
                        }
                    });
                    const currentCard = document.getElementById(`ayah-${ayahNumber}`);
                    currentCard.scrollIntoView({
                        behavior: 'smooth',
                        block: 'center'
                    });
                }
    
                function playAyah(ayahNumber) {
                    const audioUrl = audioPreloaded[ayahNumber - 1].src;
                    audioSource.src = audioUrl;
                    audioPlayer.load();
                    audioPlayer.play();
                    highlightAyah(ayahNumber);
    
                    // Now Playing gösterimi
                    nowPlaying.innerHTML = `Şu an ${ayahNumber}. Ayettesin`;
                    document.getElementById('playIcon').style.display = 'none';
                    document.getElementById('pauseIcon').style.display = 'block';
                    isPlaying = true;
                    isPaused = false;
                }
    
                function pauseAyah() {
                    audioPlayer.pause();
                    document.getElementById('playIcon').style.display = 'block';
                    document.getElementById('pauseIcon').style.display = 'none';
                    isPlaying = false;
                    isPaused = true;
                }
    
                playPauseButton.addEventListener('click', function () {
                    if (isPlaying) {
                        pauseAyah();
                    } else {
                        if (isPaused) {
                            audioPlayer.play();
                            document.getElementById('playIcon').style.display = 'none';
                            document.getElementById('pauseIcon').style.display = 'block';
                            isPlaying = true;
                        } else {
                            playAyah(currentAyah);
                        }
                    }
                });
    
                audioPlayer.addEventListener('ended', function () {
                    if (currentAyah < totalAyahs) {
                        currentAyah++;
                        playAyah(currentAyah);
                    }
                });
    
                prevAyahButton.addEventListener('click', function () {
                    if (currentAyah > 1) {
                        currentAyah--;
                        playAyah(currentAyah);
                    }
                });
    
                nextAyahButton.addEventListener('click', function () {
                    if (currentAyah < totalAyahs) {
                        currentAyah++;
                        playAyah(currentAyah);
                    }
                });
    
                muteToggleButton.addEventListener('click', function () {
                    audioPlayer.muted = !audioPlayer.muted;
                    document.getElementById('unmutedIcon').style.display = audioPlayer.muted ? 'none' : 'block';
                    document.getElementById('mutedIcon').style.display = audioPlayer.muted ? 'block' : 'none';
                });
    
                function preloadAudio() {
                    let loadedCount = 0;
                    audioUrls.forEach((url, index) => {
                        const audio = new Audio();
                        audio.src = url;
                        audio.addEventListener('canplaythrough', () => {
                            loadedCount++;
                            const progressPercent = Math.round((loadedCount / audioUrls.length) * 100);
                            progress.style.width = progressPercent + '%';
    
                            // Preloader durumuna göre metin güncellemeleri
                            if (progressPercent === 50) {
                                loadingText.textContent = "Biraz daha sabır et, az kaldı :)";
                            } else if (progressPercent === 80) {
                                loadingText.textContent = "Çok az kaldı :)";
                            } else if (progressPercent === 100) {
                                loadingText.textContent = "Sabrın için teşekkür ederim. Bak Bitti Mübarek :)";
                                setTimeout(() => {
                                    loadingText.textContent = ""; // Metni temizle
                                    setTimeout(() => {
                                        loadingScreen.style.opacity = '0';
                                        setTimeout(() => {
                                            loadingScreen.style.display = 'none';
                                            surahContent.style.display = 'block';
                                            playAyah(currentAyah);
                                        }, 300);
                                    }, 1000); // Metnin ekranda kalma süresi
                                }, 2000); // Metnin ekranda kalma süresi
                            }
                        });
                        audioPreloaded.push(audio);
                    });
                }
    
                preloadAudio();
    
                // Kullanıcının tarayıcıyı kapatıp açması durumunda kaldığı ayeti hatırlama
                window.addEventListener('beforeunload', function () {
                    localStorage.setItem('lastPlayedAyah', currentAyah);
                });
    
                window.addEventListener('load', function () {
                    const lastPlayedAyah = localStorage.getItem('lastPlayedAyah');
                    if (lastPlayedAyah) {
                        currentAyah = parseInt(lastPlayedAyah);
                        playAyah(currentAyah);
                    }
                });
    
                // Ayet kartlarına tıklama event'i
                ayahCards.forEach(card => {
                    card.addEventListener('click', function () {
                        const ayahNumber = parseInt(this.id.split('-')[1]);
                        currentAyah = ayahNumber;
                        playAyah(currentAyah);
                    });
                });
    
                // Baştan Başla butonu event'i
                const restartButton = document.getElementById('restartButton');
                restartButton.addEventListener('click', function () {
                    currentAyah = 1;
                    playAyah(currentAyah);
                });
            });
        </script>
    </body>
    
    </html>
  • 15-07-2024, 15:52:19
    #18
    Ferecbilisim adlı üyeden alıntı: mesajı görüntüle
    Kodlar aşağıdadır.
    Parse error: syntax error, unexpected identifier " " in /home/dualhwyj/public_html/yasin.php on line 113

    BBöyle bir hata verdi hocam