From 4e0b022241e10a5993fc51147b1f3a845ee420d2 Mon Sep 17 00:00:00 2001 From: Monique Hansma Date: Thu, 22 Oct 2026 11:22:14 +0200 Subject: [PATCH] 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 --- application/controllers/monpas/Compactsop.php | 5 +++++ application/controllers/monpas/Pdfmaker.php | 14 ++++---------- public/index.php | 3 +++ 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/application/controllers/monpas/Compactsop.php b/application/controllers/monpas/Compactsop.php index d5e9196..cb93e02 100644 --- a/application/controllers/monpas/Compactsop.php +++ b/application/controllers/monpas/Compactsop.php @@ -84,6 +84,11 @@ class Compactsop extends MY_Controller{ function download_pdf(){ $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 ); } diff --git a/application/controllers/monpas/Pdfmaker.php b/application/controllers/monpas/Pdfmaker.php index 1e51d16..1ef0a0e 100644 --- a/application/controllers/monpas/Pdfmaker.php +++ b/application/controllers/monpas/Pdfmaker.php @@ -41,7 +41,7 @@ class Pdfmaker extends MY_Controller{ $organisatie = $this->Organisaties_model->get(['id' => $schoolid],false, true); $data['inhoud' ]= $inhoud; $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 = [" ", "'", "/"]; $bestandstitel = str_replace($zoek, "", $soptitel); $schoolid = str_replace($zoek, "",$schoolid); @@ -53,7 +53,6 @@ class Pdfmaker extends MY_Controller{ $logonaam = $this->Schooldetails_model->get(["organisatie_id" =>$schoolid],'logo', true); if (! $logonaam) $logonaam="monpaslogo.png"; $schoollogo = $this->config->item('vendor_url').'/images/logos/'.$logonaam; - chmod($schoollogo, 0777); $headerdata = ['titel' =>$soptitel, 'schoolnaam' =>$sopschoolnaam ? $sopschoolnaam : '', @@ -65,7 +64,7 @@ class Pdfmaker extends MY_Controller{ // $footer = $this->load->view ("monpas/compactsop/compactfooter", $footerdata, TRUE); $filenaam = $this->compactsoppath.'sop.pdf'; - $bestandsnaam = "compactsop".$bestandsschoolnaam.$schoolid.$bestandstitel.'-'.$date.'.pdf'; + $bestandsnaam = $bestandsschoolnaam.$schoolid.$bestandstitel.'-'.$date.'.pdf'; $downloadnaam = $this->compactsoppath.$bestandsnaam; // TODO check if exists @@ -89,13 +88,8 @@ class Pdfmaker extends MY_Controller{ - // header( 'Content-Description: File Transfer' ); - header( 'Content-Type: application/pdf' ); - 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); + // doorsturen naar een url die op de bestandsnaam eindigt, anders slaat de browser de pdf op als 'download' + redirect('monpas/compactsop/download_pdf/' . $sopid . '/' . preg_replace('/[^A-Za-z0-9._-]/', '', $bestandsnaam), 'location', 303); } } \ No newline at end of file diff --git a/public/index.php b/public/index.php index 46e49d0..44617a4 100755 --- a/public/index.php +++ b/public/index.php @@ -40,6 +40,9 @@ include_once( dirname( dirname( __FILE__ ) ) . '/vendor/autoload.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