Example #1
0
 function similarity()
 {
     require_once JPATH_COMPONENT . DS . 'models' . DS . 'data.php';
     require_once JPATH_COMPONENT . DS . 'library' . DS . 'XmlConnector.php';
     require_once JPATH_COMPONENT . DS . 'models' . DS . 'workdata.php';
     $dataModel = new DataModel();
     //načteme články z DB
     $art2 = $dataModel->loadArticle(JRequest::getVar('art2', -1), true);
     //overime, jestli jde o mapovani konkretni ulohy a podle toho nacteme prvni soubor
     $taskId = JRequest::getVar('taskId', 0);
     if ($taskId > 0) {
         //jde o úlohu
         require_once JPATH_COMPONENT . DS . 'models' . DS . 'tasks.php';
         $tasksModel = new dbconnectModelTasks();
         $task = $tasksModel->getTask($taskId);
         $art1content = $tasksModel->getTableContent($taskId);
     } else {
         //nacteme clanek z DB
         $art1 = $dataModel->loadArticle(JRequest::getVar('art1', -1), true);
         $art1content = $art1->text;
     }
     //zkontrolujeme,jestli jde o podporovane typy souboru a pripravime transformaci
     $error = false;
     $art1sourceType = '';
     $art1dataXML = XmlConnector::loadInputXML($art1content, $art1sourceType);
     if ($art1dataXML) {
         $workData = new WorkDataModel();
         $workData->reset();
         $workData->save('assignClass', JRequest::getVar('assignClass', 'ManualAssignClass'));
         $workData->save('valuesAssignClass', JRequest::getVar('valuesAssignClass', 'ManualValuesAssignClass'));
         if ($taskId) {
             //jde o ulohu
             $workData->save('art1', array('taskId' => $task->id, 'title' => $task->name, 'sourceType' => (string) $art1sourceType));
         } else {
             //jde o PMML soubor
             $workData->save('art1', array('id' => $art1->id, 'title' => $art1->title, 'sourceType' => (string) $art1sourceType));
         }
         $art2sourceType = '';
         $art2dataXML = XmlConnector::loadInputXML($art2->text, $art2sourceType);
         $workData->save('art2', array('id' => $art2->id, 'title' => $art2->title, 'sourceType' => (string) $art2sourceType));
         if (!$art2dataXML) {
             $error = true;
             $this->showError(JText::_('FILE2_FORMAT_ERROR'), 'index.php?option=com_mapping&task=selArticles&task=selArticles&art1=' . $art1->id);
         }
         //máme zadaná FML data - uložíme ID do workdata
         $fmlId = JRequest::getInt('artFml', 0);
         if ($fmlId > 0) {
             $fmlArt = $dataModel->loadArticle($fmlId, true);
             if ($fmlArt) {
                 $workData->save('fml', array('id' => $fmlArt->id, 'title' => $fmlArt->title));
             }
         }
     } else {
         $error = true;
         $this->showError(JText::_('FILE1_FORMAT_ERROR'), 'index.php?option=com_mapping&task=selArticles&task=selArticles&art2=' . $art2->id);
     }
     if ($error) {
         //vyskytla se nejaka chyba
         if (isset($workData)) {
             $workData->unsetVar('art1');
             $workData->unsetVar('art2');
             $workData->unsetVar('fml');
         }
     } else {
         //spustime vypocet podobnosti
         require_once JPATH_COMPONENT . DS . 'library' . DS . 'MatchingClass.php';
         $matchingClass = new MatchingClass();
         $matchingClass->loadXML($art1dataXML, $art2dataXML);
         $xmlData = $matchingClass->getMatchingXML();
         //pripravime data pro useredit
         require_once JPATH_COMPONENT . DS . 'library' . DS . 'XmlConnector.php';
         XMLConnector::loadMatchingXML($xmlData);
         //pokud mame FML, vyresime  předdefinovaná mapování
         if ($fmlArt) {
             //máme definovaný mapovací soubor
             $this->autoAddUserMerges(simplexml_load_string($fmlArt->text), $workData);
         }
         //TODO//exit(var_dump($_SESSION));
         //presmerujeme stranku na uzivatelske upravy
         $this->setRedirect('index.php?option=com_mapping&task=useredit');
     }
 }