Certificados parte trasera

Certificados parte trasera

de Victorio Iglesias Gutiérrez -
Número de respuestas: 16
¿Buenos días Alguien sabe como puedo crear la parte trasera de un certificado?. En dicha parte me gustaría poder poner el temario del curso.

Muchas gracias
Promedio de valoraciones: -
En respuesta a Victorio Iglesias Gutiérrez

Re: Certificados parte trasera

de Xavier Paz -
Tienes que modificar el código del módulo certificado. Lo más sencillo es considerar la parte trasera como una imagen insertada como fondo en la segunda hoja del certificado, que actuaría como reverso.

Tendrías que añadir una nueva opción en el formulario de configuración (menú desplegable), una nueva carpeta dentro del módulo para las imágenes, así como un nuevo campo en la tabla principal del módulo (certificate) para poder relacionar la imagen de la carpeta con el certificado del curso correspondiente. Por último, tendrías que añadir la lógica para procesar los reversos en cada uno de los tipos de certificados (están en el directorio type)

En resumen, tendrías que realizar las siguientes modificaciones:

  • Añadir nuevo campo en tabla certificate de db/install.xml.
  • Añadir nuevo menu desplegable de reversos en mod_form.php.
  • Crear carpeta reversos dentro del directorio mod/certificate para alojar las imágenes.
  • Añadir lógica de procesamiento del reverso en cada tipo de certificado (directorio type)
  • Añadir función certificate_get_reverso y print_reverso en mod/certificate/lib.php para imprimir y obtener el reverso de cada certificado. Estas funciones se usarán luego en cada tipo de certificado.


Y más o menos con esto ya podrías tener el soporte para los reversos. Si quieres que los reversos sean en letra, la cosa se complica un poco pues tendrías que pensar de donde se puede obtener dicha información.
En respuesta a Xavier Paz

Re: Certificados parte trasera

de Victorio Iglesias Gutiérrez -
Muchas thankiuus
En respuesta a Victorio Iglesias Gutiérrez

Re: Certificados parte trasera

de Victorio Iglesias Gutiérrez -
Muchas gracias de nuevo, al final con tu ayuda conseguí realizar esa segunda hoja con el temario.
En respuesta a Xavier Paz

Re: Certificados parte trasera

de José Francisco Suárez Roa -
Hola, soy un poco nuevo en moodle pero ya he conseguido varias cosas. No entiendo muy bien tu respuesta al tema de poder crear la parte trasera de un certificado. Podrías, por favor explicarlo para que lo entienda un novato como yo?
Muchas gracias
En respuesta a José Francisco Suárez Roa

Re: Certificados parte trasera

de Ulises 2010 -

Yo finalmente lo conseguí añadiendo 

$pdf->AddPage();

al final del archivo  type/certificate.html

Gracias a todos por vuestra ayuda

En respuesta a Xavier Paz

Re: Certificados parte trasera

de Alex Ferrer -

Hola a todos.

Tengo un problema a la hora de imprimir el reverso del certificado. Os detallo todos los cambios que he hecho y decía Xavier (no se si estarán correctos):

  • install.xml

<FIELD NAME="temario" TYPE="char" LENGTH="120" NOTNULL="true" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="printseal" NEXT="timemodified"/>

  • mod_for.php

// Parte trasera
        $temariooptions = certificate_get_temario();
        $mform->addElement('select', 'printtemario', get_string('printtemario', 'certificate'),$temariooptions);
        $mform->setDefault('printtemario', 0);
        $mform->addHelpButton('printtemario', 'printtemario', 'certificate');
        $this->standard_coursemodule_elements();

  • lib.php

// Coger Temario
function certificate_get_temario() {
    global $CFG, $DB;
       $my_path = "$CFG->dirroot/mod/certificate/pix/temario";
    $temariooptions = array();
    if ($handle = opendir($my_path)) {
        while (false !== ($file = readdir($handle))) {
            if (strpos($file, '.png',0)||strpos($file, '.jpg',0) ) {
                    $i = strpos($file, '.');
                    if ($i > 0) {
                        $temariooptions[$file] = substr($file, 0, $i);
                    }
                }
            }
        closedir($handle);
    }
    // Order seals
    ksort($temariooptions);

  // $temariooptions[0] = get_string('no');
    return $temariooptions;
}

 

