diff --git a/locallib.php b/locallib.php index c69fe94..1845696 100644 --- a/locallib.php +++ b/locallib.php @@ -1161,14 +1161,19 @@ function certificate_draw_frame_letter($pdf, $certificate) { * @param int $w the width * @param int $h the height */ -function certificate_print_image($pdf, $certificate, $type, $x, $y, $w, $h, $cert_date = null) { +function certificate_print_image($pdf, $certificate, $type, $x, $y, $w, $h, $cert_date = null, $verso = false) { global $CFG, $DB; switch($type) { case CERT_IMAGE_BORDER : $attr = 'borderstyle'; - $path = "$CFG->dirroot/mod/certificate/pix/$type/$certificate->borderstyle"; - $uploadpath = "$CFG->dataroot/mod/certificate/pix/$type/$certificate->borderstyle"; + if(!$verso) { + $path = "$CFG->dirroot/mod/certificate/pix/$type/$certificate->borderstyle"; + $uploadpath = "$CFG->dataroot/mod/certificate/pix/$type/$certificate->borderstyle"; + } else { + $path = "$CFG->dirroot/mod/certificate/pix/$type/$verso-" . "$certificate->borderstyle"; + $uploadpath = "$CFG->dataroot/mod/certificate/pix/$type/$verso-" . "$certificate->borderstyle"; + } break; case CERT_IMAGE_SEAL : $attr = 'printseal'; diff --git a/type/ILB_flex/certificate.php b/type/ILB_flex/certificate.php index 6bf90c8..57e1ecc 100644 --- a/type/ILB_flex/certificate.php +++ b/type/ILB_flex/certificate.php @@ -37,7 +37,6 @@ require_once("$CFG->dirroot/completion/completion_completion.php"); $start_date = $course->startdate; $end_date = $course->enddate; -$emissao_date = $course->enddate; $fmt = '%d/%m/%Y'; // Default format if ($certificate->datefmt == 1) { @@ -53,19 +52,55 @@ if ($certificate->datefmt == 1) { $fmt = get_string('strftimedate', 'langconfig'); } -$start_date = userdate($start_date, $fmt); -$cert_date = $end_date; -$end_date = userdate($end_date, $fmt); -$emissao_date = userdate($emissao_date, $fmt); +$dataInicio = userdate($start_date, $fmt); +$dataFim = userdate($end_date, $fmt); +$cert_date = $end_date; // para fins de obtenção automática de assinatura (COTREN apenas) +$anoInicio = userdate($start_date, '%Y'); +$anoFim = userdate($end_date, '%Y'); +$mesInicio = userdate($start_date, '%B'); +$mesFim = userdate($end_date, '%B'); +$diaInicio = userdate($start_date, '%d'); +$diaFim = userdate($end_date, '%d'); + +if($diaInicio == '1') {$diaInicio .= "º";} +if($diaFim == '1') {$diaFim .= "º";} $verbo_acao = certificate_obtemCampoCustomizadoCurso($course->id, 'papel_acao_capacitacao'); +if(empty($verbo_acao)) { + $verbo_acao = 'participou'; +}; $tipo_acao = certificate_obtemCampoCustomizadoCurso($course->id, 'tipo_acao_capacitacao'); if($tipo_acao == "") { $tipo_acao = 'do curso'; } $modalidade_acao = certificate_obtemCampoCustomizadoCurso($course->id, 'modalidade_capacitacao'); $entidade_certificadora = certificate_obtemCampoCustomizadoCurso($course->id, 'entidade_certificadora'); +if($entidade_certificadora == '') { + $entidade_certificadora = 'O Instituto Legislativo Brasileiro certifica que'; +} + +function montaPeriodo() { + global $anoInicio, $anoFim, $mesInicio, $mesFim, $diaInicio, $diaFim, $dataInicio, $dataFim; + + if($anoInicio != $anoFim) { + // ano diferente + return "realizado no período de {$dataInicio} a {$dataFim}"; + } else { + if($mesInicio != $mesFim) { + // mesmo ano, mês diferente + return "realizado no período de $diaInicio de $mesInicio a $diaFim de $mesFim de $anoInicio"; + } else { + if($diaInicio != $diaFim) { + // mesmo mês, dia diferente + return "realizado no período de $diaInicio a $diaFim de $mesInicio de $anoInicio"; + } else { + // evento de um dia + return "realizado em {$dataInicio}"; + } + } + } +} //MASK para CPF function mask($val, $mask) @@ -156,26 +191,28 @@ certificate_print_image($pdf, $certificate, CERT_IMAGE_SIGNATURE, $sigx, $sigy, // Add text $pdf->SetTextColor(0, 0, 0); +// $entidade_certificadora = 'O Instituto Legislativo Brasileiro (ILB), do Senado Federal, em parceria com +// as escolas de governo da Câmara dos Deputados (CEFOR) e do Tribunal de Contas da União (ISC), certifica que'; +$nome_aluno = mb_strtoupper(fullname($USER), 'UTF-8'); +$dados_aluno = "CPF nº $cpf"; +$nome_curso = mb_strtoupper($course->fullname, 'UTF-8'); +$periodo = montaPeriodo(); +$carga_horaria = "com carga horária de {$certificate->printhours}"; +$nota = (certificate_get_grade($certificate, $course)?certificate_get_grade($certificate, $course):''); + +$texto_base_certificado = $entidade_certificadora . "

" . + "" . $nome_aluno . "

" . + $dados_aluno . ", " . $verbo_acao . ($modalidade_acao? ", na modalidade " . $modalidade_acao . ',':"") . ' ' . $tipo_acao . ' ' . + "" . $nome_curso . "" . + ($certificate->printhours?", com carga horária de $certificate->printhours":'') . + ', ' . $periodo . + ($nota?', ' . $nota:'') . '.'; + certificate_print_text($pdf, $x, $y, 'C', 'freesans', '', 20, get_string('title', 'certificate')); -certificate_print_text($pdf, $x, $y + 15, 'C', 'freesans', '', 18, $entidade_certificadora); -certificate_print_text($pdf, $x, $y + 25, 'C', 'freesans', 'B', 18, mb_strtoupper(fullname($USER), 'UTF-8').","); -if($modalidade_acao == "") { - certificate_print_text($pdf, $x, $y + 35, 'C', 'freesans', '', 18, "CPF nº $cpf, " . $verbo_acao . ' ' . $tipo_acao); -} -else { - certificate_print_text($pdf, $x, $y + 35, 'C', 'freesans', '', 18, "CPF nº $cpf, " . $verbo_acao . ", na modalidade " . $modalidade_acao . ", " . $tipo_acao); -} -certificate_print_text($pdf, $x, $y + 45, 'C', 'freesans', 'B', 18, mb_strtoupper($course->fullname, 'UTF-8')); -if($start_date == $end_date) { - certificate_print_text($pdf, $x, $y + 55, 'C', 'freesans', '', 18, "realizado em {$start_date}"); -} else { - certificate_print_text($pdf, $x, $y + 55, 'C', 'freesans', '', 18, "realizado no período de {$start_date} a {$end_date}"); -} -if ($certificate->printhours) { - certificate_print_text($pdf, $x, $y + 65, 'C', 'freesans', '', 18, "com carga horária de {$certificate->printhours}"); -} -certificate_print_text($pdf, $x, $y + 75, 'C', 'freesans', '', 18, certificate_get_grade($certificate, $course)); -certificate_print_text($pdf, $x, $y + 85, 'R', 'freesans', 'B', 14, "Brasília, {$emissao_date}."); +certificate_print_text($pdf, $x, $y + 15, 'C', 'freesans', '', 17, $texto_base_certificado); + +// Deve ser fixo +certificate_print_text($pdf, $x, $y + 85, 'R', 'freesans', 'B', 14, "Brasília, {$dataFim}."); // Verse page ----------------------------------------------------------------------------------------------------------- @@ -192,7 +229,7 @@ certificate_print_image($pdf, $certificate, CERT_IMAGE_SEAL, $sealx, $sealy, '', // Add text $pdf->SetTextColor(0, 0, 0); certificate_print_text($pdf, $x, $y, 'C', 'freesans', '', 20, 'PROGRAMA DO CURSO'); -certificate_print_text($pdf, $x, $y + 10, 'C', 'freesans', '', 20, mb_strtoupper($course->fullname, 'UTF-8')); +certificate_print_text($pdf, $x, $y + 10, 'C', 'freesans', '', 20, $nome_curso); certificate_print_text($pdf, $custx, $custy, 'L', 'freesans', '', 10, $certificate->customtext); certificate_print_text($pdf, $codex, $codey, 'C', 'freesans', '', 10, 'CÓDIGO DE VALIDAÇÃO'); certificate_print_text($pdf, $codex, $codey + 5, 'C', 'freesans', 'B', 12, certificate_get_code($certificate, $certrecord));