function openthesaurus_searchSynonyms($query) { $start = getmicrotime(); $items = array(); $query_str = sprintf("\n\t\tSELECT words.id AS word_id, word, meaning_id\n\t\tFROM words, word_meanings, meanings\n\t\tWHERE \n\t\t\tword = '%s' AND\n\t\t\twords.id = word_meanings.word_id AND\n\t\t\tword_meanings.meaning_id = meanings.id AND\n\t\t\tmeanings.hidden = 0\n\t\n\t\tUNION\n\n\t\tSELECT words.id AS word_id, word, meaning_id\n\t\tFROM words, word_meanings, meanings\n\t\tWHERE \n\t\t\tlookup = '%s' AND\n\t\t\twords.id = word_meanings.word_id AND\n\t\t\tword_meanings.meaning_id = meanings.id AND\n\t\t\tmeanings.hidden = 0\n\n\t\tORDER BY word", myaddslashes($query), myaddslashes($query), myaddslashes($query), myaddslashes($query)); $db = new DB_Thesaurus(); $db->query($query_str); $synmatches = 1; if ($db->nf() == 0) { $item['words'] = array(); $items[] = $item; } while ($db->next_record()) { $mid = $db->f('meaning_id'); $item['words'] = getSynsetWithUsage($db->f('meaning_id'), 1); $items[] = $item; } $_GET['search'] = 1; # otherwise logSearch ignores the search logSearch($db, $query, $db->nf(), 0, getEndTimer(), 1); XMLRPC_response(XMLRPC_prepare($items), KD_XMLRPC_USERAGENT); }
$query = sprintf("INSERT INTO wiktionary (headword, meanings, synonyms) VALUES ('%s', '%s', '%s')", addslashes($title), myaddslashes($meanings_str), myaddslashes($synonyms_str)); $db->query($query); $insert_count++; #print "<p>$title:<br> MEAN:".join(',', $meanings)."<br>"; #print " SYNO:".join(',', $synonyms); } $handle = fopen(WIKTIONARY_XML, "r"); $i = 0; $insert_count = 0; $title = ""; $meanings = array(); $synonyms = array(); $state = ""; if ($handle) { $query = sprintf("DELETE FROM wiktionary"); $db->query($query); $lang = ""; while (!feof($handle)) { $buffer = fgets($handle, 4096); #echo "\n<br>###".$buffer; $pos = strpos($buffer, "<title>"); $endpos = strpos($buffer, "</title>"); if ($pos !== false && $endpos !== false) { if (sizeof($meanings) > 0 && $lang == WIKTIONARY_LANG) { if (strpos($title, "Categoría:") !== false || strpos($title, "Wiktionary:") !== false) { #print "Ignoring(2): $title<br>"; } else { storeData($title, $meanings, $synonyms); } $lang = ""; } elseif (sizeof($meanings) > 0 && $lang != WIKTIONARY_LANG) {
$query = sprintf("SELECT date, term, matches, submatch, ip\n\tFROM search_log\n\tWHERE matches = 0 AND submatch = 0\n\tORDER by date DESC\n\tLIMIT %d", $limit); $db->query($query); ?> <table> <tr> <td><strong>#</strong></td> <td><strong>Date</strong></td> <td><strong>Term</strong></td> <td align="right"><strong>Matches</strong></td> <td align="right"><strong>IP</strong></td> </tr> </tr> <?php while ($db->next_record()) { $query2 = sprintf("SELECT word, meaning_id\n\t\t\tFROM word_meanings, words, meanings\n\t\t\tWHERE \n\t\t\t\twords.word = '%s' AND\n\t\t\t\twords.id = word_meanings.word_id AND\n\t\t\t\tword_meanings.meaning_id = meanings.id AND\n\t\t\t\tmeanings.hidden = 0\n\t\t\t\tLIMIT 1", addslashes($db->f('term'))); $db2->query($query2); if ($db2->nf() > 0) { continue; } if ($i % 2 == 0) { $col = ' bgcolor="#eeeeee"'; } else { $col = ""; } ?> <tr<?php print $col; ?> > <td align="right"><?php print $i + 1;
function getSubject($meaning_id) { $db = new DB_Thesaurus(); $query = sprintf("SELECT subject\n\t\t\tFROM meanings, subjects\n\t\t\tWHERE \n\t\t\t\tmeanings.id = %d AND\n\t\t\t\tsubjects.id = meanings.subject_id", $meaning_id); $db->query($query); $db->next_record(); return $db->f('subject'); }
$title = "OpenThesaurus admin interface: update 'lookup' field"; include "../include/top.php"; ?> <?php $query = sprintf("SELECT id, word, lookup\n\tFROM words\n\tORDER by word"); $db->query($query); while ($db->next_record()) { $lookup = getLookupWord($db->f('word')); $lookup_db = $db->f('lookup'); if ($lookup == $db->f('word')) { # lookup is the same as the original word, so it should be set to NULL if (!is_null($lookup_db)) { print "Setting lookup of '" . $db->f('word') . "' to NULL<br>\n"; $query = sprintf("UPDATE words SET lookup = NULL WHERE id = %d", $db->f('id')); $db2->query($query); } } else { # lookup is NOT the same as the original word, so it should be set to getLookupWord(...): if ($lookup_db != $lookup) { print "Setting lookup of '" . $db->f('word') . "' to '{$lookup}'<br>\n"; $query = sprintf("UPDATE words SET lookup = '%s' WHERE id = %d", addslashes($lookup), $db->f('id')); $db2->query($query); } } } print "Done.\n"; ?> <p><a href="<?php print BASE_URL;
array_push($l, $db->f('meaning_id')); } $last_id = $db->f('meaning_id'); $prev_word = $db->f('word'); } array_push($l, $last_id); $words[$prev_word] = join(',', $l); $wordlist = array(); $thes = array(); while (list($key, $val) = each($words)) { $query = sprintf("SELECT DISTINCT word, word_id, word_meanings.id AS wmid\n\t\tFROM word_meanings, words\n\t\tWHERE \n\t\t\tmeaning_id IN (%s) AND\n\t\t\twords.id = word_meanings.word_id", $val); $db->query($query); $table = array(); while ($db->next_record()) { $query = sprintf("SELECT uses.name, word_meanings.id\n\t\t\tFROM word_meanings, uses\n\t\t\tWHERE word_meanings.id = %d AND\n\t\t\t\tuses.id = word_meanings.use_id", $db->f('wmid')); $db_temp->query($query); $db_temp->next_record(); $w = $db->f('word'); if ($db_temp->f('name')) { $w .= " (" . $db_temp->f('name') . ")"; # "use" information array_push($wordlist, trim($w)); } $table[$w] = 1; # 1 =fake value } $key_org = $key; $key = preg_replace("/,/", ";", $key); if (!(strpos($key_org, ",") === false)) { print "Replacing {$key_org} by {$key}<br>\n"; }
function getMorphologic($meaning_id) { $db = new DB_Thesaurus(); $query = sprintf("SELECT morphologic\n\t\t\tFROM meanings, morphologics\n\t\t\tWHERE \n\t\t\t\tmeanings.id = %d AND\n\t\t\t\tmorphologics.id = meanings.morphologic_id", $meaning_id); $db->query($query); $db->next_record(); return $db->f('morphologic'); }