55 include_once(
"./Services/Object/exceptions/class.ilObjectException.php");
70 if (!isset(self::$instances[
$a_type][$a_obj_id]))
72 self::$instances[
$a_type][$a_obj_id] =
new self($a_obj_id,
$a_type);
75 return self::$instances[
$a_type][$a_obj_id];
86 $this->obj_id = $a_val;
106 $this->languages = $a_val;
139 foreach($this->languages as $k => $v)
141 if($v[
"lang_default"])
147 return $lng->getDefaultLanguage();
159 function addLanguage($a_lang, $a_title, $a_description, $a_default, $a_force =
false)
161 if ($a_lang !=
"" && (!isset($this->languages[$a_lang]) || $a_force))
165 foreach ($this->languages as $k =>
$l)
167 $this->languages[$k][
"lang_default"] =
false;
170 $this->languages[$a_lang] =
array(
"lang_code" => $a_lang,
"lang_default" => $a_default,
171 "title" => $a_title,
"description" => $a_description);
182 foreach ($this->languages as
$l)
184 if ($l[
"lang_default"])
199 foreach ($this->languages as $k =>
$l)
201 if (
$l[
"lang_default"])
203 $this->languages[$k][
"title"] = $a_title;
215 foreach ($this->languages as
$l)
217 if ($l[
"lang_default"])
219 return $l[
"description"];
232 foreach ($this->languages as $k =>
$l)
234 if (
$l[
"lang_default"])
236 $this->languages[$k][
"description"] = $a_description;
251 unset($this->languages[$a_lang]);
261 $set = $this->db->query(
"SELECT * FROM il_translations ".
262 " WHERE id = ".$this->db->quote($this->getObjId(),
"integer") .
263 " AND id_type = " . $this->db->quote($this->getType(),
"text")
265 while ($rec = $this->db->fetchAssoc($set))
267 $this->
addLanguage($rec[
"lang_code"], $rec[
"title"], $rec[
"description"], $rec[
"lang_default"]);
276 $this->db->manipulate(
"DELETE FROM il_translations ".
277 " WHERE id = ".$this->db->quote($this->getObjId(),
"integer").
278 " AND id_type = " . $this->db->quote($this->getType(),
"text")
291 $this->db->manipulate(
$t =
"INSERT INTO il_translations ".
292 "(id, id_type, title, description, lang_code, lang_default) VALUES (".
293 $this->db->quote($this->getObjId(),
"integer").
",".
294 $this->db->quote($this->getType(),
"text").
",".
295 $this->db->quote($trans[
"title"],
"text").
",".
296 $this->db->quote($trans[
"description"],
"text").
",".
297 $this->db->quote($l,
"text").
",".
298 $this->db->quote($trans[
"lang_default"],
"integer").
312 $target_ml =
new self($a_obj_id, $this->
getType());
331 $writer->
xmlStartTag(
'translation',
array(
'language' => $k,
'default' => $v[
'lang_default'] ? 1 : 0));
349 if($root->translations)
351 $root = $root->translations;
354 foreach($root->translation as $trans)
357 (
string)trim($trans[
"language"]),
358 (
string)trim($trans->title),
359 (
string)trim($trans->description),
360 (
int)$trans[
"default"] != 0?
true:
false static getInstance($a_obj_id, $a_type)
Get instance.
toXml(ilXmlWriter $writer)
Export.
setLanguages(array $a_val)
Set languages.
fromXML(SimpleXMLElement $root)
xml import
xmlStartTag($tag, $attrs=NULL, $empty=FALSE, $encode=TRUE, $escape=TRUE)
Writes a starttag.
Base exception class for object service.
xmlElement($tag, $attrs=NULL, $data=Null, $encode=TRUE, $escape=TRUE)
Writes a basic element (no children, just textual content)
setDefaultDescription($a_description)
Set default description.
getDefaultTitle()
Get default title.
xmlEndTag($tag)
Writes an endtag.
setObjId($a_val)
Set object id.
getDefaultDescription()
Get default description.
Create styles array
The data for the language used.
getLanguages()
Get languages.
removeLanguage($a_lang)
Remove language.
setDefaultTitle($a_title)
Set default title.
__construct($a_obj_id, $a_type)
Constructor.
copy($a_obj_id)
Copy multilinguality settings.
Class handles translation mode for an object.
addLanguage($a_lang, $a_title, $a_description, $a_default, $a_force=false)
Add language.