compact sop pdf: bestandsnaam in url en naam, tijdzone vastgezet
- Pdfmaker: chmod() op logo-url verwijderd (warning kwam voor de pdf-data)
- pdfSVG en download_pdf sturen door naar een url die op de bestandsnaam
eindigt, zodat de browser niet 'download' als naam voorstelt
- bestandsnaam zonder dubbel 'compactsop', met tijdstip (dmY-Hi)
- index.php: date_default_timezone_set('Europe/Amsterdam'), php.ini van
PHP 8.3 heeft geen date.timezone
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -84,6 +84,11 @@ class Compactsop extends MY_Controller{
|
|||||||
|
|
||||||
function download_pdf(){
|
function download_pdf(){
|
||||||
$fileID = $this->uri->segment( 4 );
|
$fileID = $this->uri->segment( 4 );
|
||||||
|
// bestandsnaam als laatste deel van de url, anders slaat de browser de pdf op als 'download'
|
||||||
|
if ( ! $this->uri->segment( 5 ) ) {
|
||||||
|
$pdfnaam = $this->Compactsop_model->get_fieldvalue(['id' => $fileID], 'pdfnaam');
|
||||||
|
if ($pdfnaam) redirect('monpas/compactsop/download_pdf/' . $fileID . '/' . preg_replace('/[^A-Za-z0-9._-]/', '', $pdfnaam));
|
||||||
|
}
|
||||||
$this->Compactsop_model->downloadCompactSop ( $fileID );
|
$this->Compactsop_model->downloadCompactSop ( $fileID );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ class Pdfmaker extends MY_Controller{
|
|||||||
$organisatie = $this->Organisaties_model->get(['id' => $schoolid],false, true);
|
$organisatie = $this->Organisaties_model->get(['id' => $schoolid],false, true);
|
||||||
$data['inhoud' ]= $inhoud;
|
$data['inhoud' ]= $inhoud;
|
||||||
$html = $this->load->view('monpas/compactsop/sopcompact.php', $data, TRUE);
|
$html = $this->load->view('monpas/compactsop/sopcompact.php', $data, TRUE);
|
||||||
$date = date('dmY');
|
$date = date('dmY-Hi'); // tijdstip erbij om meerdere pdfs op één dag te onderscheiden
|
||||||
$zoek = [" ", "'", "/"];
|
$zoek = [" ", "'", "/"];
|
||||||
$bestandstitel = str_replace($zoek, "", $soptitel);
|
$bestandstitel = str_replace($zoek, "", $soptitel);
|
||||||
$schoolid = str_replace($zoek, "",$schoolid);
|
$schoolid = str_replace($zoek, "",$schoolid);
|
||||||
@@ -53,7 +53,6 @@ class Pdfmaker extends MY_Controller{
|
|||||||
$logonaam = $this->Schooldetails_model->get(["organisatie_id" =>$schoolid],'logo', true);
|
$logonaam = $this->Schooldetails_model->get(["organisatie_id" =>$schoolid],'logo', true);
|
||||||
if (! $logonaam) $logonaam="monpaslogo.png";
|
if (! $logonaam) $logonaam="monpaslogo.png";
|
||||||
$schoollogo = $this->config->item('vendor_url').'/images/logos/'.$logonaam;
|
$schoollogo = $this->config->item('vendor_url').'/images/logos/'.$logonaam;
|
||||||
chmod($schoollogo, 0777);
|
|
||||||
|
|
||||||
$headerdata = ['titel' =>$soptitel,
|
$headerdata = ['titel' =>$soptitel,
|
||||||
'schoolnaam' =>$sopschoolnaam ? $sopschoolnaam : '',
|
'schoolnaam' =>$sopschoolnaam ? $sopschoolnaam : '',
|
||||||
@@ -65,7 +64,7 @@ class Pdfmaker extends MY_Controller{
|
|||||||
// $footer = $this->load->view ("monpas/compactsop/compactfooter", $footerdata, TRUE);
|
// $footer = $this->load->view ("monpas/compactsop/compactfooter", $footerdata, TRUE);
|
||||||
$filenaam = $this->compactsoppath.'sop.pdf';
|
$filenaam = $this->compactsoppath.'sop.pdf';
|
||||||
|
|
||||||
$bestandsnaam = "compactsop".$bestandsschoolnaam.$schoolid.$bestandstitel.'-'.$date.'.pdf';
|
$bestandsnaam = $bestandsschoolnaam.$schoolid.$bestandstitel.'-'.$date.'.pdf';
|
||||||
$downloadnaam = $this->compactsoppath.$bestandsnaam;
|
$downloadnaam = $this->compactsoppath.$bestandsnaam;
|
||||||
|
|
||||||
// TODO check if exists
|
// TODO check if exists
|
||||||
@@ -89,13 +88,8 @@ class Pdfmaker extends MY_Controller{
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
// header( 'Content-Description: File Transfer' );
|
// doorsturen naar een url die op de bestandsnaam eindigt, anders slaat de browser de pdf op als 'download'
|
||||||
header( 'Content-Type: application/pdf' );
|
redirect('monpas/compactsop/download_pdf/' . $sopid . '/' . preg_replace('/[^A-Za-z0-9._-]/', '', $bestandsnaam), 'location', 303);
|
||||||
header( 'Content-disposition:inline; filename="' .$bestandsnaam.'"');
|
|
||||||
// header( 'Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0' );
|
|
||||||
// header( 'Pragma: public' );
|
|
||||||
// header( 'Content-Length: ' . filesize( $downloadnaam ) );
|
|
||||||
readfile($downloadnaam);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -40,6 +40,9 @@
|
|||||||
include_once( dirname( dirname( __FILE__ ) ) . '/vendor/autoload.php' );
|
include_once( dirname( dirname( __FILE__ ) ) . '/vendor/autoload.php' );
|
||||||
include_once( dirname( dirname( __FILE__ ) ) . '/.env.php' );
|
include_once( dirname( dirname( __FILE__ ) ) . '/.env.php' );
|
||||||
|
|
||||||
|
// tijdzone vastzetten; de php.ini van PHP 8.3 (MAMP) heeft geen date.timezone en valt dan terug op UTC
|
||||||
|
date_default_timezone_set( 'Europe/Amsterdam' );
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*---------------------------------------------------------------
|
*---------------------------------------------------------------
|
||||||
* APPLICATION ENVIRONMENT
|
* APPLICATION ENVIRONMENT
|
||||||
|
|||||||
Reference in New Issue
Block a user