CodeIgniter 3.1.11 -> 3.4.5 (pocketarc fork) en PHP 8.3-fixes

- system/ vervangen door CodeIgniter 3.4.5 (pocketarc/codeigniter, PHP 8.2-8.5 compatibel)
- config.php, mimes.php, user_agents.php en error-views bijgewerkt naar 3.4.5
- composer.json: php-constraint "^7.4 || ^8.0" zodat composer install op 8.3 werkt
- PHP 8-fatals opgelost: count()/array-functies op FALSE/null, rekenen met lege
  strings, delen door nul, property zetten op FALSE, curly-brace string offsets,
  ongedefinieerde constanten, foute curl_setopt in Phantom_model::create_img
- dynamic properties gedeclareerd in libraries, optionele parameters voor verplichte opgelost
- vergelijkingen waar '' == 0 in PHP 8 anders uitvalt gecast naar (int)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-22 09:34:46 +02:00
co-authored by Claude Opus 5.5
parent c6afbb01f2
commit 172fcf566c
284 changed files with 3497 additions and 3718 deletions
+27 -27
View File
@@ -1323,7 +1323,7 @@ class FirePHP {
$name = $raw_name;
if ($name{0} == "\0") {
if ($name[0] == "\0") {
$parts = explode("\0", $name);
$name = $parts[2];
}
@@ -1370,7 +1370,7 @@ class FirePHP {
if (self::is_utf8($Object)) {
return $Object;
} else {
return utf8_encode($Object);
return mb_convert_encoding((string)$Object, 'UTF-8', 'ISO-8859-1');
}
}
return $return;
@@ -1502,17 +1502,17 @@ class FirePHP {
case 2:
// return a UTF-16 character from a 2-byte UTF-8 char
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
return chr(0x07 & (ord($utf8{0}) >> 2))
. chr((0xC0 & (ord($utf8{0}) << 6))
| (0x3F & ord($utf8{1})));
return chr(0x07 & (ord($utf8[0]) >> 2))
. chr((0xC0 & (ord($utf8[0]) << 6))
| (0x3F & ord($utf8[1])));
case 3:
// return a UTF-16 character from a 3-byte UTF-8 char
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
return chr((0xF0 & (ord($utf8{0}) << 4))
| (0x0F & (ord($utf8{1}) >> 2)))
. chr((0xC0 & (ord($utf8{1}) << 6))
| (0x7F & ord($utf8{2})));
return chr((0xF0 & (ord($utf8[0]) << 4))
| (0x0F & (ord($utf8[1]) >> 2)))
. chr((0xC0 & (ord($utf8[1]) << 6))
| (0x7F & ord($utf8[2])));
}
// ignoring UTF-32 for now, sorry
@@ -1564,7 +1564,7 @@ class FirePHP {
*/
for ($c = 0; $c < $strlen_var; ++$c) {
$ord_var_c = ord($var{$c});
$ord_var_c = ord($var[$c]);
switch (true) {
case $ord_var_c == 0x08:
@@ -1587,18 +1587,18 @@ class FirePHP {
case $ord_var_c == 0x2F:
case $ord_var_c == 0x5C:
// double quote, slash, slosh
$ascii .= '\\'.$var{$c};
$ascii .= '\\'.$var[$c];
break;
case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)):
// characters U-00000000 - U-0000007F (same as ASCII)
$ascii .= $var{$c};
$ascii .= $var[$c];
break;
case (($ord_var_c & 0xE0) == 0xC0):
// characters U-00000080 - U-000007FF, mask 110XXXXX
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
$char = pack('C*', $ord_var_c, ord($var{$c + 1}));
$char = pack('C*', $ord_var_c, ord($var[$c + 1]));
$c += 1;
$utf16 = $this->json_utf82utf16($char);
$ascii .= sprintf('\u%04s', bin2hex($utf16));
@@ -1608,8 +1608,8 @@ class FirePHP {
// characters U-00000800 - U-0000FFFF, mask 1110XXXX
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
$char = pack('C*', $ord_var_c,
ord($var{$c + 1}),
ord($var{$c + 2}));
ord($var[$c + 1]),
ord($var[$c + 2]));
$c += 2;
$utf16 = $this->json_utf82utf16($char);
$ascii .= sprintf('\u%04s', bin2hex($utf16));
@@ -1619,9 +1619,9 @@ class FirePHP {
// characters U-00010000 - U-001FFFFF, mask 11110XXX
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
$char = pack('C*', $ord_var_c,
ord($var{$c + 1}),
ord($var{$c + 2}),
ord($var{$c + 3}));
ord($var[$c + 1]),
ord($var[$c + 2]),
ord($var[$c + 3]));
$c += 3;
$utf16 = $this->json_utf82utf16($char);
$ascii .= sprintf('\u%04s', bin2hex($utf16));
@@ -1631,10 +1631,10 @@ class FirePHP {
// characters U-00200000 - U-03FFFFFF, mask 111110XX
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
$char = pack('C*', $ord_var_c,
ord($var{$c + 1}),
ord($var{$c + 2}),
ord($var{$c + 3}),
ord($var{$c + 4}));
ord($var[$c + 1]),
ord($var[$c + 2]),
ord($var[$c + 3]),
ord($var[$c + 4]));
$c += 4;
$utf16 = $this->json_utf82utf16($char);
$ascii .= sprintf('\u%04s', bin2hex($utf16));
@@ -1644,11 +1644,11 @@ class FirePHP {
// characters U-04000000 - U-7FFFFFFF, mask 1111110X
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
$char = pack('C*', $ord_var_c,
ord($var{$c + 1}),
ord($var{$c + 2}),
ord($var{$c + 3}),
ord($var{$c + 4}),
ord($var{$c + 5}));
ord($var[$c + 1]),
ord($var[$c + 2]),
ord($var[$c + 3]),
ord($var[$c + 4]),
ord($var[$c + 5]));
$c += 5;
$utf16 = $this->json_utf82utf16($char);
$ascii .= sprintf('\u%04s', bin2hex($utf16));
@@ -14,6 +14,9 @@ class Diversiteit
private $vormen;
private $factoren ='';
private $diversiteit = [];
private $schooljaarnr;
private $orgid;
private $modulenr;
public function getDiversiteit(){
return $this->diversiteit;
@@ -46,6 +46,9 @@ class Diversiteitafbeeldingen {
private $somdq;
private $totdq;
private $diversiteitafbeeldingen =[];
private $modulenr;
private $orgversieid;
private $diversiteit;
public function __construct($diversiteit, $modulenr, $orgversieid){
$this->CI = & get_instance();
@@ -37,6 +37,11 @@ class Gemiddeldenafbeeldingen {
private $disablenvt = 0;
private $gemiddeldenafbeeldingen;
private $gemiddeldescores;
private $modulenr;
private $orgversieid;
private $orgid;
private $clusterid;
public function __construct(Gemiddeldescores $gemiddeldescores, $modulenr, $orgversieid, $clusterid, $orgid){
$this->CI = & get_instance();
@@ -24,6 +24,18 @@ class Gemiddeldescores
private $welkehoogste;
private $laagstescore = 110;
private $hoogstescore = 0;
private $orgversieid;
private $orgid;
private $scoretype;
private $results;
private $org;
private $orgnaam;
private $kleuren;
private $onderorgs;
private $orgstring;
private $leerkrachtscores;
private $ijkpuntscore;
private $gemiddelde;
@@ -446,7 +458,7 @@ class Gemiddeldescores
}
private function addGemiddeldeScore(){
if(! $this->gemiddelde) return;
if(! $this->gemiddelde || ! is_array($this->ijkpunten)) return;
array_push($this->ijkpunten, $this->gemiddelde);
}
@@ -491,7 +503,7 @@ class Gemiddeldescores
private function setGevuldeVersies12(){
$orgids = [];
if (count($this->onderorgs) > 0) {
if (!empty($this->onderorgs)) {
foreach ($this->onderorgs as $index => $this->org) {
$orgids[] = $this->org->id;
}
@@ -18,6 +18,9 @@ class Hoofdstuk
private $vervangingscode;
private $contentid;
private $hoofdstuk;
private $chapterid;
private $orgversieid;
private $profielid;
private $CI;
@@ -16,8 +16,11 @@ class Hoofdstukkeuze
private $selectie;
private $selecties = [];
private $CI;
private $orgversieid;
private $chapterid;
private $vergelijkingen;
public function __construct($chapterid, $orgversieid= false, $vergelijkingen)
public function __construct($chapterid, $orgversieid, $vergelijkingen)
{
$this->CI =& get_instance();
$this->orgversieid = $orgversieid;
@@ -11,6 +11,7 @@ class Inleiding
private $valtonder_id;
private $bgid;
private $inleiding;
private $orgid;
public function __construct($orgid)
@@ -21,6 +21,11 @@ class Inspectieafbeeldingen {
private $orgbreedte;
private $vantm;
private $inspectieafbeeldingen;
private $modulenr;
private $orgversieid;
private $inspectieoordelen;
private $orgid;
private $clusterid;
public function __construct($inspectieOordelen, $modulenr, $orgversieid, $orgid){
$this->CI = & get_instance();
@@ -9,6 +9,9 @@ class Inspectieoordelen
private $ijkpunten;
private $melding;
private $inspectieoordelen;
private $orgversieid;
private $orgid;
private $clusterid;
public function __construct($orgversieid, $orgid, $clusterid){
$this->CI =& get_instance();
+1 -1
View File
@@ -134,7 +134,7 @@ class Kleurcodes {
return $codes;
}
public function getKleurcodesOrg($clusterid = FALSE, $swvid){
public function getKleurcodesOrg($clusterid, $swvid){
if (! $clusterid) $clusterid = 0;
$sql = " SELECT *
FROM tb_kleurcodes KC
@@ -32,6 +32,11 @@ class Schoolafbeeldingen {
private $schoolafbeeldingen;
private $resultaten;
private $disablenvt;
private $schoolscores;
private $modulenr;
private $orgversieid;
private $orgid;
private $clusterid;
public function __construct(Schoolscores $schoolscores, $modulenr, $orgversieid, $clusterid, $orgid){
$this->CI = & get_instance();
@@ -16,6 +16,7 @@ Schooljaarversies
private $schooljaarversies = [];
private $sopaanwezig = 'F';
private $versies;
private $modulenr;
public function __construct($chapterid, $profielid, $modulenr)
{
+10 -1
View File
@@ -21,6 +21,15 @@ class Schoolscores
private $laagstescore = 110;
private $hoogstescore = 0;
private $gemiddelde;
private $orgversieid;
private $orgid;
private $scoretype;
private $isVergelijking;
private $orgstring;
private $orgnaam;
private $metingen;
private $kleuren;
private $results;
public function __construct( $orgversieid, $orgid, $scoretype, $isVergelijking)
@@ -106,7 +115,7 @@ class Schoolscores
private function setMetingen(){
$this->metingen = new stdClass();
if(count($this->scores)==0)
if(empty($this->scores))
$this->metingen->aantal= 0;
$this->metingen->aantalorgs = 0;
+10 -1
View File
@@ -21,6 +21,15 @@ class Scores
private $laagstescore = 110;
private $hoogstescore = 0;
private $gemiddelde;
private $orgversieid;
private $orgid;
private $scoretype;
private $isVergelijking;
private $orgstring;
private $orgnaam;
private $metingen;
private $kleuren;
private $results;
public function __construct( $orgversieid, $orgid, $scoretype, $isVergelijking)
@@ -103,7 +112,7 @@ class Scores
private function setMetingen(){
$this->metingen = new stdClass();
if(count($this->scores)==0)
if(empty($this->scores))
$this->metingen->aantal= 0;
$this->metingen->aantalorgs = 0;
+2 -1
View File
@@ -17,6 +17,7 @@ class Sopkeuze
private $keuzelabels = [];
private $labels;
private $sopkeuze;
private $labelsids;
private $CI;
@@ -154,7 +155,7 @@ class Sopkeuze
$this->labels = $this->hfstlabels;
}
if($this->keuzelabels){
$this->labels = array_merge($this->hfstlabels, $this->keuzelabels);
$this->labels = array_merge($this->hfstlabels ?: [], $this->keuzelabels);
}
}
+2 -1
View File
@@ -10,10 +10,11 @@ class Tabellen
private $view;
private $tab;
//ls okt 2020 private $imagecode;
private tabelid;
private $tabelid;
private $imagedata;
private $sopinhoud;
private $updateid;
private $sopinhoudid;
private $CI;
@@ -19,6 +19,7 @@ class Versions
private $geopendeversies = [];
private $sopaanwezig = 'F';
private $versies;
private $modulenr;
public function __construct($chapterid, $profielid, $modulenr)
{
@@ -33,6 +33,9 @@ class Compacteonderdelen
private $data;
private $onderdelenNew;
private $compacteonderdelen;
private $schooljaarnr;
private $onderdelen;
private $orgid;
public function __construct($schooljaarnr, $onderdelen, $omvangjaren, $orgid){
$this->CI = &get_instance();
@@ -203,7 +206,7 @@ class Compacteonderdelen
}
private function setSetOmvang(){
if(! isset($this->omvangjaren) || count($this->omvangjaren) < 1 || !$this->omvangjaren) return;
if(! isset($this->omvangjaren) || ! is_array($this->omvangjaren) || count($this->omvangjaren) < 1 || !$this->omvangjaren) return;
$jaren = implode("','", $this->omvangjaren);
$jaren = "'" . $jaren . "'";
@@ -343,13 +346,13 @@ class Compacteonderdelen
$this->CI->globorgid, $this->jaarnummer, 'BASIS');
$this->somB = str_replace(',','', $this->somB);
$this->somB = number_format(($this->somB ), 0,',','.');
$this->somB = is_numeric($this->somB) ? number_format(($this->somB ), 0,',','.') : null; // PHP 8: number_format('') is a TypeError
$this->somE = $this->CI->Finbestemmingen_model->setSomSubsoort(
$this->CI->globorgid, $this->jaarnummer, 'EXTRA');
$this->somE = str_replace(',','', $this->somE);
$this->somE = number_format(($this->somE ), 0,',','.');
$this->somE = is_numeric($this->somE) ? number_format(($this->somE ), 0,',','.') : null; // PHP 8: number_format('') is a TypeError
}
@@ -20,6 +20,8 @@ class Compactepaginas
private $gegevens;
private $gegevensarray = [];
private $compacteonderdelen;
private $sopid;
public function __construct($onderdelen, $paginas){
$this->CI = &get_instance();
@@ -22,6 +22,9 @@ class Compacteversies
private $gevuldschooljaar;
private $vormtekst;
private $filledversie;
private $schooljaarnr;
private $orgid;
private $orgsoortnr;
public function getOnderdelen(){
return $this->onderdelen;
@@ -7,6 +7,9 @@ class Bestuurscores
private $orgstring;
private $metingen;
private $ambities;
private $orgversieid;
private $orgid;
private $vorm;
public function __construct( $orgversieid, $orgid, $vorm)
@@ -21,6 +21,13 @@ class Individuelescores
private $welkehoogste;
private $laagstescore = 110;
private $hoogstescore = 0;
private $orgversieid;
private $orgid;
private $orguserid;
private $scoretype;
private $org;
private $orgnaam;
private $ijkpunten;
public function __construct( $orgversieid, $orguserid, $orgid, $scoretype)
@@ -10,6 +10,9 @@ class Kamerscores
private $scores;
private $metingen;
private $ambities;
private $orgversieid;
private $orgid;
private $vorm;
public function __construct( $orgversieid, $orgid, $vorm)
{
@@ -17,6 +17,11 @@ class Lijsten
private $nieuwsteversie;
private $sopinfo;
private $eigenambitie = 'F';
private $orgid;
private $selecties;
private $organisatie;
private $gemiddelden;
private $scoresobject;
public function getLijsten(){
return $this->lijsten;
@@ -164,6 +169,8 @@ class Lijsten
if(!isset($this->vergelijkingen) || !$this->vergelijkingen) return;
foreach($this->vergelijkingen['scores'] AS $i => $vergelijking){
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
$this->scores[$i]->gemV = $vergelijking->gem;
$this->scores[$i]->kleurV = $vergelijking->kleur;
$this->scores[$i]->disabledV = $vergelijking->disabled;
@@ -10,6 +10,9 @@ class Swvscores
private $scores;
private $metingen;
private $ambities;
private $orgversieid;
private $orgid;
private $vorm;
public function __construct( $orgversieid, $orgid, $vorm)
@@ -9,6 +9,15 @@ class Userlijsten
private $lijsten = [];
private $nieuwste = 0;
private $nieuwsteversie;
private $orguserid;
private $orgid;
private $orgversies;
private $versienaam;
private $organisatie;
private $individueel;
private $results;
private $scores;
private $vergelijkingen;
public function getLijsten(){
return $this->lijsten;
@@ -94,6 +103,7 @@ class Userlijsten
if( (!isset($this->vergelijkingen) ||! $this->vergelijkingen )) return;
foreach($this->vergelijkingen['scores'] AS $i =>$vergelijking){
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]->kleurV = $vergelijking->kleur;
$this->scores[$i]->disabledV = $vergelijking->disabled;
@@ -19,6 +19,8 @@ class Vergelijkbareversies
private $periode;
private $specificaties = [];
private $filledids;
private $orgid;
private $modulenr;
public function getSeries(){
@@ -46,6 +46,9 @@ class DivMonitor
private $criteriumdq;
private $beschikbaar = 'F';
private $monitor;
private $schooljaarnr;
private $criteriumid;
private $module;
@@ -88,6 +91,7 @@ class DivMonitor
$this->normaantallen = $normaantallen;
}
else{
$this->normaantallen = new stdClass();
$this->normaantallen->groep12 = $this->groep12;
$this->normaantallen->groep38 = $this->groep38;
}
@@ -14,10 +14,12 @@ class IngedeeldeScholen
private $schoollabel;
private $schoollabels =[];
private $verschil;
private $criteriumid;
private $module;
public function __construct($criteriumid, $module){
$this->CI =& get_instance();
$this->criteriumid = $criteriumid;
$this->criteriumid = ($criteriumid === '') ? 0 : $criteriumid; // PHP 8: '' == 0 is false, keep PHP 7 behaviour
$this->module = $module;
$this->handle();
}
@@ -18,6 +18,7 @@ class Partituur_home {
*/
var $tokensecret;
var $ci;
function __construct(){