load->model($models); $this->load->library('monpas/kleurcodes'); $this->load->helper('string'); if (!$this->check_online_status()) { echo json_encode(array('offline' => TRUE)); die; };// if } function naarmodule() { if ($this->nologin) return; $module = $this->uri->segment(4); $this->Session_model->set_module($module); } function getlicenties() { $userniveau = $this->Autorisatienivos_model->checknivo($this->userid, $this->globorgid); $ongeclusterdId = 0; $isCluster = 'F'; $ongeclusterd = []; $results = $this->Licenties_model->get_ongeclusterd($this->globorgid, $ongeclusterdId);// bolletjes zonder cluster if ($results) { foreach ($results as $result) { $pagniveau = $this->Menus_model->get_fieldvalue(['holdernaam'=>'home', 'module'=>$result->sysnr ], 'autorisatienivo');//nivo van de homepage van het instrument if ($pagniveau > $userniveau) {// als de user het instrument niet mag gebruiken moet het bolletje ook niet getoond worden $result->isCluster = $isCluster;//geen knop om het cluster te openen en te sluiten $ongeclusterd [] = $result; } } } $isCluster = 'T'; $clusters = $this->Licenties_model->get_clusters_org($this->globorgid); if($clusters) { $i = -1; foreach ($clusters as $cluster) { $i++; if ($cluster->aantalmodules > 1) {// bolletje met link want meer instrumenten bij bolletje $instrumenten = $this->Licenties_model->get_licentie_cluster($this->globorgid, $cluster->id); $array = []; foreach ($instrumenten as $instrument) { $pagniveau = $this->Menus_model->get_fieldvalue(['holdernaam' => 'home', 'module' => $instrument->sysnr], 'autorisatienivo'); if ($pagniveau > $userniveau) { $array[] = $instrument; } } if (count($array) > 1) { $cluster->isCluster = $isCluster; //ivm knop om het cluster te openen en te sluiten $cluster->sub = $array;//instrumenten bij het cluster $cluster->cluster_id = $cluster->id; //zodat cluster en instrument eenzelfde attribuut hebben } else if (count($array) == 1) { //toegang tot maar 1 instrument dus geen menu $cluster->isCluster = "F"; $array[0]->kleur1 = $cluster->kleur1; $array[0]->kleur2 = $cluster->kleur2; $ongeclusterd = array_merge($ongeclusterd, $array); unset($clusters[$i]); } else{ $cluster->isCluster = "F"; unset($clusters[$i]); } } else if ($cluster->aantalmodules == 1) { //1 instrument bij bolletje $cluster->isCluster = "F"; $newitem = $this->Licenties_model->get_ongeclusterd($this->globorgid, $cluster->id); $pagniveau = $this->Menus_model->get_fieldvalue(['holdernaam' => 'home', 'module' =>$newitem[0]->sysnr], 'autorisatienivo'); if ($pagniveau > $userniveau) { $ongeclusterd = array_merge($ongeclusterd, $newitem); } unset($clusters[$i]); } else{// geen toegang tot instrumenten bij cluster unset($clusters[$i]); } } }; // if $clusters if (! $ongeclusterd){ $ongeclusterd = []; }; if(!$clusters){ $clusters = []; }; $licenties = array_merge($clusters, $ongeclusterd); usort($licenties, array($this, 'opAlfabet'));//bollen op alfbetische volgorde echo json_encode($licenties); } /** * haalt individuele instrumenten op voor orgusers met een bij het instrument horende functie. * Voor export naar monPon */ function getBollenMonPon() { $portalorg = 5; $portaluser = 6; $orgid = $this->Organisaties_model->get_fieldvalue(array('portal_id'=>$portalorg),"id"); $userid = $this->Users_model->get_fieldvalue(array('portal_id'=>$portaluser),"id"); $functiebollen = []; $functiesuser = $this->Functies_model->getFunctiesOrguser($orgid, $userid); if (!$functiesuser) { return; } $bollen = $this->Modules_model->get_instrumenten_ind_org($orgid); if (!$bollen) { return; } foreach ($bollen as $bolletje) { $functiesmod = $this->Functies_model->getFunctiesBijModule($bolletje->moduleid); if ($functiesmod) { foreach ($functiesmod as $mfunctie) { foreach ($functiesuser as $userfunctie) { if ($mfunctie->functie_id == $userfunctie->functieid) { $bolletje->userid = $userfunctie->userid; $bolletje->fullname = $userfunctie->fullname; if (sizeof($functiebollen) < 1) { array_push($functiebollen, $bolletje); } else { foreach ($functiebollen as $fbol) { if ($fbol->moduleid != $bolletje->moduleid) { array_push($functiebollen, $bolletje); } } } } } $functiebollen = array_map("unserialize", array_unique(array_map("serialize", $functiebollen)));//verwijdert dubbele instrumenten } } } $bollendef = $this->getIngevuldeInstrumenten($userid, $orgid, $functiebollen); echo json_encode($bollendef); } function getAgendaMonPon(){ if (!$this->userid) die; $filledversionid = $this->uri->segment(4); $scores = null; $gewenst = null; // let op ja nee bezig wordt vertaald naar 10, 0 en 5 $scores = $this->Scores_model->calculateindividualMonPon($filledversionid); // haal ook nog de criteria van de organisatie op foreach($scores as $score){ $score->gem = 0; if ($score->num > 0){ $score->gem = round($score->somscore / $score->num,1); } $score->huidig= $this->kleurcodes->getnummer($score->gem); } ; // foreach scores // $gewenst=$this->Scores_model->getgewenst($orgid, $orgversieid); // if ($gewenst){ // $i =0; // foreach($scores as $score){ // $score->gewenstid= $gewenst[$i]->id; // $score->gewenst = $gewenst[$i]->wens; // $i = $i + 1; // }; //foreach // } echo json_encode(array('scores' =>$scores)); } // getscores function kiesCluster(){ $clusterId = $this->uri->segment(4); $userniveau = $this->Autorisatienivos_model->checknivo($this->userid, $this->globorgid); $ongeclusterdId = 0; $isCluster = 'F'; $wasniveau2 = 'F'; //hingen voor de keuze niet aan cluster $keuzesarray = []; $clusterarray = []; $ongeclusterd = []; $results = $this->Licenties_model->get_ongeclusterd($this->globorgid, $ongeclusterdId); //instrumenten die niet bij een cluster horen if($results) { foreach ($results as $result) { $pagniveau = $this->Menus_model->get_fieldvalue(['holdernaam' => 'home', 'module' => $result->sysnr], 'autorisatienivo');//nivo van de homepage van het instrument if ($pagniveau > $userniveau) {// als de user het instrument niet mag gebruiken moet het bolletje ook niet getoond worden $result->isCluster = $isCluster;//geen knop om het cluster te openen en te sluiten $result->wasNiveau2 = $wasniveau2; $ongeclusterd [] = $result; } } } $isCluster = 'T'; $clusters = $this->Licenties_model->get_clusters_org($this->globorgid); if($clusters) { foreach ($clusters as $cluster) { $cluster->wasNiveau2 = $wasniveau2; $cluster->isCluster = $isCluster; } }; $isCluster = 'F'; $wasniveau2 = 'T'; $keuze = $this->Licenties_model->get_ongeclusterd($this->globorgid, $clusterId); //gekozen cluster van instrumenten if($keuze) { foreach ($keuze as $keus) { $pagniveau = $this->Menus_model->get_fieldvalue(['holdernaam' => 'home', 'module' => $keus->sysnr], 'autorisatienivo'); if ($pagniveau > $userniveau) { $keus->wasNiveau2 = $wasniveau2;// waren bollen onde cluster nu niveau hoger $keus->isCluster = $isCluster; $keuzesarray[] = $keus; } } }; if($clusters) { $i =-1; foreach ($clusters as $cluster) { $i++; $cluster->cluster_id = $cluster->id; if ($cluster->cluster_id != $clusterId) { //voeg instrumenten toe aan niet-gekozen clusters if ($cluster->aantalmodules > 1){ $instrumenten = $this->Licenties_model->get_licentie_cluster($this->globorgid, $cluster->id); if ($instrumenten) { foreach ($instrumenten as $instrument) { $pagniveau = $this->Menus_model->get_fieldvalue(['holdernaam' => 'home', 'module' => $instrument->sysnr], 'autorisatienivo'); if ($pagniveau > $userniveau) { $clusterarray[] = $instrument; } } } if (count($clusterarray) > 1) { $cluster->isCluster = $isCluster; //ivm knop om het cluster te openen en te sluiten $cluster->sub = $clusterarray;//instrumenten bij het cluster $cluster->cluster_id = $cluster->id; //zodat cluster en instrument eenzelfde attribuut hebben } else if (count($clusterarray) == 1) { //toegang tot maar 1 instrument dus geen menu $cluster->isCluster = "F"; $clusterarray[0]->kleur1 = $cluster->kleur1; $clusterarray[0]->kleur2 = $cluster->kleur2; $ongeclusterd = array_merge($ongeclusterd, $clusterarray); unset($clusters[$i]); } else{ $cluster->isCluster = "F"; unset($clusters[$i]); } } else if ($cluster->aantalmodules == 1) { //1 instrument bij bolletje $cluster->isCluster = "F"; $newitem = $this->Licenties_model->get_ongeclusterd($this->globorgid, $cluster->id); $pagniveau = $this->Menus_model->get_fieldvalue(['holdernaam' => 'home', 'module' =>$newitem[0]->sysnr], 'autorisatienivo'); if ($pagniveau > $userniveau) { $ongeclusterd = array_merge($ongeclusterd, $newitem); } unset($clusters[$i]); } else{// geen toegang tot instrumenten bij cluster unset($clusters[$i]); } } } }; $licenties = array_merge( $ongeclusterd, $clusters); usort($licenties, array($this, 'opAlfabet')); if (is_array($keuze)) usort($keuze, array($this, 'opAlfabet')); $clusternaam = $this->Licenties_model->get_clusterNaam($clusterId); $geselecteerd = $this->arrayinArray($licenties, $keuzesarray, $clusterId, $clusternaam); echo json_encode($geselecteerd); } function getmodule() { $module = $this->session->userdata['module']; $hometekst = $this->Home_model->get_fieldvalue(['modulenr' => $module], 'tekst'); echo json_encode(['module' => $module, 'hometekst' => $hometekst]); } private function arrayinArray($knipArray, $invoegArray, $var1, $var2) { $lengte = count($knipArray); $breekpunt = 0; $eindpunt = 0; for ($i = 0; $i < $lengte; $i++) { if ($knipArray[$i]->id == $var1 && $knipArray[$i]->naam == $var2) { $breekpunt = $i + 1; //array wordt geknipt na het cluster van de keuze $eindpunt = $lengte - $breekpunt - 1; } $licenties1 = array_slice($knipArray, 0, $breekpunt); $licenties2 = array_slice($knipArray, $breekpunt + 1, $eindpunt); $doelArray = array_merge($licenties1, $invoegArray, $licenties2); //array invoegen na breekpunt } return $doelArray; } private function opAlfabet($a, $b) { return strcmp($a->naam, $b->naam); } private function getIngevuldeInstrumenten($userid, $orgid, $bollen){ foreach ($bollen as $bolletje){ $versies = $this->Modules_model->get_instrumenten_ingevuld_ind($bolletje->moduleid, $userid, $orgid); if($versies){ $bolletje->ingevuld = 'T'; $bolletje->versies = $versies; $bolletje->label = $this->Labels_model->getLabel($bolletje->sysnr); } else{ $bolletje->ingevuld = 'F'; } } return $bollen; } }