コード例 #1
0
/**
 * 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;
    }
}
コード例 #2
0
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;
}