function record($id, $termType) { $uses = ""; $term = thesaurus::get_name($id); $uses = extract_pattern($term, "/\\(BS[: ](?<use>.*)\\)/"); $recordArray = array(); $record = new simpleXmlElement("<record />"); // check if term already exists // define array for record creation $recordArray['input.name'] = "Thesaurus Redaktion"; $recordArray['input.date'] = date("Y-m-d", time()); $recordArray['input.time'] = date("h:i:s", time()); $recordArray['term.type'] = $termType; $recordArray['term.status'] = thesaurus::get_status_name(thesaurus::get_status($id)); $recordArray['term'] = $term; $recordArray['notes'] = thesaurus::get_comment($id); $recordArray['broader_term'] = thesaurus::get_parent($id); // $recordArray['narrower_term'] = thesaurus::get_child($id); $recordArray['related_term'] = thesaurus::get_assoc($id); $recordArray['used_for'] = $uses; xml_insert($record->record, create_record($recordArray, $termType)); return $record; }
function display($parent, $depth, $pos, $errorArray) { // V2.0 // starting on thesaurus level if ($parent == 0) { $elementArray = thesaurus::get_thesaurus_list(); // get thesauri } else { $elementArray = thesaurus::get_child($parent); } // get children // entries found if (is_array($elementArray)) { $cntElements = count($elementArray); // start new line if (!isset($pos)) { $pos = 0; } // set position to 0 $line = new line(); // **************************************************************** // start array $lineCnt = 0; foreach ($elementArray as $id) { // don't display if // non descriptor // or not visible // if ((thesaurus::is_descriptor($id) or session::get("descriptor")) // and (thesaurus::is_visible($id) or session::get("visible")) // ) if (thesaurus::is_visible($id) or session::get("visible")) { $cntParents = thesaurus::parent_num($id); $equivArray = thesaurus::get_equiv($id, "BS"); if (is_array($equivArray)) { $cntEquiv = count($equivArray); } else { $cntEquiv = 0; } // get count and list of subentries $childrenArray = thesaurus::get_child($id); $cntChildren = thesaurus::child_num($id, session::get(descriptor)); // get entry details $entry = thesaurus::get_descriptor($id); // ECHO ENTRY // space in front $x = 0; while ($x < $pos - 1) { $line->insert(grafik::disp("line", "|", 20), 20); // insert line-grafik $x++; } // search elements in next level enabled if ($depth > $pos or $depth == -1) { // display tree grafik if ($pos > 0) { if ($lineCnt++ < $cntElements - 1) { $line->insert(grafik::disp("subtree", "|", 20), 20); } else { $line->insert(grafik::disp("subend", "|", 20), 20); } // insert sub end icon } // display open / close icon if subobjects if ($cntChildren != 0) { // subobjects found -> display icon to open / close if (thesaurus::is_open($id)) { if ($pos > 0) { $tempString = form::link("minus", "[+]", "index.php?id={$id}&action=close", "close"); } else { $tempString = form::link("thesaurus-open", "[+]", "index.php?id={$id}&action=close", "close"); } } else { if ($pos > 0) { $tempString = form::link("plus", "[+]", "index.php?id={$id}&action=open", "open"); } else { $tempString = form::link("thesaurus", "[T]", "index.php?id={$id}&action=open", "open"); } } } else { $tempString = grafik::disp("space", " ", 20); } $line->insert($tempString, 20); // insert navigation symbols $tempString = ""; // Display parent and child link icon if (session::get("show")) { // display parent arrow if (thesaurus::is_child_of(session::get("show"), $id) and session::get("show")) { $line->insert(grafik::arrow("right", "blue", 15), 20); // display parent arrow } // display link-arrow if (thesaurus::is_parent_of(session::get("show"), $id)) { $line->insert(grafik::arrow("right", "orange", 15), 20); } // display associate links if (thesaurus::is_assoc_of(session::get("show"), $id)) { $line->insert(grafik::disp("assoc", "=", 20), 20); } } // entry name $textLength = strlen($entry[name]) * 15; $textString = $entry[name]; // set style for selection $styleString = ""; if (thesaurus::is_equivalent($id)) { $styleString = "class='bright'"; } if (thesaurus::is_descriptor($id)) { $textString = strtoupper($textString); } if ($id == session::get("show")) { $styleString = "class='select'"; } elseif ($cntParents > 1) { $styleString = "class='multiple'"; } if (!thesaurus::is_visible($id)) { $styleString = "class='red'"; } if (thesaurus::is_deleted($id)) { $styleString = "class='through'"; } // draw name with link if ($pos == 0) { $tempString .= form::link("", "<b><span {$styleString}>" . $textString . "</span></b>", "index.php?id={$id}&action=show", "name", "", $id); } else { $tempString .= form::link("", "<span {$styleString}>" . $textString . "</span>", "index.php?id={$id}&action=show", "name", "", $id); } // number of sub-objects if ($cntChildren) { $subText = ""; $listCnt = 0; foreach ($childrenArray as $entry) { $subText .= thesaurus::get_name($entry) . "<br>"; } $tempString .= "<span "; $tempString .= help::show("elementcount", $subText) . ">"; $tempString .= "<i class='small'>"; if ($cntChildren) { $tempString .= " ({$cntChildren} UB)</i>"; } $tempString .= "</span>"; } // number of equiv-objects if ($cntEquiv) { $equivText = ""; $listCnt = 0; foreach ($equivArray as $entry) { $equivText .= thesaurus::get_name($entry) . "<br>"; } $tempString .= "<span "; $tempString .= help::show("equivcount", $equivText) . ">"; $tempString .= "<i class='small'>"; if ($cntEquiv) { $tempString .= " ({$cntEquiv} BS)</i>"; } $tempString .= "</span>"; } // Count of containing elements // show owner $ownerID = thesaurus::get_owner($entry[ID]); $infoText = "ID: " . $id; $infoText .= "<br>Status: " . thesaurus::get_status_name(thesaurus::get_status($id)); // $infoText .= "<br>Begriffstyp: " . thesaurus::get_entrytype_name(thesaurus::get_entrytype($id)); $infoText .= "<br>Ersteller: " . user::name($ownerID); $tempString .= " " . form::link("", "?", "", "owner", $infoText); // Edit Link $tempString .= form::link("add", "add", "index.php?parent={$id}&action=add", "add"); // Delete Link if ($cntChildren == 0) { $javaText = "Wollen Sie " . $entry[name] . " wirklich löschen? Es werden auch alle Links zu diesem Eintrag gelöscht"; $tempString .= form::link("delete", "x", "javascript:get_confirm("{$javaText}","index.php?action=deleteid&id={$id}");", "delete"); } // Link Link if (session::get("link") and $id != session::get("link")) { if (!thesaurus::is_parent_of(session::get("link"), $id) or session::get(linkaction) == "change") { $linkType = "do" . thesaurus::get_type_name(session::get("linktype")); $tempString .= form::link($linkType, "L", "index.php?id={$id}&linkaction=linkdo", "{$linkType}"); } } $line->insert($tempString); // Insert text in line $tempString = ""; // recursive display subtree if (thesaurus::is_open($id)) { // recursive call of level if (thesaurus::child_num($id, 1)) { hyrarchy::display_line($line); hyrarchy::display($id, $depth, $pos + 1, $errorArray); } } } // display line hyrarchy::display_line($line); } } } }
function descriptor($id, $highlight = "", $view = "") { echo "<div id='export'>"; $dataArray = thesaurus::get_descriptor($id); $linkArray = thesaurus::get_link($id, session::get(descriptor)); $separator = FALSE; $isDescriptor = thesaurus::is_descriptor($id); //------------------------------------------------------------------------------ // icons for actions echo "<p>"; if ($view) { echo "<div id='box'>"; echo "<table width='100%'><tr>"; echo "<td>"; echo form::link("opentree", "[+]", "index.php?action=showhyrarchy&id={$id}", "opentree"); // open hyrarchy tree echo " " . form::link("edit", "edit", "index.php?action=edit&id={$id}", "edit"); // link icons echo " " . form::link("link", "OB", "index.php?linkaction=link&link={$id}&id={$id}&linktype=1", "newlink_1"); echo " " . form::link("equiv", "BS", "index.php?linkaction=link&link={$id}&id={$id}&linktype=2", "newlink_2"); echo " " . form::link("assoc", "VB", "index.php?linkaction=link&link={$id}&id={$id}&linktype=3", "newlink_3"); echo " " . form::link("add", "add", "index.php?action=add&parent={$id}", "add"); echo "</td>"; // print tree echo "<td>"; echo " " . form::link("", "txt", "csv.php?id={$id}&type=txt", "csv"); echo "</td>"; // print csv echo "<td>"; echo " " . form::link("", "csv", "csv.php?id={$id}&type=csv", "csv"); echo "</td>"; echo "<td align='right'>"; // export Adlib echo "<td>"; echo " " . form::link("", "adlib", "csv.php?id={$id}&type=adlib", "adlib"); echo "</td>"; // set link $linkType = session::get(linktype); $linkIcon = array("", "dolink", "doequiv", "doassoc"); if (session::get(link) != $id and session::get(link)) { echo "mit <b>'" . thesaurus::name(session::get(link)) . "'</b>' verknüpfen"; echo " " . form::link($linkIcon[$linkType], $linkType, "index.php?linkaction=linkdo&id={$id}", $linkIcon[$linkType]); echo " " . form::link("delete", "end", "index.php?linkaction=linkend", "end-linking"); } echo "</td>"; echo "</tr></table>"; echo "</div>"; } echo "</p>"; //------------------------------------------------------------------------------ // display name echo "<p>"; echo "<span class='exporthead'><b>"; $tempString = highlight($highlight, $dataArray[name], $isDescriptor); echo "<a href='index.php?action=show&id={$id}'>"; echo $tempString; // if javascript -> direkt edit if (session::get(JS)) { } echo grafik::disp("edit", "edit", 15); echo "</a>"; echo "</b>"; // display status of descriptor echo " <i>(" . thesaurus::get_status_name(thesaurus::get_status($id)) . ")</i>"; // mark if kandidate if (!thesaurus::is_visible($id)) { echo "<br><span class='red'>versteckt</span>"; } echo "</span>"; // display type of descriptor echo "<br><i>" . thesaurus::get_name(thesaurus::get_thesaurus($id)) . "</i>"; echo "</p>"; //------------------------------------------------------------------------------ // display comment echo "<p>"; if ($dataArray[comment]) { echo "<tr><td></td>"; echo "<td class='export'>"; echo nl2br(highlight($highlight, $dataArray[comment])); echo "</td></tr>"; } echo "</p>"; //------------------------------------------------------------------------------ // get link data for descriptor $parentArray = $linkArray[parent]; $childArray = $linkArray[child]; $assocArray = $linkArray[assoc]; $equivArray = $linkArray[equiv]; //------------------------------------------------------------------------------ // list synonyms echo "<table>"; if ($equivArray) { // sort for use and used for $x = $y = 0; foreach ($equivArray as $entry) { if ($entry > 0) { $forArray[$x++] = $entry; } else { $retArray[$x++] = abs($entry); } } if ($forArray) { echo "<tr><td valign='top'>BS</td>"; echo "<td class='export'>"; export::list_names($forArray, $highlight); echo "</td></tr>"; } if ($retArray) { echo "<tr><td valign='top'>BF</td>"; echo "<td class='export'>"; export::list_names($retArray, $highlight); echo "</td></tr>"; } } echo "</p>"; //------------------------------------------------------------------------------ // list parents if ($parentArray) { echo "<tr><td valign='top'>"; echo "<a href='javascript:void();'"; echo help::show("OB", ""); echo ">OB</a>"; echo "</td>"; echo "<td class='export'>"; export::list_names($parentArray, $highlight); echo "</td></tr>"; } //------------------------------------------------------------------------------ // list childs if ($childArray) { echo "<tr><td valign='top'>"; echo "<a href='javascript:void();'"; echo help::show("UB", ""); echo ">UB</a>"; echo "</td>"; echo "<td class='export'>"; export::list_names($childArray, $highlight); echo "</td></tr>"; } //------------------------------------------------------------------------------ // list associative links if ($assocArray) { echo "<tr><td valign='top'>"; echo "<a href='javascript:void();'"; echo help::show("VB", ""); echo ">VB</a>"; echo "</td>"; echo "<td class='export'>"; export::list_names($assocArray, $highlight); echo "</td></tr>"; } echo "</table>"; echo "</div>"; }
function insert_entry($_arg, $errorArray, $value = "") { if ($_arg[action] == 'add' or $_arg[action] == 'insert' and $errorArray) { // set default value if ($value) { $_arg[name] = $value; } echo "<form name='descriptor' method='get' action='index.php'>"; $name = thesaurus::name($_arg[parent]); if ($name) { echo "<p><b>Neuen Unterbegriff in '<span class='red'>"; echo "<a href='index.php?action=show&id={$_arg['parent']}'>{$name}</a>"; echo "</span>' "; if (right::link()) { echo "anlegen"; } else { echo "vorschlagen"; } echo "</b></p>"; } else { echo "<p><b>Neuen Thesaurus anlegen</b></p>"; } $error = $errorArray[name]; // name of new descriptor echo form::field("text", "name", $_arg[name], 30, "class='{$error}'", "<span class='small'>Name</span><br>", "", "name-field"); switch ($error) { case exist: echo "<br><b class='exist'>Eintrag existiert schon</b>"; echo form::link("", " Eintrag ansehen", "index.php?action=suchen&searchString={$_arg['name']}&searchtype=2", "showexist"); break; case alike: /* echo "<br><b class='exist'>Ähnliche Einträge existiert schon</b>"; echo form::link(""," Einträge ansehen","index.php?action=suchen&searchString=$_arg[name]&searchtype=1","showalike"); */ break; default: break; } echo "<br>"; // type of descriptor /* $typeArray = thesaurus::get_type_list(); $entryType = thesaurus::get_entrytype($_arg[parent]); echo form::selector("entrytype",$typeArray,1,"",$entryType[entrytype],"<span class='small'>Begriffstype</span><br>","","entrytype"); */ echo "<br>"; // status of descriptor if (right::write()) { $statusArray = thesaurus::get_status_list(); echo form::selector("status", $statusArray, 1, "", thesaurus::get_status($id), "<span class='small'>Status</span><br>", "", "statustype"); } else { echo "<span class='small'>Status</span><br><span class='normal'>" . thesaurus::get_status_name(thesaurus::newstatus()) . "</span>"; echo form::field("hidden", "status", thesaurus::newstatus()); } echo "</p>"; $error = $errorArray[comment]; // comment field echo form::textfield("comment", $_arg[comment], 45, 3, "class='{$error}'", "Bemerkungen<br>", "", "comment-field"); echo form::field("submit", "", "anlegen", "", "", "", "", "new"); echo form::field("hidden", "parent", $_arg[parent]); echo form::field("hidden", "id", $_arg[id]); echo form::field("hidden", "action", "insert"); echo form::field("hidden", "type", 1); echo "</form>"; } }