Browse Source

Ajustes para Moodle 3.4

MOODLE_34_STABLE
Matheus Garcia 7 years ago
parent
commit
9d3830c963
  1. 42
      README.md
  2. 82
      block_verify_certificate.php
  3. 59
      db/access.php
  4. 330
      index.php
  5. 56
      lang/en/block_verify_certificate.php
  6. BIN
      logo/Certificate-unverified.png
  7. BIN
      logo/Certificate-verified.png
  8. BIN
      logo/verify_block.png
  9. BIN
      pix/certnotverified.png
  10. BIN
      pix/certverified.png
  11. BIN
      pix/printicon.png
  12. 27
      printstyle.css
  13. 65
      styles.css
  14. 28
      version.php

42
README.md

@ -1,4 +1,40 @@
Moodle block Verify certificate # verify_certificate
=============================== Moodle verify certificate block
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Version details
*
* Verify certificate block
* --------------------------
* Verify certificate based on the unique codes displayed on issued certificates.
* Full details of the issued certificate is displayed including profile picture.
* Mostly cosmetic changes to the original codes from Jean-Michel Védrine.
* Original Autor & Copyright - Jean-Michel Védrine | 2014
*
* @copyright 2015 onwards Manieer Chhettri | Marie Curie, UK | <manieer@gmail.com>
* @author Manieer Chhettri | Marie Curie, UK | <manieer@gmail.com> | 2015
* @package block_verify_certificate
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
/*
* INSTALL:
* Download the folder and install it to /blocks/ folder within Moodle installation.
* You will need to make sure all certificates have PRINT CODE to Yes under certificate settings.
*/
This module was written by Jean-Michel Védrine and my only contribution was to add the Brazilian Portuguese localization file.

82
block_verify_certificate.php

@ -1,41 +1,91 @@
<?php //Updated for use with Certificate v3+ Chardelle Busch <?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Version details
*
* Verify certificate block
* --------------------------
* Verify certificate based on the unique codes displayed on issued certificates.
* Full details of the issued certificate is displayed including profile picture.
* Mostly cosmetic changes to the original codes from Jean-Michel Védrine.
* Original Autor & Copyright - Jean-Michel Védrine | 2014
*
* @copyright 2015 onwards Manieer Chhettri | Marie Curie, UK | <manieer@gmail.com>
* @author Manieer Chhettri | Marie Curie, UK | <manieer@gmail.com> | 2015
* @package block_verify_certificate
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
/**
* Verify certificate block class
*
* @copyright 2015 onwards Manieer Chhettri | Marie Curie, UK | <manieer@gmail.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class block_verify_certificate extends block_base { class block_verify_certificate extends block_base {
function init() { /**
* Sets the block title
*
* @return void
*/
public function init() {
$this->title = get_string('title', 'block_verify_certificate'); $this->title = get_string('title', 'block_verify_certificate');
} }
function applicable_formats() { /**
* Defines where the block can be added
*
* @return array
*/
public function applicable_formats() {
return array('all' => true); return array('all' => true);
} }
function get_content() { /**
if ($this->content !== NULL) { * Creates the blocks main content
*
* @return string
*/
public function get_content() {
if ($this->content !== null) {
return $this->content; return $this->content;
} }
$fieldid = implode(',', $this->config->fieldid);
$this->content = new stdClass; $this->content = new stdClass;
$this->content->text = '<p>'.get_string('entercode', 'certificate').'</p>'; $this->content->text = '<p>'.get_string('entercode', 'certificate').'</p>';
$url = new moodle_url('/blocks/verify_certificate/index.php'); $url = new moodle_url('/blocks/verify_certificate/index.php');
$this->content->text .= '<center><form class="loginform" name="cert" method="post" action="'. $url . '">'; $this->content->text .= '<form name="cert" method="post" action="'. $url . '">';
$this->content->text .= '<input type="text" name="certnumber" id="certnumber" size="10" value="" />'; $this->content->text .= '<input type="text" id="certcode" name="certnumber" size="20" value="" />';
$this->content->text .= "<input type='hidden' name='list' id='list' value='{$fieldid}' />";
$this->content->text .= '<input type="submit" value="'.get_string('validate', 'certificate').'"/></form>'; $this->content->text .= '<input type="submit" value="'.get_string('validate', 'certificate').'"/></form>';
$this->content->text .= '<center>';
$this->content->footer = ''; $this->content->footer = '';
return $this->content; return $this->content;
} }
/* function has_config() { /**
return true; * Controls whether the block is configurable
*
* @return boolean
*/
public function instance_allow_config() {
return false;
} }
*/
function instance_allow_config() {
return true;
}
} }

