55 include_once(
"./Services/Object/exceptions/class.ilObjectException.php");
70 if (!isset(self::$instances[$a_obj_id])) {
74 return self::$instances[$a_obj_id];
85 $this->obj_id = $a_val;
105 $this->master_lang = $a_val;
125 $this->languages = $a_val;
146 public function addLanguage($a_lang, $a_title, $a_description, $a_default, $a_force =
false)
148 if ($a_lang !=
"" && (!isset($this->languages[$a_lang]) || $a_force)) {
150 foreach ($this->languages as $k =>
$l) {
151 $this->languages[$k][
"lang_default"] =
false;
154 $this->languages[$a_lang] = array(
"lang_code" => $a_lang,
"lang_default" => $a_default,
155 "title" => $a_title,
"description" => $a_description);
166 foreach ($this->languages as
$l) {
167 if (
$l[
"lang_default"]) {
181 foreach ($this->languages as $k =>
$l) {
182 if (
$l[
"lang_default"]) {
183 $this->languages[$k][
"title"] = $a_title;
195 foreach ($this->languages as
$l) {
196 if (
$l[
"lang_default"]) {
197 return $l[
"description"];
210 foreach ($this->languages as $k =>
$l) {
211 if (
$l[
"lang_default"]) {
212 $this->languages[$k][
"description"] = $a_description;
226 unset($this->languages[$a_lang]);
238 $this->content_activated = $a_val;
256 $set = $this->db->query(
257 "SELECT * FROM obj_content_master_lng " .
258 " WHERE obj_id = " . $this->db->quote($this->getObjId(),
"integer")
260 if ($rec = $this->db->fetchAssoc($set)) {
268 $set = $this->db->query(
269 "SELECT * FROM object_translation " .
270 " WHERE obj_id = " . $this->db->quote($this->getObjId(),
"integer")
272 while ($rec = $this->db->fetchAssoc($set)) {
273 $this->
addLanguage($rec[
"lang_code"], $rec[
"title"], $rec[
"description"], $rec[
"lang_default"]);
280 public function delete()
282 $this->db->manipulate(
283 "DELETE FROM obj_content_master_lng " .
284 " WHERE obj_id = " . $this->db->quote($this->getObjId(),
"integer")
286 $this->db->manipulate(
287 "DELETE FROM object_translation " .
288 " WHERE obj_id = " . $this->db->quote($this->getObjId(),
"integer")
297 $this->db->manipulate(
298 "DELETE FROM obj_content_master_lng " .
299 " WHERE obj_id = " . $this->db->quote($this->getObjId(),
"integer")
311 $this->db->manipulate(
"INSERT INTO obj_content_master_lng " .
312 "(obj_id, master_lang) VALUES (" .
313 $this->db->quote($this->getObjId(),
"integer") .
"," .
320 "description" =>
"",
"lang_code" => $this->
getMasterLanguage(),
"lang_default" => 1);
322 foreach ($this->languages as
$l => $trans) {
324 $this->languages[
$l][
"lang_default"] = 1;
326 $this->languages[
$l][
"lang_default"] = 0;
332 $this->db->manipulate(
$t =
"INSERT INTO object_translation " .
333 "(obj_id, title, description, lang_code, lang_default) VALUES (" .
334 $this->db->quote($this->getObjId(),
"integer") .
"," .
335 $this->db->quote($trans[
"title"],
"text") .
"," .
336 $this->db->quote($trans[
"description"],
"text") .
"," .
337 $this->db->quote(
$l,
"text") .
"," .
338 $this->db->quote($trans[
"lang_default"],
"integer") .
350 public function copy($a_obj_id)
374 isset($langs[$a_lang]) &&
An exception for terminatinating execution or to throw for unit testing.
Base exception class for object service.
Class handles translation mode for an object.
getDefaultTitle()
Get default title.
deactivateContentTranslation()
Deactivate content translation.
getDefaultDescription()
Get default description.
getEffectiveContentLang($a_lang, $a_parent_type)
Get effective language for given language.
copy($a_obj_id)
Copy multilinguality settings.
addLanguage($a_lang, $a_title, $a_description, $a_default, $a_force=false)
Add language.
removeLanguage($a_lang)
Remove language.
setDefaultDescription($a_description)
Set default description.
getLanguages()
Get languages.
setLanguages(array $a_val)
Set languages.
setObjId($a_val)
Set object id.
setDefaultTitle($a_title)
Set default title.
setMasterLanguage($a_val)
Set master language.
__construct($a_obj_id)
Constructor.
static getInstance($a_obj_id)
Get instance.
getContentActivated()
Get activated for content.
setContentActivated($a_val)
Set activated for content.
getMasterLanguage()
Get master language.
static _exists($a_parent_type, $a_id, $a_lang="", $a_no_cache=false)
Checks whether page exists.