/** * Returns all parents for given term * * @param mixed $termId */ function getTermParents($termId) { global $mysqli; $query = "select trm_ParentTermID from defTerms where trm_ID = " . $termId; $res = $mysqli->query($query); $row = $res->fetch_row(); if ($row) { $parentId = $row[0]; } $parentId = mysql_fetch_array(mysql_query($query)); if ($parentId && @$parentId[0]) { return getTopMostParentTerm($parentId[0]); } else { return $termId; } }
function translateTermIDs($formattedStringOfTermIDs, $contextString, $forEntryString) { global $error, $importLog, $tempDBName, $targetDBName, $sourceDBID, $importVocabs; if (!$formattedStringOfTermIDs || $formattedStringOfTermIDs == "") { return ""; } makeLogEntry("Term Translation", -1, "Translating {$contextString} terms {$formattedStringOfTermIDs} for {$forEntryString}"); $retJSonTermIDs = $formattedStringOfTermIDs; if ("term tree" == $contextString) { //ARTEM: new way //new way if (is_numeric($retJSonTermIDs)) { //this is vocabulary - take all children terms $termIDs = getCompleteVocabulary($retJSonTermIDs); } else { $temp = preg_replace("/[\\{\\}\",]/", "", $formattedStringOfTermIDs); if (strrpos($temp, ":") == strlen($temp) - 1) { $temp = substr($temp, 0, strlen($temp) - 1); } $termIDs = explode(":", $temp); //$termTree = json_decode($retJSonTermIDs); if ($importVocabs) { $allterms = array(); foreach ($termIDs as $importTermID) { if (!in_array($importTermID, $allterms)) { $parentID = getTopMostParentTerm($importTermID); if (!in_array($parentID, $allterms)) { $allterms = array_unique(array_merge($allterms, getCompleteVocabulary($parentID))); } } } $termIDs = $allterms; } } } else { if (strpos($retJSonTermIDs, "{") !== false) { $temp = preg_replace("/[\\{\\}\",]/", "", $formattedStringOfTermIDs); if (strrpos($temp, ":") == strlen($temp) - 1) { $temp = substr($temp, 0, strlen($temp) - 1); } $termIDs = explode(":", $temp); } else { $temp = preg_replace("/[\\[\\]\"]/", "", $formattedStringOfTermIDs); $termIDs = explode(",", $temp); } } // Import terms $isonce = true; foreach ($termIDs as $importTermID) { // importTerm $translatedTermID = importTermID($importTermID); // check that the term imported correctly if ($translatedTermID == "") { return ""; } //replace termID in string if (is_numeric($retJSonTermIDs)) { if ($retJSonTermIDs == $importTermID && $isonce) { $isonce = false; $retJSonTermIDs = $translatedTermID; } } else { $retJSonTermIDs = preg_replace("/\"" . $importTermID . "\"/", "\"" . $translatedTermID . "\"", $retJSonTermIDs); } } // TODO: update the ChildCounts makeLogEntry("Term string", '', "Translated {$formattedStringOfTermIDs} to {$retJSonTermIDs}."); return $retJSonTermIDs; }