59
db/access.php

@ -0,0 +1,59 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Version details
*
* Verify certificate block
* --------------------------
* Verify certificate based on the unique codes displayed on issued certificates.
* Full details of the issued certificate is displayed including profile picture.
* Mostly cosmetic changes to the original codes from Jean-Michel Védrine.
* Original Autor & Copyright - Jean-Michel Védrine | 2014
*
* @copyright 2015 onwards Manieer Chhettri | Marie Curie, UK | <manieer@gmail.com>
* @author Manieer Chhettri | Marie Curie, UK | <manieer@gmail.com> | 2015
* @package block_verify_certificate
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
$capabilities = array(
'block/verify_certificate:myaddinstance' => array(
'captype' => 'write',
'contextlevel' => CONTEXT_SYSTEM,
'archetypes' => array(
'user' => CAP_ALLOW
),
'clonepermissionsfrom' => 'moodle/my:manageblocks'
),
'block/verify_certificate:addinstance' => array(
'riskbitmask' => RISK_SPAM | RISK_XSS,
'captype' => 'write',
'contextlevel' => CONTEXT_BLOCK,
'archetypes' => array(
'editingteacher' => CAP_ALLOW,
'manager' => CAP_ALLOW
),
'clonepermissionsfrom' => 'moodle/site:manageblocks'
),
);

330
index.php

