99         function ilObject($a_id = 0, $a_reference = 
true)
 
  103                 $ilBench->start(
"Core", 
"ilObject_Constructor");
 
  107                         echo 
"<br/><font color=\"red\">type(".$this->type.
") id(".$a_id.
") referenced(".$a_reference.
")</font>";
 
  115                 $this->add_dots = 
true;
 
  117                 $this->referenced = $a_reference;
 
  118                 $this->call_by_reference = $a_reference;
 
  122                         $this->referenced = 
false;              
 
  125                 if ($this->referenced)
 
  127                         $this->ref_id = $a_id;
 
  139                 $ilBench->stop(
"Core", 
"ilObject_Constructor");
 
  157         function read($a_force_db = 
false)
 
  161                 $ilBench->start(
"Core", 
"ilObject_read");
 
  162                 if (isset($this->obj_data_record) && !$a_force_db)
 
  166                 else if ($this->referenced)
 
  169                         if (!isset($this->ref_id))
 
  171                                 $message = 
"ilObject::read(): No ref_id given! (".$this->type.
")";
 
  172                                 $this->ilias->raiseError($message,$this->ilias->error_obj->WARNING);
 
  176                         $ilBench->start(
"Core", 
"ilObject_read_readData");
 
  178                         $q = 
"SELECT * FROM object_data, object_reference WHERE object_data.obj_id=object_reference.obj_id ".
 
  179                                  "AND object_reference.ref_id= ".$ilDB->quote($this->ref_id, 
"integer");
 
  180                         $object_set = $ilDB->query($q);
 
  181                         $ilBench->stop(
"Core", 
"ilObject_read_readData");
 
  184                         if ($ilDB->numRows($object_set) == 0)
 
  186                                 $message = 
"ilObject::read(): Object with ref_id ".$this->ref_id.
" not found! (".$this->type.
")";
 
  187                                 $this->ilias->raiseError($message,$this->ilias->error_obj->WARNING);
 
  190                         $obj = $ilDB->fetchAssoc($object_set);
 
  195                         if (!isset($this->
id))
 
  197                                 $message = 
"ilObject::read(): No obj_id given! (".$this->type.
")";
 
  198                                 $this->ilias->raiseError($message,$this->ilias->error_obj->WARNING);
 
  202                         $q = 
"SELECT * FROM object_data ".
 
  203                                  "WHERE obj_id = ".$ilDB->quote($this->
id, 
"integer");
 
  204                         $object_set = $ilDB->query($q);
 
  207                         if ($ilDB->numRows($object_set) == 0)
 
  209                                 include_once(
"./Services/Object/exceptions/class.ilObjectNotFoundException.php");
 
  211                                         " (".$this->type.
") not found!");
 
  215                         $obj = $ilDB->fetchAssoc($object_set);
 
  218                 $this->
id = $obj[
"obj_id"];
 
  221                 if ($this->type != $obj[
"type"] && $obj[
"type"] != 
"xxx")
 
  223                         $message = 
"ilObject::read(): Type mismatch. Object with obj_id: ".$this->id.
" ".
 
  224                                 "was instantiated by type '".$this->type.
"'. DB type is: ".$obj[
"type"];
 
  227                         $log->write($message);
 
  230                         include_once(
"./Services/Object/exceptions/class.ilObjectTypeMismatchException.php");
 
  235                 $this->type = $obj[
"type"];
 
  236                 $this->title = $obj[
"title"];
 
  238                 $this->untranslatedTitle = $obj[
"title"];
 
  240                 $this->desc = $obj[
"description"];
 
  241                 $this->owner = $obj[
"owner"];
 
  242                 $this->create_date = $obj[
"create_date"];
 
  243                 $this->last_update = $obj[
"last_update"];
 
  244                 $this->import_id = $obj[
"import_id"];
 
  246                 if($objDefinition->isRBACObject($this->getType()))
 
  249                         $query = 
"SELECT * FROM object_description WHERE obj_id = ".$ilDB->quote($this->
id,
'integer');
 
  253                                 if(strlen(
$row->description))
 
  261                 $ilBench->start(
"Core", 
"ilObject_Constructor_getTranslation");
 
  262                 $translation_type = $objDefinition->getTranslationType($this->type);
 
  264                 if ($translation_type == 
"sys")
 
  266                         $this->title = $this->lng->txt(
"obj_".$this->type);
 
  267                         $this->
setDescription($this->lng->txt(
"obj_".$this->type.
"_desc"));
 
  269                 elseif ($translation_type == 
"db")
 
  271                         $q = 