function print_temario($pdf, $certificate, $x, $y, $w, $h) {
    global $CFG, $DB;

    switch ($certificate->printtemario) {
        case '0':
        case '':
        break;
        default:
            if (file_exists("$CFG->dirroot/mod/certificate/pix/temario/$certificate->printtemario")) {
                $pdf->Image("$CFG->dirroot/mod/certificate/pix/temario/$certificate->printtemario", $x, $y, $w, $h);
            }
        break;
    }
}

 

  • type/certificate.php

    print_temario($pdf, $certificate, $temariox, $temarioy, '','');

 

  • backup_certificate_stepslib.php 

 $certificate = new backup_nested_element('certificate', array('id'), array('name', 'intro', 'introformat', 'emailteachers', 'emailothers', 'savecert', 'reportcert', 'reissuecert', 'delivery', 'certificatetype', 'orientation',  'borderstyle', 'bordercolor', 'printwmark', 'printdate', 'datefmt', 'printnumber', 'printgrade', 'gradefmt', 'printoutcome', 'printhours', 'printteacher', 'customtext','customtextfechainicio','customtextfechafin',      'printsignature', 'printseal', 'printtemario', 'timemodified'));

 

También he añadido $pdf->AddPage(); al final del archivo  type/certificate.php como decía Ulises, pero sólo consigo que salga una página en blanco.

Sospecho que por lo que no imprime puede estar en function print_temario o que falta algo en $pdf->AddPage(); (Creo que es lo más probable). Si alguien sabe cual es la solución se lo agradecería mucho.

 

Saludos.

En respuesta a Alex Ferrer

Re: Certificados parte trasera

de Alex Ferrer -

Tema resuelto. Después de varios dolores de cabeza hice un "duplicado" de los Marcos del certificado y lo adapté para el contenido de los reversos siguiendo las instrucciones de Xavier.

Por último, a la hora de escribir la segunda página, en type/mycertificate/certificate.php añadí

$pdf->AddPage();
print_reverso($pdf, $certificate, $revx, $revy, $revw, $revh);

Saludos y gracias.

En respuesta a Alex Ferrer

Re: Certificados parte trasera

de Ester Giralt -

Hola.

Bueno ahora estoy con el lio de añadir una parte trasera al certificado.

Mi intención es poder añadir una imagen a la parte trasera del certificado, para ello, he realizado los cambios que ha sugerido Xavier mediante el código que Alejandro tan amablemente ha adjuntado, pero me da un error durante la instalación, que adjunto en esta imagen

Debo decir que utilizo Moodle 1.9.16+ y que el archivo backup_certificate_stepslib.php  no aparece en mi Certificate, en su lugar hay un backuplib.php, por lo que el código que pone Alejandro lo he añadido a este archivo. He creado la carpeta temario en la ruta /mod/certificate/pix/temario.

No se si el problema puede venir también por la ruta  $my_path = "$CFG->dirroot/mod/certificate/pix/temario"; ya que estoy en local y la ruta a moodle es http://127.0.0.1:8080/Aula19.

Bueno que estoy hecha un lio. Si alguien puede echarme una mano se lo agredecería.

Os adjunto en un ZIP, los archivos modificados con el código de Alejandro, por si podeis echarle un vistazo y orientarme en como solucionarlo. He resaltado en negrita el código añadido por Alejandro, para que sea más rápido y fácil de encontrar.

Gracias.

En respuesta a Alex Ferrer

Re: Certificados parte trasera

de Ana pilar diaz conejo -

Hola Alex,

muchas gracias por tus codigos. Me han servido de mucha ayuda. He realizado todo y conseguido tener la opcion en formulario de "reverso" asi como mi carpeta con la foto de la parte de atras de los diplomas (adjunto fotos)

