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)); } }