!C99Shell v. 2.1 [PHP 8 Update] [02.02.2022]!

Software: Apache/2.4.53 (Unix) OpenSSL/1.1.1o PHP/7.4.29 mod_perl/2.0.12 Perl/v5.34.1. PHP/7.4.29 

uname -a: Linux vps-2738122-x 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 

uid=1(daemon) gid=1(daemon) grupos=1(daemon) 

Safe-mode: OFF (not secure)

/opt/apex_tdfonline/proyectos/toba_referencia/php/firma_digital/componente/   drwxr-xr-x
Free 14.53 GB of 61.93 GB (23.47%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     ci_firma_digital.php (4.78 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
class ci_firma_digital extends toba_ci
{
    protected 
$s__seleccion;
    protected 
$datos_persona;
    
    
//---------------------------------------
    //----- Componente ei_firma
    //--------------------------------------
    
    
function conf__firmador(toba_ei_firma $firmador)
    {
        
$firmador->set_motivo_firma("Ejemplo de Toba");
        
//$firmador->set_dimension("1000px", "100px");
        //$firmador->set_mostrar_pdf(false);    //Para ocultar la vista previa del documento
        
        //Se genera el PDF, así cuando lo viene a pedir el 'get_pdf' ya esta generado (mas facil ver los errores aca que en el evento)
        
$this->generar_pdf();
    }
    
    
/**
     * Se envia el PDF sin firmar hacia el Applet
     */
    
function evt__firmador__enviar_pdf($token)
    {
        
$this->get_datos_persona();
        
$pdf stream_get_contents($this->datos_persona['planilla_pdf']);
        return 
$pdf;
    }
    
    
/**
     * Se recibe el PDF firmado desde el Applet
     */
    
function evt__firmador__recibir_pdf_firmado($path$token)
    {
        
$this->guardar_pdf_en_tabla($pathtrue);
    }
    
    function 
extender_objeto_js()
    {
        echo 
"
            
{$this->objeto_js}.desactivar_boton('finalizar');
                
            
{$this->objeto_js}.dep('firmador').evt__firma_ok = function() {
                
{$this->objeto_js}.activar_boton('finalizar');
                alert('LISTO! Al terminar la firma se puede atrapar el evt_firma_ok en javascript. En este caso se habilita el boton finalizar');
            }
        "
;
    }
    
    
//---------------------------------------
    //----- Pegamento
    //--------------------------------------
    
    
function evt__volver()
    {
        unset(
$this->s__seleccion);
        
$this->set_pantalla("pant_listado");
    }
    
    function 
evt__finalizar()
    {
        unset(
$this->s__seleccion);
        
$this->set_pantalla("pant_listado");
    }
    
    
    function 
conf__cuadro(toba_ei_cuadro $cuadro
    {
        
$sql "SELECT 
                    id, 
                    nombre, 
                    planilla_pdf_firmada 
                FROM 
                    ref_persona
                ORDER BY id ASC
        "
;
        
$rs toba::db()->consultar($sql);
        
$cuadro->set_datos($rs);
    }
    
    function 
evt__cuadro__seleccion($seleccion)
    {
        
$this->s__seleccion $seleccion;
        
$this->set_pantalla("pant_firma");
    }
    
    function 
conf__pant_firma(toba_ei_pantalla $pant)
    {
        
$this->get_datos_persona();
        if (
$this->datos_persona['planilla_pdf_firmada']) {
            
$pant->set_descripcion("La planilla PDF ya ha sido firmada correctamente");
            
$pant->eliminar_dep("firmador");    //No mostrar firmador
        
} else {
            
$pant->set_descripcion($this->datos_persona['nombre']);
            
            
//No mostrar eventos de borrar/descargar
            
$pant->eliminar_evento('borrar_pdf');
            
$pant->eliminar_evento('descargar_pdf');
        }
    }
    

    function 
evt__borrar_pdf()
    {
        
$sql "UPDATE ref_persona SET planilla_pdf = NULL, planilla_pdf_firmada = 0 WHERE id = ".quote($this->s__seleccion['id']);
        
toba::db()->ejecutar($sql);        
        
$this->evt__volver();
    }
    

    
    function 
get_datos_persona()
    {
        if (! isset(
$this->datos_persona)) {
            
$sql "SELECT
                        id,
                        nombre,
                        fecha_nac,
                        planilla_pdf,
                        planilla_pdf_firmada
                    FROM ref_persona WHERE id = "
.quote($this->s__seleccion['id']);
            
$this->datos_persona toba::db()->consultar_fila($sql);
        }
        return 
$this->datos_persona;
    }
    
    
    function 
generar_pdf()
    {
        
$datos $this->get_datos_persona();
        
$temp rand();
        
$datos_persona = array();
        
$datos_persona['id'] = $datos['id'];
        
$datos_persona['nombre'] = $datos['nombre'];
        
$datos_persona['fecha_nac'] = $datos['fecha_nac'];
        
        
//Generar PDF
        
require_once(toba_dir() . '/php/3ros/ezpdf/class.ezpdf.php');
        
$pdf = new Cezpdf();
        
$pdf->selectFont(toba_dir() . '/php/3ros/ezpdf/fonts/Helvetica.afm');
        
$pdf->ezText('Ejemplo Firma Digital. Tiene un attachment XML'14);
        
$pdf->ezText('');
        
$pdf->ezText("ID: {$datos['id']}"14);
        
$pdf->ezText("Nombre: {$datos['nombre']}"14);
        
$pdf->ezText("Fecha Nacimiento: {$datos['fecha_nac']}"14);

        
//Guardarlo en un archivo temporal
        
$pdf_persona toba::proyecto()->get_path_temp()."/$temp.pdf";
        
file_put_contents($pdf_persona$pdf->ezOutput(0));
        
        
//Generar XML
        
$xml_persona toba::proyecto()->get_path_temp()."/$temp.xml";
        
$xml = new toba_xml_tablas();
        
$xml->set_tablas($datos_persona"persona");
        
$xml->guardar($xml_persona);
        
        
//Agrego XMLs a PDF
        
toba_firma_digital::pdf_add_attachments($pdf_persona, array($xml_persona));
        
        
//Actualizo tabla 
        
$this->guardar_pdf_en_tabla($pdf_personafalse);
        
        
//Retorno PDF y borro temporales
        
$retorno file_get_contents($pdf_persona);
        
unlink($pdf_persona);
        
unlink($xml_persona);
        return 
$retorno;
    }
    
    function 
guardar_pdf_en_tabla($path_pdf$firmado)
    {
        
$firmado $firmado 0;
                
$fp fopen($path_pdf'rb');
        
$sentencia toba::db()->sentencia_preparar("UPDATE ref_persona SET planilla_pdf = ?, planilla_pdf_firmada = $firmado WHERE id = ".quote($this->s__seleccion['id']));
        
toba::db()->sentencia_agregar_binarios($sentencia, array($fp));
        
toba::db()->sentencia_ejecutar($sentencia);
        
fclose($fp);
    }
    
    
    
}

?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.1 [PHP 8 Update] [02.02.2022] maintained byC99Shell Github | Generation time: 1.0451 ]--