@ -1,112 +1,248 @@
<?php <?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Version details
*
* Verify certificate block
* --------------------------
* Verify certificate based on the unique codes displayed on issued certificates.
* Full details of the issued certificate is displayed including profile picture.
* Mostly cosmetic changes to the original codes from Jean-Michel Védrine.
* Original Autor & Copyright - Jean-Michel Védrine | 2014
*
* @copyright 2015 onwards Manieer Chhettri | Marie Curie, UK | <manieer@gmail.com>
* @author Manieer Chhettri | Marie Curie, UK | <manieer@gmail.com> | 2015
* @package block_verify_certificate
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
require_once("../../config.php"); require_once("../../config.php");
require_once($CFG->dirroot . '/mod/certificate/lib.php');
require_once($CFG->dirroot.'/mod/certificate/locallib.php');
require_once("$CFG->dirroot/completion/completion_completion.php");
require_once("$CFG->dirroot/enrol/locallib.php"); require_once("$CFG->dirroot/enrol/locallib.php");
require_once("$CFG->libdir/blocklib.php");
require_once("$CFG->dirroot/user/profile/lib.php");
global $DB; $id = required_param('certnumber', PARAM_ALPHANUM); // Certificate code to verify.
$code = required_param('certnumber', PARAM_ALPHANUM); // certificate code to verify $PAGE->set_pagelayout('standard');
$fieldid = required_param('list', PARAM_SEQUENCE); $strverify = get_string('verifycertificate', 'block_verify_certificate');
$fieldid = explode(',', $fieldid); $PAGE->set_url('/blocks/verify_certificate/index.php', array('certnumber' => $id));
$profile_fields = $DB->get_records_list('user_info_field', 'id', $fieldid); $context = context_system::instance();
$PAGE->set_context($context);
$PAGE->set_pagelayout('standard'); // Print the header.
$strverify = get_string('verifycertificate', 'block_verify_certificate'); $PAGE->navbar->add($strverify);
$PAGE->set_url('/blocks/verify_certificate/index.php', array('certnumber' => $code)); $PAGE->set_title($strverify);
$context = get_context_instance(CONTEXT_SYSTEM); $PAGE->set_heading($strverify);
$PAGE->set_context($context); $PAGE->requires->css('/blocks/verify_certificate/printstyle.css');
$PAGE->requires->css('/blocks/verify_certificate/styles.css');
echo $OUTPUT->header();
/// Print the header $ufields = user_picture::fields('u');
$PAGE->navbar->add($strverify); $sql = "SELECT ci.timecreated AS citimecreated,
$PAGE->set_title($strverify); ci.code, ci.certificateid, ci.userid, $ufields, c.*, u.id AS id, u.*
$PAGE->set_heading($strverify); FROM {certificate_issues} ci
$PAGE->requires->css('/blocks/verify_certificate/printstyle.css'); INNER JOIN {user} u
echo $OUTPUT->header(); ON u.id = ci.userid
INNER JOIN {certificate} c
ON c.id = ci.certificateid
WHERE ci.code = ?";
$certificates = $DB->get_records_sql($sql, array($id));
// Print results function getFormattedCPFFromUsername($userid) {
global $DB;
$user = $DB->get_record("user", array("id" => $userid));
return mask($user->username, '###.###.###-##');
}
echo $OUTPUT->box_start('generalbox boxaligncenter'); function mask($val, $mask)
{
if(validatecpf($val)) {
$maskared = '';
$k = 0;
for($i = 0; $i<=strlen($mask)-1; $i++){
if (!$issues = $DB->get_records('certificate_issues', array('code' => $code))) { if($mask[$i] == '#'){
echo get_string('notfound', 'block_verify_certificate'); if(isset($val[$k]))
$maskared .= $val[$k++];
}
else
{
if(isset($mask[$i]))
$maskared .= $mask[$i];
}
}
return $maskared;
} else { } else {
echo '<a title="' . get_string('printerfriendly', 'certificate') . '" href="#" onclick="window.print()">'; return "";
echo '<div class="printicon">';
echo '<img src="print.gif" height="16" width="16" border="0"/></a></div>';
/// Print Section
foreach ($issues as $issue) {
if (!$certificate = $DB->get_record('certificate', array('id'=> $issue->certificateid))) {
print_error('course module is incorrect');
}
if (!$course = $DB->get_record('course', array('id'=> $certificate->course))) {
print_error('course is misconfigured');
}
if (!$user = $DB->get_record('user', array('id'=> $issue->userid))) {
print_error('user is unreachable');
}
profile_load_data($user);
$enrol_manager = new course_enrolment_manager($PAGE, $course);
$user_enrols = $enrol_manager->get_user_enrolments($user->id);
$start_date = 0;
$end_date = 0;
foreach ($user_enrols as $enrol) {
if ($enrol->timestart > 0) {
$start_date = $enrol->timestart;
}
if ($enrol->timeend > 0) {
$end_date = $enrol->timeend;
}
}
if (($start_date > 0 and $end_date > 0)) {
$fmt = '%d/%m/%Y'; // Default format
if ($certificate->datefmt == 1) {
$fmt = '%B %d, %Y';
$certificatedate = userdate($ts, '%B %d, %Y') . " a " . userdate($te, '%B %d, %Y');
} else if ($certificate->datefmt == 2) {
$suffix = certificate_get_ordinal_number_suffix(userdate($ts, '%d'));
$fmt = '%B %d' . $suffix . ', %Y';
$certificatedate = userdate($ts, '%B %d' . $suffix . ', %Y') . " a " . userdate($te, '%B %d' . $suffix . ', %Y');
} else if ($certificate->datefmt == 3) {
$fmt = '%d %B %Y';
$certificatedate = userdate($ts, '%d %B %Y') . " a " . userdate($te, '%d %B %Y');
} else if ($certificate->datefmt == 4) {
$fmt = '%B %Y';
$certificatedate = userdate($ts, '%B %Y') . " a " . userdate($te, '%B %Y');
} else if ($certificate->datefmt == 5) {
$fmt = get_string('strftimedate', 'langconfig');
$certificatedate = userdate($ts, get_string('strftimedate', 'langconfig')) . " a " . userdate($te, get_string('strftimedate', 'langconfig'));
}
$start_date = userdate($start_date, $fmt);
$end_date = userdate($end_date, $fmt);
} else {
$start_date = '';
$end_date = '';
}
$certificatedate = userdate($issue->timecreated);
echo '<p>' . get_string('certificate', 'block_verify_certificate') . " <strong>{$issue->code}</strong></p>";
echo '<p><strong>' . get_string('to', 'block_verify_certificate') . ': </strong>' . fullname($user) . '</p>';
foreach ($profile_fields as $field) {
$fieldname = "profile_field_{$field->shortname}";
$fieldvalue = $user->$fieldname;
echo "<p><strong>{$field->name}: <strong>{$fieldvalue}";
}
echo '<p><strong>' . get_string('course', 'block_verify_certificate') . ": </strong>{$course->fullname}</p>";
echo '<p><strong>' . get_string('date', 'block_verify_certificate') . ": </strong>$certificatedate</p>";
echo '<p><strong>' . get_string('enrol_period', 'block_verify_certificate') . ": </strong>$start_date - $end_date</p>";
if ($certificate->printhours) {
echo '<p><strong>' . get_string('printhours', 'block_verify_certificate') . ": </strong>{$certificate->printhours}</p>";
}
if ($certificate->customtext !== '') {
echo '<p><strong>' . get_string('customtext', 'block_verify_certificate') . ':</strong></p>';
echo $certificate->customtext;
}
}
} }
}
function validatecpf($cpf) {
// Verifica se um numero foi informado.
if (is_null($cpf)) {
return false;
}
if (!is_numeric($cpf)) {
return false;
}
//$cpf = str_pad($cpf, 11, '0', STR_PAD_LEFT);
// Verifica se o numero de digitos informados eh igual a 11.
if (strlen($cpf) != 11) {
return false;
} else if ($cpf == '00000000000' || $cpf == '11111111111' || $cpf == '22222222222' ||
$cpf == '33333333333' || $cpf == '44444444444' || $cpf == '55555555555' ||
$cpf == '66666666666' || $cpf == '77777777777' || $cpf == '88888888888' ||
$cpf == '99999999999') {
return false;
} else {
// Calcula os digitos verificadores para verificar se o CPF eh valido.
$cpf = preg_replace('/[^0-9]/', '', (string) $cpf);
// Valida tamanho
if (strlen($cpf) != 11)
return false;
// Calcula e confere primeiro dígito verificador
for ($i = 0, $j = 10, $soma = 0; $i < 9; $i++, $j--)
$soma += $cpf{$i} * $j;
$resto = $soma % 11;
if ($cpf{9} != ($resto < 2 ? 0 : 11 - $resto))
return false;
// Calcula e confere segundo dígito verificador
for ($i = 0, $j = 11, $soma = 0; $i < 10; $i++, $j--)
$soma += $cpf{$i} * $j;
$resto = $soma % 11;
$resultado = $cpf{10} == ($resto < 2 ? 0 : 11 - $resto);
return $resultado;
}
}
if (! $certificates) {
echo $OUTPUT->box_start('generalbox boxaligncenter');
echo '<div id="block_verify_certificate"><br>';
echo '<p class="notVerified">' . get_string('certificate', 'block_verify_certificate')
. ' "' . $id . '" ' . '</p>';
echo '<div class="wrapper-box"><br>';
echo '<div class="left"><br>' .get_string('notfound', 'block_verify_certificate').'</div>';
echo '<div class="right"><img src="pix/certnotverified.png" border="0" align="center"></div>';
echo '</div></div>';
echo $OUTPUT->box_end();
} else {
echo $OUTPUT->box_start('generalbox boxaligncenter');
echo "<a title=\""; print_string('printerfriendly', 'certificate');
echo "\" href=\"#\" onclick=\"window.print ()\"><div class=\"printicon\">";
echo "<img src=\"pix/printicon.png\" height=\"40\" width=\"40\" border=\"0\" align=\"right\"></img></a></div>";
// Print Section.
foreach ($certificates as $certdata) {
echo '<p class = "verified">' . get_string('certificate', 'block_verify_certificate')
. ' "' . $certdata->code . '" ' . '</font></b></p>';
echo '<table width ="100%" cellpadding="5px"><tr><td>';
echo '<div class="userprofilebox clearfix"><div class="profilepicture">';
echo $OUTPUT->user_picture($certdata, array('size' => 150));
echo '</div>';
echo '</td><td>';
echo '<p><b>' . get_string('to', 'block_verify_certificate') . ': </b>' . fullname($certdata) . '<br />';
// Date format.
$dateformat = get_string('strftimedate', 'langconfig');
$certdata->printdate = 1;
$certrecord = new stdClass();
$certrecord->timecreated = $certdata->citimecreated;
$certrecord->code = $certdata->code;
$certrecord->userid = $certdata->userid;
$certrecord->id = $certdata->id;
$userid = $certrecord->userid;
// Exibe CPF, se username for CPF
#require_once("$CFG->dirroot/user/profile/lib.php");
#require_once("$CFG->dirroot/user/profile/field/cpf/field.class.php");
#$formfield = new profile_field_cpf('8', $certdata->userid);
#$cpf = $formfield->display_data();
$cpf = getFormattedCPFFromUsername($userid);
if ($cpf) {
echo '<p><b>' . "CPF" . ': </b>' . $cpf . '<br /></p>';
}
// Exibe curso
$course = $DB->get_record('course', array('id' => $certdata->course));
if ($course) {
echo '<p><b>' . get_string('course', 'block_verify_certificate') . ': </b>' . $course->fullname . '<br />';
}
// Curso sem tutoria: início é matrícula, final é timeend de course_completions
// Curso com tutoria com turma: início e fim vem da matrícula da turma
// Curso com tutoria sem turma: início e fim vem da configuração do curso
// Demais cursos: início e fim vem da configuração do curso
$enrol_manager = new course_enrolment_manager($PAGE, $course);
$user_enrol = end($enrol_manager->get_user_enrolments($userid));
$enrol = $DB->get_record('enrol', array('id' => $user_enrol->enrolid));
if(substr( $course->idnumber, 0, 3 ) == 'ST-' ) {
$cc = new completion_completion(array('userid'=>$certrecord->userid, 'course'=>$certdata->course));
$start_date = $user_enrol->timestart;
$end_date = $cc->timecompleted;
$type = 'ST';
} elseif(substr( $course->idnumber, 0, 3 ) == 'CT-') {
/*$group = $DB->get_record('groups', array('courseid' => $course->id));
if( $group ) {
$start_date = $enrol->enrolstartdate;
$end_date = $enrol->enrolenddate;
} else {
$start_date = $course->startdate;
$end_date = $course->enddate;
}*/
$type = 'CT';
$start_date = $course->startdate;
$end_date = $course->enddate;
} else {
$type = '';
$start_date = $course->startdate;
$end_date = $course->enddate;
}
// Retrieving grade and date for each certificate.
$grade = certificate_get_grade($certdata, $course, $userid, $valueonly = true);
//$date = $start_date; //$certrecord->timecreated = $certdata->citimecreated;
if (($type = 'ST' || $type = 'CT') && $start_date && $end_date) {
echo "<p><b>PERÍODO: </b>" . userdate($start_date, $dateformat) . " a " . userdate($end_date, $dateformat) . '<br /></p>';
} else {
echo "<p><b>DATA: </b>" . userdate($certdata->timecreated, $dateformat) . '<br /></p>';
}
if ($course && $certdata->printgrade > 0) {
echo '<p><b>' . get_string('grade', 'block_verify_certificate') . ': </b>' . $grade . '<br /></p>';
}
if ($course->summary) {
echo "<br /><p>$course->summary</p>";
}
echo '</td><td>';
echo "<img src=\"pix/certverified.png\" border=\"0\" align=\"center\"></img>";
echo '</td></tr></table></br>';
echo '<p><b>' . get_string('check', 'block_verify_certificate') . '</b></p>';
}
echo $OUTPUT->box_end(); echo $OUTPUT->box_end();
echo $OUTPUT->footer(); }
echo $OUTPUT->footer();