"SELECT title,description FROM object_translation ".
 
  272                                  "WHERE obj_id = ".$ilDB->quote($this->
id,
'integer').
" ".
 
  273                                  "AND lang_code = ".$ilDB->quote($this->ilias->account->getCurrentLanguage(),
'text').
" ".
 
  274                                  "AND NOT lang_default = 1";
 
  275                         $r = $this->ilias->db->query($q);
 
  279                                 $this->title = 
$row->title;
 
  281                                 #$this->desc = $row->description; 
  285                 $ilBench->stop(
"Core", 
"ilObject_Constructor_getTranslation");
 
  287                 $ilBench->stop(
"Core", 
"ilObject_read");
 
  317                 $this->ref_id = $a_id;
 
  318                 $this->referenced = 
true;
 
  348                 $this->type = $a_type;
 
  423                 $this->long_desc = $a_desc;
 
  436                 return strlen($this->long_desc) ? $this->long_desc : 
$this->desc;
 
  458                 $this->import_id = $a_import_id;
 
  465                 $query = 
"SELECT * FROM object_data ".
 
  466                         "WHERE import_id = ".$ilDB->quote($a_import_id, 
"text").
" ".
 
  467                         "ORDER BY create_date DESC";
 
  469                 while(
$row = $ilDB->fetchObject(
$res))
 
  505                 if ($a_owner_id != -1)
 
  515                         $own_name = 
$owner->getFullname();
 
  519                         $own_name = $lng->txt(
"unknown");
 
  533                 $this->owner = $a_owner;
 
  585                 $this->obj_data_record = $a_record;
 
  600                 if (!isset($this->type))
 
  602                         $message = get_class($this).
"::create(): No object type given!";
 
  603                         $this->ilias->raiseError($message,$this->ilias->error_obj->WARNING);
 
  607                 $log->write(
"ilObject::create(), start");
 
  617                 elseif(is_object($ilUser))
 
  619                         $owner = $ilUser->getId();
 
  625                 $this->
id = $ilDB->nextId(
"object_data");
 
  626                 $q = 
"INSERT INTO object_data ".
 
  627                          "(obj_id,type,title,description,owner,create_date,last_update,import_id) ".
 
  630                          $ilDB->quote($this->
id, 
"integer").
",".
 
  631                          $ilDB->quote($this->type, 
"text").
",".
 
  632                          $ilDB->quote($this->
getTitle(), 
"text").
",".
 
  634                          $ilDB->quote(
$owner, 
"integer").
",".
 
  639                 $ilDB->manipulate($q);
 
  645                 if($objDefinition->isRBACObject($this->getType()))
 
  648                                 'obj_id'                => array(
'integer',$this->
id),
 
  651                         $ilDB->insert(
'object_description',$values);
 
  658                 $q = 
"SELECT last_update, create_date FROM object_data".
 
  659                          " WHERE obj_id = ".$ilDB->quote($this->
id, 
"integer");
 
  660                 $obj_set = $ilDB->query($q);
 
  661                 $obj_rec = $ilDB->fetchAssoc($obj_set);
 
  662                 $this->last_update = $obj_rec[
"last_update"];
 
  663                 $this->create_date = $obj_rec[
"create_date"];
 
  669                 $log->write(
"ilObject::create(), finished, obj_id: ".$this->
id.
", type: ".
 
  670                         $this->type.
", title: ".$this->getTitle());
 
  672                 $GLOBALS[
'ilAppEventHandler']->raise(
 
  675                         array(
'obj_id' => $this->
id,
'obj_type' => $this->type));
 
  688                 global $objDefinition, $ilDB;
 
  690                 $q = 
"UPDATE object_data ".
 
  692                         "title = ".$ilDB->quote($this->
getTitle(), 
"text").
",".
 
  693                         "description = ".$ilDB->quote($this->
getDescription(), 
"text").
", ".
 
  694                         "import_id = ".$ilDB->quote($this->
getImportId(), 
"text").
",".
 
  695                         "last_update = ".$ilDB->now().
" ".
 
  696                         "WHERE obj_id = ".$ilDB->quote($this->
getId(), 
"integer");
 
  697                 $ilDB->manipulate($q);
 
  702                 $q = 
