0, "bodu_celkem" => 0, "otazek_spravne"=> 0, "otazek_celkem" => 0, "procenta" => 0); $cv_typy2body = Cviceni::getTypy2body(); foreach($this->Uchazec_text AS $ot) { switch($cv_typy2body[$ot->Otazky->Cviceni->typ]) { case '1': if (!empty($ot->spravne)) { $resArr['bodu_spravne'] = $resArr['bodu_spravne'] + $ot->bodu_na_otazku; $resArr['otazek_spravne']++; } $resArr['bodu_celkem'] = $resArr['bodu_celkem'] + $ot->bodu_na_otazku; $resArr['otazek_celkem']++; break; case 'N': $N = count(explode('|', $ot->odpoved)); if (!empty($ot->spravne)) { $resArr['bodu_spravne'] += $ot->spravne * $ot->bodu_na_otazku; $resArr['otazek_spravne'] += $ot->spravne; } $resArr['bodu_celkem'] += $N * $ot->bodu_na_otazku; $resArr['otazek_celkem'] += $N; break; } } if (($resArr['bodu_celkem']) == 0) return 0; $resArr['procenta'] = (($resArr['bodu_celkem']) <> 0) ? round((($resArr['bodu_spravne'] / $resArr['bodu_celkem']) * 100)) : 0; return $resArr; } public function getHodnoceni() { $procenta = $this->getUspesnost(); return $this->Test_zakaznik->Hodnoceni_head->getHodnoceni($procenta); } public function jeUkoncen() { return strlen($this->getDatumUkonceni()) > 0; } public function getUroven() { $hod = $this->getHodnoceni(); return $hod['hodnoceni']; } public function getGramatika () { $gramatika = array(); foreach($this->Uchazec_text AS $ut) { $spravne = $ut->spravne_gramatika; $spatne = $ut->spatne_gramatika; str_replace('||', '|', $spravne); str_replace('||', '|', $spatne); $spravne = trim($spravne,'|'); $spatne = trim($spatne,'|'); $spravne_arr = explode('|', $spravne); $spatne_arr = explode('|', $spatne); foreach ($spravne_arr as $gram) { if ($gram<>'') { if (isset($gramatika[$gram]['spravne'])) $gramatika[$gram]['spravne'] += 1; else $gramatika[$gram]['spravne'] = 1; } } foreach ($spatne_arr as $gram) { if ($gram<>'') { if (isset($gramatika[$gram]['spatne'])) $gramatika[$gram]['spatne'] += 1; else $gramatika[$gram]['spatne'] = 1; } } } foreach ($gramatika as $kod => &$gram) { $gram['objekt'] = Doctrine::getTable('Gramatika')->findByDql('kod = "'.$kod.'"'); if (!isset($gram['spravne'])) $gram['spravne']=0; if (!isset($gram['spatne'])) $gram['spatne']=0; $gram['uspesnost'] = round($gram['spravne']/($gram['spravne']+$gram['spatne'])*100); } return $gramatika; } public function renderGramatikaToEmail() { $output = ''; $gramatika = $this->getGramatika(); if (count($gramatika)) { $output = ''; foreach ($gramatika as $kod => $gram) { if ($kod<>'') { $output .= ''; } } $output .= '
GramatikaHodnocení
'; if ($gram['objekt'][0]->popis<>'') $output .= $gram['objekt'][0]->popis; else $output .= $kod; $output .= ''; $hodnoceni_gram = array(); $hodnoceni_gram = $gram['objekt'][0]->Hodnoceni_head->getHodnoceni($gram['uspesnost']); if ($hodnoceni_gram['hodnoceni_text']<>'') $output .= $hodnoceni_gram['hodnoceni_text']; else $output .= $gram['uspesnost'].'%'; $output .= '
'; } return $output; } public function kodOdeslan() { return !is_null($this->getKodOdeslan()); } public function setUserDiag() { $this->setUserIp($_SERVER['REMOTE_ADDR']); $this->setUserBrowser($_SERVER['HTTP_USER_AGENT']); } public function vypocitejUspesnost() { $u = $this->Count_uspesnost(); $this->setUspesnost($u['procenta']); } }