Ahora bien no consiguo que la segunada pagina deje de salir en blanco, ayq que no coje el .jpg de reverso.He añadido en el type/micertificado/certificate.php al final del codigo y seguido, asi:

$pdf->AddPage();
print_reverso($pdf, $certificate, $revx, $revy, $revw, $revh);


Tambien he probado con: 

$pdf->AddPage();
print_reverso($pdf, $certificate, $reveresox, $reveresoy, $reveresow, $reveresoh);


LLevo 3 dias atascado en esto y un poco desesperado, Me puede ayudar? como consigo que salga la imagen en la segunda pagina?


Gracias de antemano

Adjunto detalle certificados.png
En respuesta a Ana pilar diaz conejo

Re: Certificados parte trasera

de Alex Ferrer -

Hola Ana.

¿Qué versiones de moodle y del plugin certificate estás utilizando?

En respuesta a Alex Ferrer

Re: Certificados parte trasera

de Ana pilar diaz conejo -

Hola Alex,

tengo instalado moodle 2.9, plunning mod_certificate_moodle29_2015083101..

Cuando hablas de la segunda pagina a que te refieres?

Yo copie y pegue el A4_embed y le puse mi "micertificado"

Tengo carpeta en pix/certificate/reverso, con la imagen trasera que quiero que salga.


Adjunto pantallazo de certificate/type/micertificado--certificate.php para que veas donde pongo la linea abajo del todo:

$pdf->AddPage();

print_reverso($pdf, $certificate, $reversox, $reversoy, $reversow, $reversoh);


Adjunto detalle certificados2.png
En respuesta a Ana pilar diaz conejo

Re: Certificados parte trasera

de Alex Ferrer -

Hola Ana.

Cuando hablo de segunda página me refería a eso mismo, una segunda página que mostrase una imagen con el temario del curso.

El código que puse en su día era sobre una versión de moodle 2.4 o 2.5, no lo recuerdo bien, por lo que la versión del certificado también tiene bastante tiempo y es muy probable que no te funcione para la nueva versión del plugin.

Esta mañana he estado haciendo alguna prueba rápida con la última versión pero me sucede lo mismo que a ti, no me aparece la imagen en la segunda página. En la edición del certificado tengo la opción de añadir la imagen pero no me la guarda cuando lo configuro, por lo que imagino que el problema está ahí.

Seguiré probando.

Un saludo.

En respuesta a Ana pilar diaz conejo

Re: Certificados parte trasera

de Alex Ferrer -

Hola Ana.

Las pruebas que hice ayer fueron en base de datos PostgreSQL y no me creaba la columna para el temario, por lo que la creé manualmente y ya me mostraba la imagen en la segunda página. Hoy he hecho pruebas en MySQL y ha funcionado a la primera. Mandame en un mensaje una dirección de correo y te mando el módulo Certificado con las modificaciones para que muestre la imagen en la segunda página.

Cosas a tener en cuenta:

  1. He utilizado como plantilla del certificado A4_non_embedded con orientación horizontal o apaisada
  2. Las variables $temx, $temy te indican dónde empieza la imagen y $temw, $temh el tamaño de ésta.
  3. Si cargas la imagen desde Administración del sitio / Extensiones / Módulos de actividad / Certificado no te mostrará la imagen en la carpeta pix / temarios, pero si que podrás elegirla en la configuración, por lo que te recomiendo que la subas por FTP
Si tienes cualquier duda me lo dices.

Un saludo.
En respuesta a Alex Ferrer

Re: Certificados parte trasera

de Ana pilar diaz conejo -

Muchas gracias Alex por tu ayuda y contribución..eres un CRACK!!!

Estoy feliz con mi certificados en dos paginas funcionando

sonrisa

En respuesta a Ana pilar diaz conejo

Re: Certificados parte trasera

de jose luis garcia -

Hola, he seguido los pasos que indicáis pero tengo problemas para que me de la opción de incluir la imagen del temario, me pueden ayudar?? Saludos

La versión de Moodle es la 3.3.2