"SELECT last_update FROM object_data".
 
  703                          " WHERE obj_id = ".$ilDB->quote($this->
getId(), 
"integer");
 
  704                 $obj_set = $ilDB->query($q);
 
  705                 $obj_rec = $ilDB->fetchAssoc($obj_set);
 
  706                 $this->last_update = $obj_rec[
"last_update"];
 
  708                 if($objDefinition->isRBACObject($this->getType()))
 
  711                         $res = $this->ilias->db->query(
"SELECT * FROM object_description WHERE obj_id = ".
 
  712                                 $ilDB->quote($this->getId(),
'integer'));
 
  718                                 $ilDB->update(
'object_description',$values,array(
'obj_id' => array(
'integer',$this->
getId())));
 
  724                                         'obj_id'                => array(
'integer',$this->
getId()));
 
  725                                 $ilDB->insert(
'object_description',$values);
 
  728                 $GLOBALS[
'ilAppEventHandler']->raise(
 
  731                         array(
'obj_id' => $this->
getId(),
 
  732                                 'obj_type' => $this->
getType(),
 
  751                 include_once 
'Services/MetaData/classes/class.ilMD.php';
 
  753                 $GLOBALS[
'ilAppEventHandler']->raise(
 
  756                         array(
'obj_id' => $this->
getId(),
 
  757                                 'obj_type' => $this->
getType(),
 
  766                                 if(!is_object($md_gen = $md->getGeneral()))
 
  770                                 $this->
setTitle($md_gen->getTitle());
 
  772                                 foreach($md_gen->getDescriptionIds() as 
$id)
 
  774                                         $md_des = $md_gen->getDescription(
$id);
 
  792                 include_once 
'Services/MetaData/classes/class.ilMDCreator.php';
 
  797                 $md_creator->setTitle($this->
getTitle());
 
  798                 $md_creator->setTitleLanguage($ilUser->getPref(
'language'));
 
  800                 $md_creator->setDescriptionLanguage($ilUser->getPref(
'language'));
 
  801                 $md_creator->setKeywordLanguage($ilUser->getPref(
'language'));
 
  802                 $md_creator->setLanguage($ilUser->getPref(
'language'));
 
  803                 $md_creator->create();
 
  813                 include_once(
"Services/MetaData/classes/class.ilMD.php");
 
  814                 include_once(
"Services/MetaData/classes/class.ilMDGeneral.php");
 
  815                 include_once(
"Services/MetaData/classes/class.ilMDDescription.php");
 
  818                 $md_gen =& $md->getGeneral();
 
  824                         $md_gen =& $md->getGeneral();
 
  827                 $md_gen->setTitle($this->
getTitle());
 
  830                 $md_des_ids =& $md_gen->getDescriptionIds();
 
  831                 if (count($md_des_ids) > 0)
 
  833                         $md_des =& $md_gen->getDescription($md_des_ids[0]);
 
  847                 include_once(
'Services/MetaData/classes/class.ilMD.php');
 
  862         $q = 
"UPDATE object_data ".
 
  864             "owner = ".$ilDB->quote($this->
getOwner(), 
"integer").
", ".
 
  865             "last_update = ".$ilDB->now().
" ".
 
  866             "WHERE obj_id = ".$ilDB->quote($this->
getId(), 
"integer");
 
  867         $ilDB->manipulate($q);
 
  869         $q = 
"SELECT last_update FROM object_data".
 
  870              " WHERE obj_id = ".$ilDB->quote($this->
getId(), 
"integer");
 
  871         $obj_set = $ilDB->query($q);
 
  872         $obj_rec = $ilDB->fetchAssoc($obj_set);
 
  873         $this->last_update = $obj_rec[
"last_update"];
 
  889                 $ilDB->setLimit(1,0);
 
  890                 $q = 
"SELECT * FROM object_data WHERE import_id = ".$ilDB->quote($a_import_id, 
"text").
 
  891                         " ORDER BY create_date DESC";
 
  892                 $obj_set = $ilDB->query($q);
 
  894                 if ($obj_rec = $ilDB->fetchAssoc($obj_set))
 
  896                         return $obj_rec[
"obj_id"];
 
  913                 $query = 
"SELECT * FROM object_reference WHERE obj_id = ".
 
  914                         $ilDB->quote($a_id,
'integer');
 
  918                 while($obj_rec = $ilDB->fetchAssoc(
$res))
 
  920                         $ref[$obj_rec[
"ref_id"]] = $obj_rec[
"ref_id"];
 
  933                 global $ilObjDataCache;
 
  935                 $tit = $ilObjDataCache->lookupTitle($a_id);
 
  947                 global $ilObjDataCache;
 
  949                 $owner = $ilObjDataCache->lookupOwner($a_id);
 
  958                         ? 
"SELECT obj_id FROM object_data WHERE title = ".$ilDB->quote(
$title, 
"text")
 
  959                         : 
"SELECT obj_id FROM object_data WHERE ".$ilDB->like(
"title", 
"text", 
'%'.
$title.
'%');
 
  962                         $query .= 
" AND type = ".$ilDB->quote(
$type, 
"text");
 
  967                 $object_ids = array();
 
  970                         $object_ids[] = 
$row[
'obj_id'];
 
  973                 return is_array($object_ids) ? $object_ids : array();
 
  983                 global $ilObjDataCache;
 
  985                 return $ilObjDataCache->lookupDescription($a_id);
 
  995                 global $ilObjDataCache;
 
 1003                         return $ilObjDataCache->lookupLastUpdate($a_id);
 
 1016                 if (!is_array($a_objs))
 
 1018                         $a_objs = array($a_objs);
 
 1021                 $set = $ilDB->query(
"SELECT max(last_update) as last_update FROM object_data ".
 
 1022                         "WHERE ".$ilDB->in(
"obj_id", $a_objs, 
false, 
"integer").
" ");
 
 1023                 $rec = $ilDB->fetchAssoc($set);
 
 1025                 return ($rec[
"last_update"]);
 
 1030                 global $ilObjDataCache;
 
 1032                 return (
int) $ilObjDataCache->lookupObjId($a_id);
 
 1042                 $query = 
"UPDATE object_reference SET deleted= ".$ilDB->now().
' '.
 
 1043                         "WHERE ref_id = ".$ilDB->quote($a_ref_id,
'integer');
 
 1057                 $query = 
'UPDATE object_reference SET deleted = '.$ilDB->now().
' '.
 
 1058                                 'WHERE '.$ilDB->in(
'ref_id',(array) $a_ref_ids,
false,
'integer');
 
 1061                 $ilDB->manipulate(
$query);
 
 1072                 $query = 
"UPDATE object_reference SET deleted = ".$ilDB->quote(null,
'timestamp').
 
 1073                         " WHERE ref_id = ".$ilDB->quote($a_ref_id,
'integer');
 
 1084                 $query = 
"SELECT deleted FROM object_reference".
 
 1085                         " WHERE ref_id = ".$ilDB->quote($a_ref_id, 
"integer");
 
 1086                 $set = $ilDB->query(
$query);
 
 1087                 $rec = $ilDB->fetchAssoc($set);
 
 1089                 return $rec[
"deleted"];
 
 1104                 $q = 
"UPDATE object_data ".
 
 1106                         "title = ".$ilDB->quote($a_title, 
"text").
",".
 
 1107                         "last_update = ".$ilDB->now().
" ".
 
 1108                         "WHERE obj_id = ".$ilDB->quote($a_obj_id, 
"integer");
 
 1110                 $ilDB->manipulate($q);
 
 1122                 global $ilDB,$objDefinition;
 
 1127                 $q = 
"UPDATE object_data ".
 
 1129                         "description = ".$ilDB->quote(
$desc, 
"text").
",".
 
 1130                         "last_update = ".$ilDB->now().
" ".
 
 1131                         "WHERE obj_id = ".$ilDB->quote($a_obj_id, 
"integer");
 
 1133                 $ilDB->manipulate($q);
 
 1135                 if($objDefinition->isRBACObject($this->getType()))
 
 1138                         $res = $ilDB->query(
"SELECT * FROM object_description WHERE obj_id = ".
 
 1139                                 $ilDB->quote($a_obj_id,
'integer'));
 
 1146                                 $ilDB->update(
'object_description',$values,array(
'obj_id' => array(
'integer',$this->
getId())));
 
 1152                                         'obj_id'                => array(
'integer',$this->
getId()));
 
 1153                                 $ilDB->insert(
'object_description',$values);
 
 1169                 $q = 
"UPDATE object_data ".
 
 1171                         "import_id = ".$ilDB->quote($a_import_id, 
"text").
",".
 
 1172                         "last_update = ".$ilDB->now().
" ".
 
 1173                         "WHERE obj_id = ".$ilDB->quote($a_obj_id, 
"integer");
 
 1175                 $ilDB->manipulate($q);
 
 1185                 global $ilObjDataCache;
 
 1189                         return $ilObjDataCache->lookupType($ilObjDataCache->lookupObjId($a_id));
 
 1191                 return $ilObjDataCache->lookupType($a_id);
 
 1201                 return $tree->isSaved($a_ref_id);
 
 1228                 global $ilObjDataCache;
 
 1230                 return (
int) $ilObjDataCache->lookupObjId($a_ref_id);
 
 1247                 $q = 
"SELECT * FROM object_data WHERE type = ".$ilDB->quote($a_type, 
"text");
 
 1248                 $obj_set = $ilDB->query($q);
 
 1251                 while ($obj_rec = $ilDB->fetchAssoc($obj_set))
 
 1255                                 $objects[$obj_rec[
"title"].
".".$obj_rec[
"obj_id"]] = array(
"id" => $obj_rec[
"obj_id"],
 
 1256                                         "type" => $obj_rec[
"type"], 
"title" => $obj_rec[
"title"],
 
 1257                                         "description" => $obj_rec[
"description"]);
 
 1273                 $tree->insertNode($this->
getRefId(), $a_parent_ref);
 
 1276                 $log->write(
"ilObject::putInTree(), parent_ref: $a_parent_ref, ref_id: ".
 
 1290                 global $rbacadmin, $rbacreview;
 
 1292                 $parentRoles = $rbacreview->getParentRoleIds($a_parent_ref);
 
 1294                 foreach ($parentRoles as $parRol)
 
 1296                         $ops = $rbacreview->getOperationsOfRole($parRol[
"obj_id"], $this->
getType(), $parRol[
"parent"]);
 
 1297                         $rbacadmin->grantPermission($parRol[
"obj_id"], $ops, $this->
getRefId());
 
 1313                 if (!isset($this->
id))
 
 1315                         $message = 
"ilObject::createNewReference(): No obj_id given!";
 
 1316                         $this->raiseError($message,$this->ilias->error_obj->WARNING);
 
 1319                 $next_id = $ilDB->nextId(
'object_reference');
 
 1320                 $query = 
"INSERT INTO object_reference ".
 
 1321                          "(ref_id, obj_id) VALUES (".$ilDB->quote($next_id,
'integer').
','.$ilDB->quote($this->
id ,
'integer').
")";
 
 1322                 $this->ilias->db->query(
$query);
 
 1324                 $this->ref_id = $next_id;
 
 1325                 $this->referenced = 
true;
 
 1341                 if (!isset($this->
id))
 
 1343                         $message = 
"ilObject::countReferences(): No obj_id given!";
 
 1344                         $this->ilias->raiseError($message,$this->ilias->error_obj->WARNING);
 
 1347                 $query = 
"SELECT COUNT(ref_id) num FROM object_reference ".
 
 1348                         "WHERE obj_id = ".$ilDB->quote($this->
id,
'integer').
" ";
 
 1369                 global $rbacadmin, 
$log, $ilDB;
 
 1378                         if ($this->type != $db_type)
 
 1380                                 $message = 
"ilObject::delete(): Type mismatch. Object with obj_id: ".$this->id.
" ".
 
 1381                                         "was instantiated by type '".$this->type.
"'. DB type is: ".$db_type;
 
 1384                                 $log->write($message);
 
 1387                                 $this->ilias->raiseError(
"ilObject::delete(): Type mismatch. (".$this->type.
"/".$this->id.
")",$this->ilias->error_obj->WARNING);
 
 1391                         $q = 
"DELETE FROM object_data ".
 
 1392                                 "WHERE obj_id = ".$ilDB->quote($this->
getId(), 
"integer");
 
 1393                         $ilDB->manipulate($q);
 
 1396                         $query = 
"DELETE FROM object_description WHERE obj_id = ".
 
 1397                                 $ilDB->quote($this->
getId(), 
"integer");
 
 1398                         $ilDB->manipulate(
$query);
 
 1401                         $log->write(
"ilObject::delete(), deleted object, obj_id: ".$this->
getId().
", type: ".
 
 1405                         include_once(
"./Services/News/classes/class.ilNewsItem.php");
 
 1407                         $news_item->deleteNewsOfContext($this->
getId(), $this->
getType());
 
 1408                         include_once(
"./Services/Block/classes/class.ilBlockSetting.php");
 
 1411                         include_once 
'./Services/DidacticTemplate/classes/class.ilDidacticTemplateObjSettings.php';
 
 1427                         $query = 
"DELETE FROM dav_property ".
 
 1428                                 "WHERE obj_id = ".$ilDB->quote($this->
getId(),
'integer');
 
 1432                         include_once 
'./Services/WebServices/ECS/classes/class.ilECSImport.php';
 
 1440                         $log->write(
"ilObject::delete(), object not deleted, number of references: ".
 
 1446                 if ($this->referenced)
 
 1448                         include_once 
"Services/Object/classes/class.ilObjectActivation.php";
 
 1452                         $query = 
"DELETE FROM object_reference ".
 
 1453                                 "WHERE ref_id = ".$ilDB->quote($this->
getRefId(),
'integer');
 
 1457                         $log->write(
"ilObject::delete(), reference deleted, ref_id: ".$this->
getRefId().
 
 1458                                 ", obj_id: ".$this->
getId().
", type: ".
 
 1465                         $rbacadmin->revokePermission($this->
getRefId(),0,
false);
 
 1467                         include_once 
"Services/AccessControl/classes/class.ilRbacLog.php";
 
 1471                         include_once 
'./Services/DidacticTemplate/classes/class.ilDidacticTemplateObjSettings.php';
 
 1479                 if ($this->referenced)
 
 1517                 if ($rolf_data = $rbacreview->getRoleFolderofObject($this->getRefId()))
 
 1519                         $rfoldObj = $this->ilias->obj_factory->getInstanceByRefId($rolf_data[
"ref_id"]);
 
 1523                         include_once (
"./Services/AccessControl/classes/class.ilObjRoleFolder.php");
 
 1525                         $rfoldObj->setTitle($this->
getId());
 
 1526                         $rfoldObj->setDescription(
" (ref_id ".$this->
getRefId().
")");
 
 1527                         $rfoldObj->create();
 
 1528                         $rfoldObj->createReference();
 
 1529                         $rfoldObj->putInTree($this->
getRefId());
 
 1530                         $rfoldObj->setPermissions($this->
getRefId());
 
 1547                 include_once 
'./Services/DidacticTemplate/classes/class.ilDidacticTemplateObjSettings.php';
 
 1550                 include_once 
'./Services/DidacticTemplate/classes/class.ilDidacticTemplateActionFactory.php';
 
 1553                         $action->setRefId($this->
getRefId());
 
 1567         public static function _exists($a_id, $a_reference = 
false, $a_type = null)
 
 1573                         $q = 
"SELECT * FROM object_data ".
 
 1574                                  "LEFT JOIN object_reference ON object_reference.obj_id=object_data.obj_id ".
 
 1575                                  "WHERE object_reference.ref_id= ".$ilDB->quote($a_id, 
"integer");
 
 1579                         $q = 
"SELECT * FROM object_data WHERE obj_id=".$ilDB->quote($a_id, 
"integer");
 
 1583                         $q .= 
" AND object_data.type = ".$ilDB->quote($a_type, 
"text");
 
 1585                 $r = $ilDB->query($q);
 
 1587                 return $ilDB->numRows($r) ? 
true : 
false;
 
 1602         function notify($a_event,$a_ref_id,$a_parent_non_rbac_id,$a_node_id,$a_params = 0)
 
 1606                 $parent_id = (int) $tree->getParentId($a_node_id);
 
 1608                 if ($parent_id != 0)
 
 1610                         $obj_data =& $this->ilias->obj_factory->getInstanceByRefId($a_node_id);
 
 1611                         $obj_data->notify($a_event,$a_ref_id,$a_parent_non_rbac_id,$parent_id,$a_params);
 
 1620                 $this->
register = (bool) $a_bool;
 
 1652                 $order = 
" ORDER BY title";
 
 1657                         $where_clause = 
"WHERE type = ".
 
 1658                                 $ilDB->quote($a_obj_type, 
"text");
 
 1662                                 $where_clause.= 
" AND owner = ".$ilDB->quote($a_owner, 
"integer");
 
 1666                 $q = 
"SELECT * FROM object_data ".$where_clause.$order;
 
 1667                 $r = $ilDB->query($q);
 
 1670                 if ($ilDB->numRows($r) > 0)
 
 1672                         while (
$row = $ilDB->fetchAssoc($r))
 
 1674                                 $row[
"desc"] = 
$row[
"description"];
 
 1692                 global $ilDB,
$lng,$objDefinition;
 
 1694                 $query = 
"SELECT obj_data.title obj_title,path_data.title path_title,child FROM tree ".
 
 1695                         "JOIN object_reference obj_ref ON child = obj_ref.ref_id ".
 
 1696                         "JOIN object_data obj_data ON obj_ref.obj_id = obj_data.obj_id ".
 
 1697                         "JOIN object_reference path_ref ON parent = path_ref.ref_id ".
 
 1698                         "JOIN object_data path_data ON path_ref.obj_id = path_data.obj_id ".
 
 1699                         "WHERE ".$ilDB->in(
"child", $a_ref_ids, 
false, 
"integer").
" ".
 
 1700                         "ORDER BY obj_data.title ";
 
 1703                 if (!$objDefinition->isPlugin($new_type))
 
 1705                         $options[0] = $lng->txt(
'obj_'.$new_type.
'_select');
 
 1709                         include_once(
"./Services/Component/classes/class.ilPlugin.php");
 
 1713                 while(
$row = $ilDB->fetchObject(
$res))
 
 1722                                 if(strlen(
$path = 
$row->path_title) > 40)
 
 1744         public function cloneObject($a_target_id,$a_copy_id = 0,$a_omit_tree = 
false)
 
 1746                 global $objDefinition,
$ilUser,$rbacadmin, $ilDB;
 
 1749                 $class_name = (
'ilObj'.$objDefinition->getClassName($this->
getType()));
 
 1761                 include_once(
$location.
"/class.".$class_name.
".php");
 
 1762                 $new_obj = 
new $class_name(0, 
false);
 
 1763                 $new_obj->setOwner($ilUser->getId());
 
 1764                 $new_obj->setTitle(
$title);
 
 1766                 $new_obj->setType($this->
getType());
 
 1768                 $new_obj->create(
true);
 
 1772                         $new_obj->createReference();
 
 1773                         $new_obj->putInTree($a_target_id);
 
 1774                         $new_obj->setPermissions($a_target_id);
 
 1780                                 $rbacadmin->copyLocalRoles($this->
getRefId(),$new_obj->getRefId());
 
 1784                 include_once(
'./Services/AdvancedMetaData/classes/class.ilAdvancedMDValues.php');
 
 1788                 $query = 
"INSERT INTO dav_property (obj_id,node_id,ns,name,value) ".
 
 1789                         "SELECT ".$ilDB->quote($new_obj->getId(),
'integer').
",node_id,ns,name,value ".
 
 1790                         "FROM dav_property ".
 
 1791                         "WHERE obj_id = ".$ilDB->quote($this->getId(),
'integer');
 
 1792                 $res = $ilDB->manipulate($query);
 
 1809                 include_once(
'Services/CopyWizard/classes/class.ilCopyWizardOptions.php');
 
 1811                 if(!$cp_options->isRootNode($this->getRefId()))
 
 1815                 $nodes = $tree->getChilds($a_target_id);
 
 1817                 $title_unique = 
false;
 
 1818                 require_once 
'Modules/File/classes/class.ilObjFileAccess.php';
 
 1821                 while(!$title_unique)
 
 1824                         foreach($nodes as $node)
 
 1826                                 if((
$title == $node[
'title']) and ($this->
getType() == $node[
'type']))
 
 1857                 include_once 
'./Services/AccessControl/classes/class.ilConditionHandler.php';
 
 1858                 include_once 
'./Services/CopyWizard/classes/class.ilCopyWizardOptions.php';
 
 1861                 $mappings = $cwo->getMappings();
 
 1864                 foreach($conditions as $con)
 
 1866                         if($mappings[$con[
'trigger_ref_id']])
 
 1873                                 $newCondition->setTargetRefId($a_target_id);
 
 1874                                 $newCondition->setTargetObjId($target_obj);
 
 1875                                 $newCondition->setTargetType($target_typ);
 
 1877                                 $trigger_ref = $mappings[$con[
'trigger_ref_id']];
 
 1881                                 $newCondition->setTriggerRefId($trigger_ref);
 
 1882                                 $newCondition->setTriggerObjId($trigger_obj);
 
 1883                                 $newCondition->setTriggerType($trigger_typ);
 
 1884                                 $newCondition->setOperator($con[
'operator']);
 
 1885                                 $newCondition->setValue($con[
'value']);
 
 1886                                 $newCondition->setReferenceHandlingType($con[
'ref_handling']);
 
 1887                                 $newCondition->setObligatory($con[
'obligatory']);
 
 1888                                 $newCondition->storeCondition();
 
 1892                 include_once 
'./Services/DidacticTemplate/classes/class.ilDidacticTemplateObjSettings.php';
 
 1896                         include_once 
'./Services/Object/classes/class.ilObjectFactory.php';
 
 1898                         $obj = $factory->getInstanceByRefId($a_target_id, FALSE);
 
 1901                                 $obj->applyDidacticTemplate($tpl_id);
 
 1916                 include_once 
"./Services/MetaData/classes/class.ilMD.php";
 
 1918                 $md->cloneMD($target_obj->getId(),0,$target_obj->getType());
 
 1930         public static function _getIcon($a_obj_id = 
"", $a_size = 
"big", $a_type = 
"",
 
 1935                 if ($a_obj_id == 
"" && $a_type == 
"")
 
 1950                 if ($ilSetting->get(
"custom_icons") &&
 
 1951                         in_array($a_type, array(
"cat",
"grp",
"crs", 
"root", 
"fold")))
 
 1953                         require_once(
"./Services/Container/classes/class.ilContainer.php");
 
 1959                                 $file_name = $cont_dir.
"/icon_".$a_size.
".png";
 
 1960                                 if (is_file($file_name))
 
 1966                                 $file_name = $cont_dir.
"/icon_".$a_size.
".gif";
 
 1967                                 if (is_file($file_name))
 
 1976                         case "small": $suff = 
""; 
break;
 
 1977                         case "tiny": $suff = 
"_s"; 
break;
 
 1978                         default: $suff = 
"_b"; 
break;
 
 1982                         if ($objDefinition->isPluginTypeName($a_type))
 
 1984                                 $class_name = 
"il".$objDefinition->getClassName($a_type).
'Plugin';
 
 1985                                 $location = $objDefinition->getLocation($a_type);
 
 1986                                 include_once(
$location.
"/class.".$class_name.
".php");
 
 1987                                 return call_user_func(array($class_name, 
"_getIcon"), $a_type, $a_size, $a_obj_id);                                
 
 1993                         return "./images/icon_".$a_type.$suff.
".png";
 
 2005                 global $objDefinition, $tree;
 
 2009                         $deps[
"dep"] = array();
 
 2012                 $deps[
"del_ids"][$a_obj_id] = $a_obj_id;
 
 2014                 if (!$objDefinition->isPluginTypeName($a_type))
 
 2016                         $class_name = 
"ilObj".$objDefinition->getClassName($a_type);            
 
 2017                         $location = $objDefinition->getLocation($a_type);
 
 2018                         include_once(
$location.
"/class.".$class_name.
".php");
 
 2019                         $odeps = call_user_func(array($class_name, 
"getDeletionDependencies"), $a_obj_id);
 
 2020                         if (is_array($odeps))
 
 2022                                 foreach ($odeps as 
$id => $message)
 
 2024                                         $deps[
"dep"][
$id][$a_obj_id][] = $message;
 
 2029                         foreach ($tree->getChilds($a_ref_id) as $c)
 
 2038                         foreach ($deps[
"del_ids"] as $obj_id)
 
 2040                                 unset($deps[
"dep"][$obj_id]);
 
 2042                         $deps = $deps[
"dep"];
 
 2065                 $res = $ilDB->query(
"SELECT * FROM object_description".
 
 2066                         " WHERE ".$ilDB->in(
"obj_id", $a_obj_ids, 
"", 
"integer"));
 
 2068                 while(
$row = $ilDB->fetchAssoc(
$res))
 
 2070                         $all[
$row[
"obj_id"]] = $row[
"description"];
 
 2083                 global $ilDB, $objDefinition;
 
 2088                 $types = array_keys($objDefinition->getSubObjectsRecursively(
"root"));  
 
 2090                 $sql = 
"SELECT od.obj_id,od.type,od.title FROM object_data od";
 
 2094                         $sql .= 
" WHERE od.owner = ".$ilDB->quote($a_user_id, 
"integer");                               
 
 2098                         $sql .= 
" LEFT JOIN usr_data ud ON (ud.usr_id = od.owner)".
 
 2099                                 " WHERE (od.owner < ".$ilDB->quote(1, 
"integer").
 
 2100                                 " OR od.owner IS NULL OR ud.login IS NULL)".
 
 2101                                 " AND od.owner <> ".$ilDB->quote(-1, 
"integer");
 
 2104                 $sql .= 
" AND ".$ilDB->in(
"od.type", $types, 
"", 
"text");
 
 2106                 $res = $ilDB->query($sql);
 
 2107                 while(
$row = $ilDB->fetchAssoc(
$res))
 
 2109                         $all[
$row[
"type"]][
$row[
"obj_id"]] = $row[
"title"];
 
 2125                 $set = $ilDB->query(
"SELECT create_date FROM object_data ".
 
 2126                         " WHERE obj_id = ".$ilDB->quote($a_id, 
"integer"));
 
 2127                 $rec  = $ilDB->fetchAssoc($set);
 
 2128                 return $rec[
"create_date"];
 
 2143                         !in_array($a_type, array(
"file", 
"lm", 
"wiki")))
 
 2149                 $parent_ref_id = $tree->checkForParentType($a_ref_id, 
"grp");
 
 2152                         $parent_ref_id = $tree->checkForParentType($a_ref_id, 
"crs");
 
 2156                         include_once 
'./Services/Object/classes/class.ilObjectServiceSettingsGUI.php';