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:
2026-10-22 11:22:14 +02:00
co-authored by Claude Opus 5.5
parent fcc26ca952
commit 4e0b022241
3 changed files with 12 additions and 10 deletions
@@ -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 );
}
+4 -10
View File
@@ -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);
}
}
+3
View File
@@ -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