/** * Funkce pro prvotní mapování totožných hodnot */ public function mapValues() { require_once JPATH_COMPONENT . DS . 'models' . DS . 'workdata.php'; $workData = new WorkDataModel(); /*spojení totožných hodnot*/ $finalArr = $workData->load("finalArr"); $workData->unsetVar("dataArr"); $valuesArr = $workData->load("valuesArr"); $invertMapArr = array(); $valuesMapArr = array(); //projdeme pole s hodnotami a rozdělíme je do finalArr if (count($valuesArr) > 0) { foreach ($valuesArr as $key => $arr) { if (ereg("^a", $key)) { //jde o klic s hodnotami pro A $finalArr[$key]['valuesA'] = $this->makeValuesMapArr($valuesMapArr, $invertMapArr, $arr); unset($valuesArr[$key]); $keyBname = $finalArr[$key]['name']; if (isset($valuesArr[$keyBname])) { $finalArr[$key]['valuesB'] = $this->makeValuesMapArr($valuesMapArr, $invertMapArr, $valuesArr[$keyBname]); } } else { //jde o klic s hodnotami pro B //musime projit cele finalArr a najit vhodne umisteni... foreach ($finalArr as $keyFinal => $arrFinal) { if ($arrFinal['name'] == $key) { $finalArr[$keyFinal]['valuesB'] = $this->makeValuesMapArr($valuesMapArr, $invertMapArr, $arr); } } } } $workData->unsetVar("valuesArr"); $workData->save("valuesMapArr", $valuesMapArr); $workData->save("finalArr", $finalArr); unset($invertMapArr); } $valuesAssignClass = $this->newValuesAssignClass($workData->load('valuesAssignClass'), $valuesMapArr, $finalArr); $valuesAssignClass->initMapping(); $finalArr = $valuesAssignClass->getFinalArr(); $workData->save("finalArr", $finalArr); //pokud budeme mít nějaký mapovací soubor, tak musíme zpracovat jeho mapování.... $fmlW = $workData->load('fml'); if (isset($fmlW['id'])) { require_once JPATH_COMPONENT . DS . 'models' . DS . 'data.php'; $dataModel = new DataModel(); $fmlArt = $dataModel->loadArticle($fmlW['id'], true); if ($fmlArt->text) { $fml = @simplexml_load_string($fmlArt->text); } } //pokud máme načtené FML, tak ho budeme zpracovávat if ($fml) { //potřebujeme projít celé finalArr a zpracovat mapování, která jsou stejná, jako ta, která už byla v FDML $this->autoAddValuesUserMerge($fml, $workData); } $this->setRedirect('index.php?option=com_mapping&task=usereditValues'); }