LearnDash'te Test Soru Zamanlayıcısı Nasıl Eklenir
Yayınlanan: 2019-10-12Her iyi Öğrenim Yönetim Sistemi, bir sınava/teste zamanlayıcı ekleme seçeneği sunar. Ve LearnDash farklı değil.
Yönetici panelinizde LearnDash Quiz ayarlarına girerseniz, test düzeyinde bir 'Zaman Sınırı' ekleme seçeneği görmelisiniz.
Zamanlayıcılar, sınav görevlisinin/eğitmenin/öğretmenin gerçek sınavı kontrol etmesi için harika bir yoldur.
- Her öğrenciye, ruhlarında oynayarak meydan okur,
- öğrencilerin kopya çekmeye vakitleri yok,
- ve aralarında bir rekabet düzeyi de ekler
Ancak, tüm sorular eşit ağırlıkta olduğunda veya aynı türde olduğunda bir sınav zamanlayıcısı iyi çalışır. Örneğin bir matematik sınavı gibi. Ama ya birkaç matematik sorusu sınavın sadece bir parçasıysa ve sadece bu belirli soruların zamanlanması gerekiyorsa.
Bu durumda, sınav zamanlayıcısı yerine soru başına zamanlayıcıya ihtiyacınız olacak.
Şimdi, LearnDash soru başına bir zamanlayıcı sağlamaz.
Bunu biliyorsun.
Ve bu yüzden buradasın değil mi?!
Bu nedenle, süreli sorular eklemeniz gereken senaryolar için, LearnDash'te her sınav sorusu için tam olarak nasıl bir zaman sınırı ekleyebileceğinizi size açıklayacağım.
İşte başarmaya çalışacağımız şey:
- Her soru için, her sınav sorusu için bir zaman sınırı belirleyebileceğiniz isteğe bağlı bir alan ekleyeceğiz.
- Daha sonra sınav sorusu için zaman sınırı ön uçta gösterilecek ve 'Sonraki' soru düğmesi gizlenecektir.
- Öğrencinin zamanı biterse, bir sonraki soru otomatik olarak gösterilecektir.
Şimdi sizi uyarmalıyım; Bu çözümü uygulamak için yeterli miktarda PHP ve JavaScript geliştirme bilgisine ihtiyacınız var. Değilse, size burada yardımcı olabilecek bir LearnDash geliştiricisi ile iletişime geçmeniz gerekir.
LearnDash Testleriniz için Kendin Yap Özelleştirme Hileleri
|
Peki. Hadi çalışalım.
Adım 1: Bir Soru Zaman Sınırı Ayarı Ekleyin
Her sınav için basit bir ayar ekleyerek başlamanız gerekir. Tabii ki, göründüğü kadar basit değil.
Daha önce LearnDash sınavları üzerinde çalışmış bir geliştiriciyseniz, çalışabileceğiniz herhangi bir kanca olmadığını bilirsiniz. Sınav soru ayarlarına alan eklemek için kullanabileceğiniz bir kanca yok.
Ama endişelenme. Burada çekirdeği özelleştirmeyeceğiz. Yapacağımız şey, biraz JavaScript sihri kullanmak.
JavaScript kullanarak, soru ayarları sayfasındaki 'Kaydet' düğmesinin üstüne bir alan yerleştireceğiz. Alan için 'Kaydet' butonunun kullanılmasının nedeni, her kısa sınav soru ayarları sayfasında 'Kaydet' düğmesinin bulunmasıdır.
Soru zamanlayıcı alanını eklemek için 'Kaydet' düğmesinin kimliğini referans olarak kullanacağız.
JavaScript kodunun aşağıdaki parçası, 'Kaydet' düğmesinin üzerinde bir 'Soru Süresi Sınırı' alanı görüntüler.
$ save_button = jQuery( "#saveQuestion" ); $ save_button_div = $ save_button.closest( "div" ); $ içerik = '<div class="postbox"> <h3 class="hndle">' + 'Soru Süresi Sınırı (saniye cinsinden)' + '</h3> <div class="içeride"> <input type="number" min="0" class="small-text" value="' + input_content + '" name="qtn_time_limit"> </div> </div>' ; $ save_button_div .before ( $ içerik);
Burada input_content, 'Soru Zaman Sınırı' alanının değeridir. Varsayılan olarak, değer 0'a ayarlanmalıdır. Siz (veya bir kullanıcı) bu değeri her ayarladığınızda, güncellenmeli ve veritabanına kaydedilmelidir (PHP aracılığıyla işlenir). Aynı şekilde veritabanından okunmalı ve kullanıcı bu alana baktığında kullanıcıya gösterilmelidir.
Bu JavaScript kodu, kuyruğa alındığında alanı aşağıdaki gibi görüntüler:
Adım #2: LearnDash Test Sorusu için bir Zaman Sınırı Ekleyin
Bir soru için alan değeri kaydedildikten sonra, test sorusu denendiğinde zamanlayıcı görüntülenmelidir. Bu, aşağıdaki adımlar kullanılarak yapılabilir:
- Zamanlayıcı Değerini Alın
- zamanlayıcıyı başlat
- Zaman sınırına ulaşılıp ulaşılmadığını periyodik olarak kontrol edin
- Sonraki sınav sorusu düğmesini tetikle
Aynısı için kod aşağıdaki gibidir:
jQuery( '[name="startQuiz"],[name="next"]' ) .click ( function (){ jQuery( '.wpProQuiz_listItem' ) .each ( işlev (){ if (jQuery(this). is (':visible')){ $ current_question_id = jQuery(bu). bul (" .wpProQuiz_questionList "); $ current_question_id = $ current_question_id .attr ( "data-question_id" ); if (wdmAjaxData.post_meta[ $ current_question_id] ! == tanımsız ){ counter_value = wdmAjaxData.post_meta[ $ current_question_id]; } başka { sayaç_değeri = 0 ; } var wdm_globalElements = { sonraki: jQuery(bu). bul ("[isim='sonraki']"), wdm_timelimit: jQuery(bu). bul (' .wpProQuiz_question_time_limit '), current_counter: "counter_value" }; wdm_globalElements. sonraki .hide (); var wdm_timelimit = ( function () { var _counter = wdm_globalElements.current_counter; var _intervalId = 0 ; var örnek = {}; örnek . dur = fonksiyon () { if (_counter) { pencere clearInterval (_intervalId); wdm_globalElements.wdm_timelimit .css ( "görüntüleme" , "yok" ); } }; örnek . başlat = işlev () { if ( ! _counter){ wdm_globalElements. sonraki .göster (); dönüş ; } var x = _counter * 1000 ; var $ timeText = wdm_globalElements.wdm_timelimit. find (' span ') .text (parseTime(_counter)); var $ timeDiv = wdm_globalElements.wdm_timelimit. bul (' .wpProQuiz_question_progress '); wdm_globalElements.wdm_timelimit .css ( "ekran" , "" ); var BeforeTime = + new Date(); _intervalId = pencere . setInterval ( işlev () { var diff = ( + new Date() - BeforeTime); var geçenZaman = x - fark; if (fark >= 500 ) { $ timeText .text (parseTime( Math .ceil (elapsedTime / 1000 )); } $ timeDiv .css ( 'genişlik' , (geçen Zaman / x * 100 ) + '%' ); if (elapsedTime <= 0 ) { örnek .stop (); wdm_globalElements. sonraki .trigger ( "tıkla" ); } }, 16 ); }; dönüş örneği; })(); wdm_timelimit. başlat (); } }); }
Yukarıdaki kod, zamanlayıcı çalışırken 'Sonraki' soru düğmesini gizler ve ardından zaman sınırına ulaşıldığında tıklar.
https://wisdmlabs.com/learndash-quiz-customization/?utm_source=blog&utm_medium=post&utm_campaign=quiz_cusomization_timer&utm_content=DropshippingVe bunun sonucu aşağıdaki gibi olmalıdır:
Sınav başına soru zamanlayıcısı, sınavdaki diğer sorulara kıyasla belirli bir soruya ağırlık atamak istediğinizde çalışır. Bu kod, LearnDash'e böyle bir işlev eklemek istediğinizde kullanışlı olabilir.
Bunu deniyorsanız ve benim için herhangi bir sorunuz varsa, ateş edin!
'LearnDash Test Özelleştirmesi' ile İlgili Daha Fazla Okuma
|
Freepik'e göre resimler