56
lang/en/block_verify_certificate.php

@ -1,15 +1,43 @@
<?php <?php
$string['title'] = 'Verify Certificates'; // This file is part of Moodle - http://moodle.org/
$string['pluginname'] = 'Verify Certificates'; //
$string['certificate'] = 'Verification for certificate code:'; // Moodle is free software: you can redistribute it and/or modify
$string['verifycertificate'] = 'Verify Certificate'; // it under the terms of the GNU General Public License as published by
$string['notfound'] = 'The certificate number could not be validated.'; // the Free Software Foundation, either version 3 of the License, or
$string['to'] = 'Awarded to'; // (at your option) any later version.
$string['course'] = 'Course'; //
$string['date'] = 'On'; // Moodle is distributed in the hope that it will be useful,
$string['grade'] = 'Grade'; // but WITHOUT ANY WARRANTY; without even the implied warranty of
$string['customtext'] = 'Course details'; // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
$string['enrol_period'] = 'Enroll period'; // GNU General Public License for more details.
$string['printhours'] = 'Hours'; //
$string['chooseprofilefields'] = 'Choose profilefields to display'; // You should have received a copy of the GNU General Public License
$string['nofields'] = 'No profilefields defined'; // along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Version details
*
* Verify certificate block
* --------------------------
* Verify certificate based on the unique codes displayed on issued certificates.
* Full details of the issued certificate is displayed including profile picture.
* Mostly cosmetic changes to the original codes from Jean-Michel Védrine.
* Original Autor & Copyright - Jean-Michel Védrine | 2014
*
* @copyright 2015 onwards Manieer Chhettri | Marie Curie, UK | <manieer@gmail.com>
* @author Manieer Chhettri | Marie Curie, UK | <manieer@gmail.com> | 2015
* @package block_verify_certificate
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
$string['title'] = 'Verify certificate';
$string['pluginname'] = 'Verify certificate';
$string['certificate'] = 'VERIFICATION FOR CERTIFICATE CODE ::';
$string['verifycertificate'] = 'Verify certificate';
$string['verify_certificate:addinstance'] = 'Add a new Verify certificate block';
$string['notfound'] = 'The certificate code you provided could not be validated.<br><br> Please make sure you have typed the code correctly as its case sensetive.';
$string['to'] = 'AWARDED TO';
$string['course'] = 'COURSE';
$string['date'] = 'ON';
$string['grade'] = 'GRADE';
$string['check'] = 'Please make sure all the details on the certificate match the displayed results.';

