Viewing 8 replies - 1 through 8 (of 8 total)
  • Hello,

    I have this problem too.

    I want to show a password by clocking the start and if by refreshing the page, they can restart the test, I think it can’t be useful for this application.

    Is there any plugin for this application I need?

    Hi,

    I am having the same problem. Please suggest where can I edit in the code.
    Or if there is another plugin then suggest me.

    Thread Starter mitali.cyrus

    (@mitalicyrus)

    I dont know about any other plugin with as many options as this one. This is by far the best Quiz plugin.

    If you must, you may try, “Watu” – Its good enough. Though the refreshing problem may still persist.

    And i am absolutely clueless to where to change the code. I am still looking into it though.

    everything in this plugin is OK and I was really surprised for this plugin abilities.
    But I need timer for my contests and it should not reset by refreshing page or logging out the users.
    I think this plugin doesn’t have this ability right now. It should be programmed for this application which I want.
    If time become OK, it will get all my requests….

    yeah_ I don’t like it too.

    maybe we can set some cookie variables for the timer.
    I’ll try to find it.

    yay_!
    I’ve successfully save the timer to cookies.

    chathuranga

    (@chathuranga)

    Hi Muhammad Muhaimin,

    It will be a great help, if you can share your knowledge (I mean the code about save the timer to cookies) among other people who have faced this problem including me.

    Thanks.

    it’s a bit complicated.
    especially, if you have never edit a plugin.

    firstly, I use jQuery Cookie, so download it.

    then follow these steps:

    1. navigate to /wp-content/plugins/wp-pro-quiz.

    2. place jquery.cookie.js in js folder.

    3. edit wp-pro-quiz.php
    define('WPPROQUIZ_DEV', false);
    to
    define('WPPROQUIZ_DEV', true);

    4. edit /lib/controller/WpProQuiz_Controller_Front.php

    if($quiz) {
    	wp_enqueue_script(
    		'wpProQuiz_front_javascript',
    		plugins_url('js/wpProQuiz_front'.(WPPROQUIZ_DEV ? '' : '.min').'.js', WPPROQUIZ_FILE),
    		array('jquery-ui-sortable'),
    		WPPROQUIZ_VERSION,
    		$footer
    	);
    
    	wp_localize_script('wpProQuiz_front_javascript', 'WpProQuizGlobal', array(
    		'ajaxurl' => admin_url('admin-ajax.php'),
    		'loadData' => __('Loading', 'wp-pro-quiz'),
    		'questionNotSolved' => __('You must answer this question.', 'wp-pro-quiz'),
    		'questionsNotSolved' => __('You must answer all questions before you can completed the quiz.', 'wp-pro-quiz'),
    		'fieldsNotFilled' => __('All fields have to be filled.', 'wp-pro-quiz')
    	));
    }

    to

    if($quiz) {
    	wp_enqueue_script(
    		'wpProQuiz_front_javascript',
    		plugins_url('js/wpProQuiz_front'.(WPPROQUIZ_DEV ? '' : '.min').'.js', WPPROQUIZ_FILE),
    		array('jquery-ui-sortable'),
    		WPPROQUIZ_VERSION,
    		$footer
    	);
    
    	wp_localize_script('wpProQuiz_front_javascript', 'WpProQuizGlobal', array(
    		'ajaxurl' => admin_url('admin-ajax.php'),
    		'loadData' => __('Loading', 'wp-pro-quiz'),
    		'questionNotSolved' => __('You must answer this question.', 'wp-pro-quiz'),
    		'questionsNotSolved' => __('You must answer all questions before you can completed the quiz.', 'wp-pro-quiz'),
    		'fieldsNotFilled' => __('All fields have to be filled.', 'wp-pro-quiz'),
    		'userId' => get_current_user_id()
    	));
    
    	wp_enqueue_script(
    		'jquery-cookie',
    		plugins_url('js/jquery.cookie.js', WPPROQUIZ_FILE),
    		array('jquery-ui-sortable'),
    		'1.4.0',
    		$footer
    	);
    }

    5. edit js/wpProQuiz_front.js.

    var timelimit = (function() {
    	var _counter = config.timelimit;
    	var _intervalId = 0;
    	var instance = {};
    
    	instance.stop = function() {
    		if(_counter) {
    			window.clearInterval(_intervalId);
    			globalElements.timelimit.hide();
    		}
    	};
    
    	instance.start = function() {
    		if(!_counter)
    			return;
    
    		var x = _counter * 1000;
    
    		var $timeText = globalElements.timelimit.find('span').text(plugin.methode.parseTime(_counter));
    		var $timeDiv = globalElements.timelimit.find('.wpProQuiz_progress');
    
    		globalElements.timelimit.show();
    
    		var beforeTime = +new  Date();
    
    		_intervalId = window.setInterval(function() {
    
    			var diff = (+new Date() - beforeTime);
    			var elapsedTime = x - diff;
    
    			if(diff >= 500) {
    				$timeText.text(plugin.methode.parseTime(Math.ceil(elapsedTime / 1000)));
    			}
    
    			$timeDiv.css('width', (elapsedTime / x * 100) + '%');
    
    			if(elapsedTime <= 0) {
    				instance.stop();
    				plugin.methode.finishQuiz(true);
    			}
    
    		}, 16);
    	};
    
    	return instance;
    
    })();

    to

    var timelimit = (function() {
    	var _counter = config.timelimit;
    	var _intervalId = 0;
    	var instance = {};
    
    	// set cookie for different users and different quizzes
    	var timer_cookie = 'wpq-time-limit-' + WpProQuizGlobal.userId + '-' + config.quizId;
    
    	instance.stop = function() {
    		if(_counter) {
    			$.removeCookie(timer_cookie);
    			window.clearInterval(_intervalId);
    			globalElements.timelimit.hide();
    		}
    	};
    
    	instance.start = function() {
    		if(!_counter)
    			return;
    
    		$.cookie.raw = true;
    
    		var full = _counter * 1000;
    		var tick = $.cookie(timer_cookie);
    		var limit = tick ? tick : _counter;
    		var x = limit * 1000;
    
    		var $timeText = globalElements.timelimit.find('span').text(plugin.methode.parseTime(limit));
    		var $timeDiv = globalElements.timelimit.find('.wpProQuiz_progress');
    
    		globalElements.timelimit.show();
    
    		var beforeTime = +new Date();
    
    		_intervalId = window.setInterval(function() {
    
    			var diff = (+new Date() - beforeTime);
    			var remainingTime = x - diff;
    
    			if(diff >= 500) {
    				tick = remainingTime / 1000;
    				$timeText.text(plugin.methode.parseTime(Math.ceil(tick)));
    				$.cookie(timer_cookie, tick);
    			}
    
    			$timeDiv.css('width', (remainingTime / full * 100) + '%');
    
    			if(remainingTime <= 0) {
    				instance.stop();
    				plugin.methode.finishQuiz(true);
    			}
    
    		}, 16);
    	};
    
    	return instance;
    
    })();

Viewing 8 replies - 1 through 8 (of 8 total)
  • The topic ‘Refresh while test, and the timer restarts’ is closed to new replies.