overgebleven PHP 8 warnings uit het log opgelost

- Schoolscores/Lijsten: ontbrekend gemiddelde of orgversie geeft null/''
- Lijsten, Userlijsten, ijkpuntengrafiek, ijkpuntentabel: geen foreach
  over false bij een lijst zonder scores
- Pdfmaker: oude pdf alleen verwijderen als het bestand bestaat
- Compactsop_model: 404 als record of pdf-bestand ontbreekt

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-22 13:14:10 +02:00
co-authored by Claude Opus 5.5
parent 24a86e3816
commit 6132b79271
7 changed files with 11 additions and 9 deletions
+1 -1
View File
@@ -73,7 +73,7 @@ class Pdfmaker extends MY_Controller{
$csop = $this->Compactsop_model->get($data,false, true); $csop = $this->Compactsop_model->get($data,false, true);
if ($csop && $csop->id){ if ($csop && $csop->id){
unlink($this->compactsoppath.$csop->pdfnaam); if (is_file($this->compactsoppath.$csop->pdfnaam)) unlink($this->compactsoppath.$csop->pdfnaam);
$this->Compactsop_model->update_record(['pdfnaam'=>$bestandsnaam], $csop->id); $this->Compactsop_model->update_record(['pdfnaam'=>$bestandsnaam], $csop->id);
$sopid = $csop->id; $sopid = $csop->id;
} else { } else {
@@ -326,7 +326,7 @@ class Schoolscores
private function setResults(){ private function setResults(){
$this->resultaten = [ $this->resultaten = [
'totgem' => $this->gemiddelde->gem, 'totgem' => $this->gemiddelde->gem ?? null,
'ijkpuntenok' => $this->ijkpuntenok, 'ijkpuntenok' => $this->ijkpuntenok,
'welkehoogste' => $this->welkehoogste, 'welkehoogste' => $this->welkehoogste,
'hoogstescore' => round($this->hoogstescore, 1), 'hoogstescore' => round($this->hoogstescore, 1),
@@ -116,8 +116,8 @@ class Lijsten
private function setOrgversie(){ private function setOrgversie(){
$this->lijst->orgversie = $this->CI->Orgversies_model->get_record_by_id($this->lijst->orgversieid); $this->lijst->orgversie = $this->CI->Orgversies_model->get_record_by_id($this->lijst->orgversieid);
$this->lijst->periodenummer = $this->lijst->orgversie->periodenummer; $this->lijst->periodenummer = $this->lijst->orgversie->periodenummer ?? null;
$this->lijst->jaartal = substr($this->lijst->orgversie->geldigvanaf, 2,2); $this->lijst->jaartal = substr($this->lijst->orgversie->geldigvanaf ?? '', 2,2);
} }
private function setIJkpunten($index){ private function setIJkpunten($index){
@@ -168,7 +168,7 @@ class Lijsten
private function setVergelijkingScores(){ private function setVergelijkingScores(){
if(!isset($this->vergelijkingen) || !$this->vergelijkingen) return; if(!isset($this->vergelijkingen) || !$this->vergelijkingen) return;
foreach($this->vergelijkingen['scores'] AS $i => $vergelijking){ foreach($this->vergelijkingen['scores'] ?: [] AS $i => $vergelijking){
if (!$this->scores) $this->scores = []; // PHP 8.1: no implicit false-to-array conversion if (!$this->scores) $this->scores = []; // PHP 8.1: no implicit false-to-array conversion
if (!isset($this->scores[$i])) $this->scores[$i] = new stdClass(); // PHP 8: no auto-vivification of objects if (!isset($this->scores[$i])) $this->scores[$i] = new stdClass(); // PHP 8: no auto-vivification of objects
$this->scores[$i]->gemV = $vergelijking->gem; $this->scores[$i]->gemV = $vergelijking->gem;
@@ -102,7 +102,7 @@ class Userlijsten
if(!isset($this->scores) || !$this->scores) return; if(!isset($this->scores) || !$this->scores) return;
if( (!isset($this->vergelijkingen) ||! $this->vergelijkingen )) return; if( (!isset($this->vergelijkingen) ||! $this->vergelijkingen )) return;
foreach($this->vergelijkingen['scores'] AS $i =>$vergelijking){ foreach($this->vergelijkingen['scores'] ?: [] AS $i =>$vergelijking){
if (!isset($this->scores[$i])) $this->scores[$i] = new stdClass(); // PHP 8: no auto-vivification of objects if (!isset($this->scores[$i])) $this->scores[$i] = new stdClass(); // PHP 8: no auto-vivification of objects
$this->scores[$i]->gemV = $vergelijking->gem; $this->scores[$i]->gemV = $vergelijking->gem;
$this->scores[$i]->kleurV = $vergelijking->kleur; $this->scores[$i]->kleurV = $vergelijking->kleur;
@@ -19,7 +19,9 @@ class Compactsop_model extends MY_Model
$this->load->helper('download'); $this->load->helper('download');
$sop = $this->get(['id'=>$id]); $sop = $this->get(['id'=>$id]);
$sop= $sop[0]; $sop= $sop ? $sop[0] : false;
// geen record of pdf-bestand niet (meer) aanwezig
if ( ! $sop || ! is_file( $this->compactsoppath . $sop->pdfnaam ) ) show_404();
header( 'Content-Description: File Transfer' ); header( 'Content-Description: File Transfer' );
header( 'Content-Type: application/pdf' ); header( 'Content-Type: application/pdf' );
header( 'Content-disposition:inline; filename="' .$sop->pdfnaam.'"'); header( 'Content-disposition:inline; filename="' .$sop->pdfnaam.'"');
@@ -47,7 +47,7 @@
xastitel = '<?php echo $lijst->label ?>'; xastitel = '<?php echo $lijst->label ?>';
<?php } ?> <?php } ?>
<?php foreach($lijst->scores as $index2 => $score){ <?php foreach($lijst->scores ?: [] as $index2 => $score){
?> ?>
labels.push('<?= $score->nummer ?>'); labels.push('<?= $score->nummer ?>');
@@ -41,7 +41,7 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php foreach($lijst->scores as $score){ <?php foreach($lijst->scores ?: [] as $score){
$kleur = $score->disabled == 'T' || $score->disablenvt == 'T' ? '#808080' : $score->kleur; ?> $kleur = $score->disabled == 'T' || $score->disablenvt == 'T' ? '#808080' : $score->kleur; ?>
<tr style="border: 1px solid grey"> <tr style="border: 1px solid grey">
<td style="vertical-align:top; text-align: right; border-right: 1px solid grey; padding-left: 3px; background-color: <?= $kleur ?>"> <td style="vertical-align:top; text-align: right; border-right: 1px solid grey; padding-left: 3px; background-color: <?= $kleur ?>">