<?php require_once '/var/www/config.php'; sro('/Includes/mysql.php'); sro('/Includes/session.php'); sro('/Includes/functions.php'); sro('/PHP5/lib/PHPLang/common.php'); sro('/PHP5/lib/PHPLang/db.php'); sro('/PHP5/lib/PHPLang/translation.php'); if (array_key_exists("id", $_GET) and array_key_exists("path", $_GET) and is_numeric($_GET["id"])) { $w = WORD(defaultDB(), intval($_GET["id"])); $w->read_paths(); $p = PATH($w, $_GET["path"]); echo la_en($p, !safe_get("all_forms", $_GET)); } else { exit("\$_GET was invalid"); }
function get_sentence() { global $OP_PARAGRAPH; return [["store_path" => "path", "word" => $this->word, "path" => [get_pick("voice"), get_pick("mood-tense"), get_pick("selected-person"), get_pick("selected-number")]], $OP_PARAGRAPH, function ($pick_db) { $path = $pick_db["path"]; $t = la_en($path, true); $T = la_en($path, false); return name_answer_lang_tool("translation", new FreeResponseExpr($t, $T), "en", "English translation"); }]; }
function make_chart($w, $values = NULL, $ignore = NULL, $legend = "this chart", $add = NULL, $translate = FALSE) { if ($translate === TRUE) { $translate = []; } ob_start(); if ($values === NULL) { $values = word_table_values($w, $ignore); list($values0, $values1, $values2, $values3, $values4) = $values; } else { list($values0, $values1, $values2, $values3, $values4) = $values; $values0 = _do_ignore($values0, $ignore); if (is_fillable($values1)) { $values1 = _fill($values1, $values0); } if (is_fillable($values2)) { $values2 = _fill($values2, $values0); } if (is_fillable($values3)) { $values3 = _fill($values3, $values0); } if (is_fillable($values4)) { $values4 = _fill($values4, $values0); } _filter_ignore2($values1, $ignore, PATH($w), $values0); _filter_ignore2($values2, $ignore, PATH($w), $values0, $values1); _filter_ignore2($values3, $ignore, PATH($w), $values0); _filter_ignore2($values4, $ignore, PATH($w), $values0, $values3); } global $OP_USER_INPUT; $w->read_paths(); $w->read_attrs(); if (is_string($add) && $add) { $add = ", {$add}"; } $ret = ["help" => !is_callable($legend) && !is_callable($add) ? "Fill in {$legend} for “" . display_word_name($w) . "”{$add}." : function ($pick_db, $db) use($w, $add, $legend) { if (is_callable($add)) { $add = $add($pick_db, $db); if ($add) { $add = ", {$add}"; } } if (is_callable($legend)) { $legend = $legend($pick_db, $db); } return "Fill in " . $legend . " for “" . display_word_name($w) . "”{$add}."; }, "selections" => [], "sentence" => []]; $i = 0; $get_question = function ($form, $path) use(&$i, &$ret, $translate) { $ret["answer{$i}-hidden"] = TRUE; $ret["answer{$i}"] = array_map("format_word", explode("\n", $form)); $ret["answer{$i}-tooltip"] = "Enter form"; $i++; if ($translate === FALSE or _in_ignore($path, $translate)) { return '<input>'; } else { $ret["answer{$i}-hidden"] = TRUE; } $ret["answer{$i}"] = ["correct" => [la_en($path, true)], "expr" => la_en($path, false)]; //error_log($path.json_encode($ret["answer$i"])); $ret["answer{$i}-tooltip"] = "Translate"; $i++; return '<input><br><input>'; }; do_table($w, $values0, $values1, $values2, $values3, $values4, $ignore, "format_value", $get_question, NULL, NULL, 0); $table = explode("<input>", ob_get_contents()); ob_clean(); $i = count($table) - 1; foreach ($table as $r) { $ret["sentence"][] = HTML($r); if ($i) { $ret["sentence"][] = $OP_USER_INPUT; } $i -= 1; } return $ret; }