Example #1
0
 /**
  *  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');
 }