BIN
logo/Certificate-unverified.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

BIN
logo/Certificate-verified.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

BIN
logo/verify_block.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
pix/certnotverified.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

BIN
pix/certverified.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
pix/printicon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

27
printstyle.css

@ -1,21 +1,20 @@
@media print { @media print {
body { body {
background:#FFFFFF; background:#FFFFFF;
} }
#header, #header-home { #header, #header-home {
display: none; display: none;
} }
#footer { #footer {
display: none; display: none;
} }
.navbar { .navbar {
display:none; display:none;
} }
.printicon {
display:none;
}
.printicon {
display:none;
}
} }

65
styles.css

@ -0,0 +1,65 @@
/** This file is part of Moodle - http://moodle.org/
* Moodle is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Moodle is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Moodle. If not, see <http://www.gnu.org/licenses/>.
*
* Version details
*
* Verify certificate block
* --------------------------
* Verify certificate based on the unique codes displayed on issued certificates.
* Full details of the issued certificate is displayed including profile picture.
* Mostly cosmetic changes to the original codes from Jean-Michel Védrine.
* Original Autor & Copyright - Jean-Michel Védrine | 2014
*
* @copyright 2015 onwards Manieer Chhettri | Marie Curie, UK | <manieer@gmail.com>
* @author Manieer Chhettri | Marie Curie, UK | <manieer@gmail.com> | 2015
* @package block_verify_certificate
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
#block_verify_certificate p.notVerified {
color: #F00;
font-size:large;
font-weight:bold;
}
#block_verify_certificate p.verified {
color: #393;
font-size:large;
font-weight:bold;
}
#block_verify_certificate .left {
float: left;
width: 75%;
margin-top: 10px;
}
#block_verify_certificate .right {
float: right;
width: 25%;
margin-top: 10px;
}
#block_verify_certificate .wrapper-box:after {
content:"";
display: table;
clear: both;
}
@media screen and (max-width: 480px) {
#block_verify_certificate .left, .right {
float: none;
width: auto;
}
}

28
version.php

@ -1,5 +1,4 @@
<?php <?php
// This file is part of Moodle - http://moodle.org/ // This file is part of Moodle - http://moodle.org/
// //
// Moodle is free software: you can redistribute it and/or modify // Moodle is free software: you can redistribute it and/or modify
@ -15,5 +14,30 @@
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>. // along with Moodle. If not, see <http://www.gnu.org/licenses/>.
$plugin->version = 2009072901; /**
* Version details
*
* Verify certificate block
* --------------------------
* Verify certificate based on the unique codes displayed on issued certificates.
* Full details of the issued certificate is displayed including profile picture.
* Mostly cosmetic changes to the original codes from Jean-Michel Védrine.
* Original Autor & Copyright - Jean-Michel Védrine | 2014
*
* @copyright 2015 onwards Manieer Chhettri | Marie Curie, UK | <manieer@gmail.com>
* @author Manieer Chhettri | Marie Curie, UK | <manieer@gmail.com> | 2015
* @package block_verify_certificate
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016051200; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2014051203; // Requires this Moodle version 2.7.
$plugin->cron = 0; // Period for cron to check this module (secs).
$plugin->component = 'block_verify_certificate'; // To check on upgrade, that module sits in correct place.
$plugin->maturity = MATURITY_STABLE;
$plugin->release = 'v3.0';
$plugin->dependencies = array(
'mod_certificate' => 2014041801
);

Loading…
Cancel
Save