If you look at the completion report, does the quiz show completed? Have you set a passing grade on the quiz?
Hi Emma,
As I explained in my original post the passing rate for the exam is 80%. I have students with 95% not being able to unlock the certificate. It worked perfectly for a while.
Students will unlock lesson after lesson, then the exam. They pass it and then they get their certificate. It just stopped working out of the blue.
We tested from a user account and even if the exam gets passed, the certificate remains unattainable. And also noting, at this point, the Quiz shows complete. There is literally nothing that should be preventing the certificate from becoming available. I am so exasperated by now.
Its like there is a gremlin sitting in MOODLE taunting me just for fun.
On the completion report, does the quiz show as completed?
Has cron stopped running?
Are you able to provide a screenshot of your completion settings? If you copy + paste the link to the certificate and go to that URL as a student what message does it give you?
Hey, me too!
I have a course with a certificate which becomes accessible once all the quizzes have been answered correctly - 100% in this case.
The plugin has been working nicely for over 4 years but recently certificates have not been accessible in the last lesson (in fact, it's just a link to the certificate). What is strange is that older students - those how have passed the quiz and have already accessed their certificate, can still get to them.
If it's a new student, they can't even see the link and in the HTML there's no content in the code.
The CentOS server has been updated a month or so ago and I'm wondering why the older certificates are accessible, but not for newer students.
Curious...
Anyone have any clues?
MichaelW
I suspect that when they upgraded, it overwrote the cron entry and cron is not running so the completion settings are not updating and making the certificate available. Check the notifications page and see if there is a warning about cron not having run.
Thanks Emma,
I ran cron ('not run for 24 hours', but I suspect longer) but no banana. I had wondered is something might have gone AWOL with the OS update. There's nothing in the logs. It's a shared server so logs are limited.
I've attached two screen shots which show the link for the certificate (greyed out) and one for the link not even showing up for someone who has completed the quizzes.
Many thanks for the suggestion.
Michael.
Sometimes it takes two runnings of cron - one for the completion and one to remove the restriction - try it one more time and see if that makes it appear...
If still no joy, how is the restriction set? I saw a similar post where they had both Receive Grade and Require Passing Grade checked and that caused issues so they had to uncheck the Receive grade and just leave the passing grade checkbox checked.
The fact that cron is not running though is most likely your issue.
Hi Emma,
Thanks for your response. I've had the cron job running every 15 minutes (not sure of the recommended period) but it's still not showing up. The certificates are old, in that they passed the quiz sometime ago. I've only had one test: require passing grade, so not an issue with duplicate tests.
I'll have to dig around further I guess.
Thanks
Michael.
If it is not cron, then it is a setting somewhere. Double check your completion settings, the passing grade on the quiz and the restriction. If the quiz is showing as completed on the completion report, then it must be the restriction that is set wrong. Try deleting it and re-adding it.
Hi Emma,
I think I might have found the error from the log file in the /mod/certificate path:
[06-Feb-2017 00:37:01 Europe/London] PHP Fatal error: Directive 'allow_call_time_pass_reference' is no longer available in PHP in Unknown on line 0
[28-Apr-2017 01:28:52 Europe/London] Default exception handler: A required parameter (id) was missing Debug:
* line 435 of /lib/setuplib.php: moodle_exception thrown
* line 504 of /lib/moodlelib.php: call to print_error()
* line 32 of /mod/certificate/view.php: call to required_param()
This looks to me like a deprecated directive. Would installing the newest version of 'certificate' recover from this error? I guess there would need to be some reconfiguration to get the certs looking similar to the old version.
I gather from the internet that removing the reference to 'allow_call_time_pass_reference' in the php.ini will fix the issue but I'm on a shared hosting service so fiddling with the php.ini is not possible. Sometimes it can be overridden in a local php.ini but the solution is to remove the directive in the php.ini so I'm not sure how to setup a negation if absence of a directive is needed...
Running Moodle 2.2.5 (on PHP version 5.4.45 ) with these certificate details:
$module->version = 2013021200; // The current module version (Date: YYYYMMDDXX)
$module->requires = 2010112400; // Requires this Moodle version
$module->cron = 0; // Period for cron to check this module (secs)
$module->component = 'mod_certificate';
$module->maturity = MATURITY_STABLE;
$module->release = "Stable (2012121302)"; // User-friendly version number
Perhaps an upgrade to the latest certificate might be in order?
Cheers,
Michael.
Hi M (I suspect there is more to your first name than that ;)),
Those are two separate errors. One seems to be from someone accessing mod/certificate/view.php without passing the id in the URL (which will cause that error to happen) and the other seems completely unrelated.
If you google "allow_call_time_pass_reference" you will see a bunch of pages referring to the error you are getting.
Hi Mark,
Yeap, I'm a full Michael.
Thanks for your thoughts, I'd seen Google about the latter point but it's on a shared server and I don't think I'll be able to ensure that allow_call_time_pass_reference removed from the php.ini.
Yes, curious as to why the parameter is missing. More investigation...
Thanks,
M
Hi team,
The hosting company did fix the "allow_call_time_pass_reference" by removing the directive from the php.ini for the server. I've no longer getting the errors for this.
Sadly, I'm getting a file not found error now. I suspect permissions or something like that in the plugin path.
Many thanks,