/** * Funkce pro načtení XML dat z výstupu porovnávacího algoritmu a uložení do SESSION * @param $xmlString - XML dokument... * @param $workData - instance třídy workData * @return boolean */ public static function loadMatchingXML($xmlString) { //require_once (JPATH_COMPONENT.DS.'models'.DS.'workdata.php'); $workData = new WorkDataModel(); @($xml = simplexml_load_string($xmlString)); if ($xml) { //klíče dokumentu A $keysArr = array(); $legendArr = array(); $valuesArr = array(); $legendArr_A = array(); $legendArr_B = array(); $index = 0; if (count($xml->keysA->key) > 0) { foreach ($xml->keysA->key as $key) { //projdeme všechny klíče $keyName = (string) $key["name"]; $keysArr[] = 'a' . $index; $legendArr['a' . $index] = $keyName; $legendArr_A[$keyName] = 'a' . $index; /*hodnoty*/ if (count(@$key->enumeration[0]->value) > 0) { foreach ($key->enumeration[0]->value as $value) { $valuesArr['a' . $index][] = (string) $value; } } //TODO ostatni datove typy /*--hodnoty*/ $index++; } } //$_SESSION["keysArr"]=$keysArr; $workData->save('keysArr', $keysArr); //klíče dokumentu B $keys2Arr = array(); $index = 0; if (count($xml->keysB->key) > 0) { foreach ($xml->keysB->key as $key) { //projdeme všechny klíče $keyName = (string) $key["name"]; $keys2Arr[] = 'b' . $index; $legendArr['b' . $index] = $keyName; $legendArr_B[$keyName] = 'b' . $index; /*hodnoty*/ if (count(@$key->enumeration[0]->value) > 0) { foreach ($key->enumeration[0]->value as $value) { $valuesArr['b' . $index][] = (string) $value; } } //TODO ostatni datove typy /*--hodnoty*/ $index++; } } $workData->save('keys2Arr', $keys2Arr); $workData->save('valuesArr', $valuesArr); $workData->save('valuesMappingArr', array()); //$_SESSION["keys2Arr"]=$keys2Arr; //matchovací data $dataArr = array(); if (count($xml->match->keyA) > 0) { foreach ($xml->match->keyA as $keyA) { $keyAname = (string) $keyA["name"]; $keyAname_legend = $legendArr_A[$keyAname]; $arr = array(); if (count($keyA->keyB) > 0) { foreach ($keyA->keyB as $keyB) { $keyBname = (string) $keyB["name"]; $keyBname_legend = $legendArr_B[$keyBname]; $arr[$keyBname_legend] = array('ratio' => (string) $keyB["ratio"], 'ratioArr' => array('names' => (string) $keyB["ratioNames"], 'values' => (string) $keyB["ratioValues"], 'expirience' => (string) $keyB["ratioExpirience"])); } $dataArr[$keyAname_legend] = $arr; } } } $workData->save('legendArr', $legendArr); $workData->save('dataArr', $dataArr); //$_SESSION["defaultDataArr"]=$_SESSION["dataArr"]; $workData->save('defaultDataArr', $dataArr); //$_SESSION["userIgnoreArr"]=array(); $workData->save('userIgnoreArr', array()); return true; } else { //nepodarilo se nacist XML data return false; } }
/** * Funkce pro nastavení uživatelských dat... */ private function removeUserIgnore($key) { $workData = new WorkDataModel(); /*odebrání klíče z ignore*/ $assign = $this->newAssignClass($workData->load("assignClass"), $workData->load("dataArr"), $workData->load("userDataArr")); $workData->save("userIgnoreArr", $assign->removeUserIgnore($key, $workData->load("userIgnoreArr"), $workData->load("defaultDataArr"))); $workData->save("dataArr", $assign->dataArr); $workData->save("userDataArr", $assign->finalArr); $this->getJSONOutput($assign->getAssignArr()); }