public function setTranslation($original, $translated, $lang, $variant = 0, $namespace = NULL)
{
$arg = array();
$arg[0] = "SELECT `id` FROM {$this->defaultTable} WHERE ";
if ($namespace) {
$arg[0] .= '`ns` = ? AND ';
$arg[] = $namespace;
}
$arg[0] .= "BINARY `text` = ?";
$arg[] = $original;
$textId = $this->fetchField($arg);
if ($textId) {
$id = $this->fetchField(array("\n\t\t\t\tSELECT `id` FROM {$this->translationTable}\n\t\t\t\tWHERE `text_id` = ? AND `lang` = ? AND `variant` = ?", $textId, $lang, $variant));
}
if ($textId && $id) {
$this->db->query("UPDATE {$this->translationTable} SET translation = ? WHERE id = ?", $translated, $id);
} else {
if (!$textId) {
$data = array('text' => $original);
if ($namespace) {
$data['ns'] = $namespace;
}
$this->db->query("INSERT INTO {$this->defaultTable} ?", $data);
$textId = $this->db->fetch("SELECT LAST_INSERT_ID() id")->id;
}
$this->db->query("INSERT INTO {$this->translationTable} ?", array('text_id' => $textId, 'lang' => $lang, 'variant' => $variant, 'translation' => $translated));
}
}