Muchas gracias
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.
Re: Certificados parte trasera
Re: Certificados parte trasera
Muchas gracias
Yo finalmente lo conseguí añadiendo
$pdf->AddPage();
al final del archivo type/certificate.html
Gracias a todos por vuestra ayuda
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.
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.
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.
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
Hola Ana.
¿Qué versiones de moodle y del plugin certificate estás utilizando?
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);
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.
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:
- He utilizado como plantilla del certificado A4_non_embedded con orientación horizontal o apaisada
- Las variables $temx, $temy te indican dónde empieza la imagen y $temw, $temh el tamaño de ésta.
- 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
Un saludo.
Muchas gracias Alex por tu ayuda y contribución..eres un CRACK!!!
Estoy feliz con mi certificados en dos paginas funcionando
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