Matheus Garcia
7 years ago
14 changed files with 608 additions and 211 deletions
@ -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 { |
|||
|
|||
function init() { |
|||
/** |
|||
* Sets the block title |
|||
* |
|||
* @return void |
|||
*/ |
|||
public function init() { |
|||
$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); |
|||
} |
|||
|
|||
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; |
|||
} |
|||
$fieldid = implode(',', $this->config->fieldid); |
|||
|
|||
$this->content = new stdClass; |
|||
$this->content->text = '<p>'.get_string('entercode', 'certificate').'</p>'; |
|||
$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='hidden' name='list' id='list' value='{$fieldid}' />"; |
|||
$this->content->text .= '<input type="text" id="certcode" name="certnumber" size="20" value="" />'; |
|||
$this->content->text .= '<input type="submit" value="'.get_string('validate', 'certificate').'"/></form>'; |
|||
$this->content->text .= '<center>'; |
|||
$this->content->footer = ''; |
|||
|
|||
return $this->content; |
|||
} |
|||
|
|||
/* function has_config() { |
|||
return true; |
|||
} |
|||
/** |
|||
* Controls whether the block is configurable |
|||
* |
|||
* @return boolean |
|||
*/ |
|||
|
|||
function instance_allow_config() { |
|||
return true; |
|||
public function instance_allow_config() { |
|||
return false; |
|||
} |
|||
|
|||
} |
|||
|
@ -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' |
|||
), |
|||
); |
@ -1,112 +1,248 @@ |
|||
<?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($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->libdir/blocklib.php"); |
|||
require_once("$CFG->dirroot/user/profile/lib.php"); |
|||
|
|||
global $DB; |
|||
|
|||
$code = required_param('certnumber', PARAM_ALPHANUM); // certificate code to verify |
|||
$fieldid = required_param('list', PARAM_SEQUENCE); |
|||
$fieldid = explode(',', $fieldid); |
|||
$profile_fields = $DB->get_records_list('user_info_field', 'id', $fieldid); |
|||
$id = required_param('certnumber', PARAM_ALPHANUM); // Certificate code to verify. |
|||
|
|||
$PAGE->set_pagelayout('standard'); |
|||
$strverify = get_string('verifycertificate', 'block_verify_certificate'); |
|||
$PAGE->set_url('/blocks/verify_certificate/index.php', array('certnumber' => $code)); |
|||
$context = get_context_instance(CONTEXT_SYSTEM); |
|||
$PAGE->set_url('/blocks/verify_certificate/index.php', array('certnumber' => $id)); |
|||
$context = context_system::instance(); |
|||
$PAGE->set_context($context); |
|||
|
|||
/// Print the header |
|||
|
|||
// Print the header. |
|||
$PAGE->navbar->add($strverify); |
|||
$PAGE->set_title($strverify); |
|||
$PAGE->set_heading($strverify); |
|||
$PAGE->requires->css('/blocks/verify_certificate/printstyle.css'); |
|||
$PAGE->requires->css('/blocks/verify_certificate/styles.css'); |
|||
echo $OUTPUT->header(); |
|||
|
|||
// Print results |
|||
$ufields = user_picture::fields('u'); |
|||
|
|||
echo $OUTPUT->box_start('generalbox boxaligncenter'); |
|||
$sql = "SELECT ci.timecreated AS citimecreated, |
|||
ci.code, ci.certificateid, ci.userid, $ufields, c.*, u.id AS id, u.* |
|||
FROM {certificate_issues} ci |
|||
INNER JOIN {user} u |
|||
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)); |
|||
|
|||
if (!$issues = $DB->get_records('certificate_issues', array('code' => $code))) { |
|||
echo get_string('notfound', 'block_verify_certificate'); |
|||
function getFormattedCPFFromUsername($userid) { |
|||
global $DB; |
|||
$user = $DB->get_record("user", array("id" => $userid)); |
|||
return mask($user->username, '###.###.###-##'); |
|||
} |
|||
|
|||
function mask($val, $mask) |
|||
{ |
|||
if(validatecpf($val)) { |
|||
$maskared = ''; |
|||
$k = 0; |
|||
for($i = 0; $i<=strlen($mask)-1; $i++){ |
|||
|
|||
if($mask[$i] == '#'){ |
|||
if(isset($val[$k])) |
|||
$maskared .= $val[$k++]; |
|||
} |
|||
else |
|||
{ |
|||
if(isset($mask[$i])) |
|||
$maskared .= $mask[$i]; |
|||
} |
|||
} |
|||
return $maskared; |
|||
} else { |
|||
echo '<a title="' . get_string('printerfriendly', 'certificate') . '" href="#" onclick="window.print()">'; |
|||
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'); |
|||
return ""; |
|||
} |
|||
} |
|||
if (!$course = $DB->get_record('course', array('id'=> $certificate->course))) { |
|||
print_error('course is misconfigured'); |
|||
|
|||
|
|||
function validatecpf($cpf) { |
|||
// Verifica se um numero foi informado. |
|||
if (is_null($cpf)) { |
|||
return false; |
|||
} |
|||
if (!$user = $DB->get_record('user', array('id'=> $issue->userid))) { |
|||
print_error('user is unreachable'); |
|||
if (!is_numeric($cpf)) { |
|||
return false; |
|||
} |
|||
//$cpf = str_pad($cpf, 11, '0', STR_PAD_LEFT); |
|||
|
|||
profile_load_data($user); |
|||
// 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. |
|||
|
|||
$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); |
|||
$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 { |
|||
$start_date = ''; |
|||
$end_date = ''; |
|||
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>'; |
|||
} |
|||
|
|||
$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}"; |
|||
// 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 />'; |
|||
} |
|||
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>"; |
|||
|
|||
// 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 ($certificate->customtext !== '') { |
|||
echo '<p><strong>' . get_string('customtext', 'block_verify_certificate') . ':</strong></p>'; |
|||
echo $certificate->customtext; |
|||
|
|||
|
|||
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->footer(); |
|||
|
@ -1,15 +1,43 @@ |
|||
<?php |
|||
$string['title'] = 'Verify Certificates'; |
|||
$string['pluginname'] = 'Verify Certificates'; |
|||
$string['certificate'] = 'Verification for certificate code:'; |
|||
$string['verifycertificate'] = 'Verify Certificate'; |
|||
$string['notfound'] = 'The certificate number could not be validated.'; |
|||
$string['to'] = 'Awarded to'; |
|||
$string['course'] = 'Course'; |
|||
$string['date'] = 'On'; |
|||
$string['grade'] = 'Grade'; |
|||
$string['customtext'] = 'Course details'; |
|||
$string['enrol_period'] = 'Enroll period'; |
|||
$string['printhours'] = 'Hours'; |
|||
$string['chooseprofilefields'] = 'Choose profilefields to display'; |
|||
$string['nofields'] = 'No profilefields defined'; |
|||
// 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 |
|||
*/ |
|||
|
|||
$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.'; |
|||
|
After Width: | Height: | Size: 45 KiB |
After Width: | Height: | Size: 112 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 6.3 KiB |
@ -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; |
|||
} |
|||
} |
Loading…
Reference in new issue