Public Member Functions

ilObjectFactory Class Reference

Public Member Functions

 ObjectIdExists ($a_obj_id)
 check if obj_id exists.
 getInstanceByObjId ($a_obj_id, $stop_on_error=true)
 get an instance of an Ilias object by object id
 getInstanceByRefId ($a_ref_id, $stop_on_error=true)
 get an instance of an Ilias object by reference id
 getTypeByRefId ($a_ref_id, $stop_on_error=true)
 get object type by reference id

Detailed Description

Definition at line 41 of file class.ilObjectFactory.php.


Member Function Documentation

ilObjectFactory::getInstanceByObjId ( a_obj_id,
stop_on_error = true 
)

get an instance of an Ilias object by object id

Parameters:
int $obj_id object id
Returns:
object instance of Ilias object (i.e. derived from ilObject)

Definition at line 67 of file class.ilObjectFactory.php.

References $class_name, $ilias, $module, $module_dir, $obj, $objDefinition, $q, and exit.

Referenced by ilRoleDesktopItem::__assign(), ilObjExercise::__formatRecipients(), ilSearchGUI::__formatUserResult(), ilPaymentBillAdminGUI::__initBillVendorData(), ilObjectGUIAdapter::__initGUIObject(), ilCourseMembers::__readSubscribers(), ilSearchGUI::__save(), ilLinkChecker::__sendMail(), ilObjExerciseGUI::__showMembersSelect(), ilObjCategoryGUI::__showRolesTable(), ilPaymentObjectGUI::__showVendorSelector(), ilSearch::__validateResults(), ilCourseMembers::_isMember(), ilCourseMembers::addDesktopItem(), ilPaymentStatisticGUI::addStatisticWorksheet(), ilObjPaymentSettingsGUI::addStatisticWorksheet(), ilObjCourseGUI::addUserObject(), ilObjPaymentSettingsGUI::addVendorWorksheet(), ilObjUserFolderGUI::appliedUsersObject(), ilExerciseMembers::assignMember(), ilObjCategoryGUI::assignRolesObject(), ilCourseMembers::assignSubscriber(), ilRbacAdmin::assignUser(), ilExerciseMembers::deassignMember(), ilObjCourseGUI::deleteMembers(), ilObjCourseGUI::deleteSubscribers(), ilSoapUserAdministration::deleteUser(), ilObjExerciseGUI::downloadAllObject(), ilCourseMembers::dropDesktopItem(), ilObjUserFolderGUI::editAppliedUsersObject(), ilObjCourseGUI::editMemberObject(), ilPaymentStatisticGUI::editStatistic(), ilObjPaymentSettingsGUI::editStatisticObject(), ilObjCourse::getDefaultAdminRole(), ilObjCourse::getDefaultMemberRole(), ilObjCourse::getDefaultTutorRole(), ilSoapUserAdministration::getUser(), ilForum::getUserData(), ilObjRoleGUI::listUsersGroupObject(), ilObjGroupGUI::listUsersGroupObject(), ilObjCourseGUI::listUsersGroupObject(), ilObjCategoryGUI::listUsersObject(), ilObjRoleGUI::listUsersRoleObject(), ilObjGroupGUI::listUsersRoleObject(), ilObjCourseGUI::listUsersRoleObject(), ilObjExerciseGUI::membersObject(), ilObjCourseGUI::membersObject(), ilObjCategoryGUI::performDeleteUsersObject(), ilPaymentTrusteeGUI::performSearch(), ilObjCourseGUI::printMembersObject(), ilObjPaymentSettingsGUI::searchObject(), ilObjRoleGUI::searchObject(), ilObjGroupGUI::searchObject(), ilObjCourseGUI::searchObject(), ilObjChat::sendMessage(), ilCourseMembers::sendNotification(), ilCourseMembers::sendNotificationToAdmins(), ilCourseMembers::sendUnsubscribeNotificationToAdmins(), ilPaymentBuyedObjectsGUI::showItems(), ilPaymentObjectGUI::showObjects(), ilPaymentStatisticGUI::showStatistics(), ilPaymentTrusteeGUI::showTrustees(), ilObjPaymentSettingsGUI::statisticObject(), ilCourseRegisterGUI::subscribe(), ilObjUserFolderGUI::updateAppliedUsersObject(), ilMailbox::updateMailsOfDeletedUser(), ilSoapUserAdministration::updateUser(), and ilObjPaymentSettingsGUI::vendorsObject().

        {
                global $ilias, $objDefinition;

                // check object id
                if (!isset($a_obj_id))
                {
                        $message = "ilObjectFactory::getInstanceByObjId(): No obj_id given!";
                        if ($stop_on_error === true)
                        {
                                $ilias->raiseError($message,$ilias->error_obj->WARNING);
                                exit();
                        }
                        #var_dump("<pre>",$message,"<pre>");

                        return false;
                }

                // read object data
                $q = "SELECT * FROM object_data ".
                         "WHERE obj_id = '".$a_obj_id."'";
                $object_set = $ilias->db->query($q);

                // check number of records
                if ($object_set->numRows() == 0)
                {
                        $message = "ilObjectFactory::getInstanceByObjId(): Object with obj_id: ".$a_obj_id." not found!";
                        if ($stop_on_error === true)
                        {
                                $ilias->raiseError($message,$ilias->error_obj->WARNING);
                                exit();
                        }
                        #var_dump("<pre>",$message,"<pre>");
                        return false;
                }

                $object_rec = $object_set->fetchRow(DB_FETCHMODE_ASSOC);
                $class_name = "ilObj".$objDefinition->getClassName($object_rec["type"]);
                
                // check class
                if ($class_name == "ilObj")
                {
                        $message = "ilObjectFactory::getInstanceByObjId(): Not able to determine object ".
                                "class for type".$object_rec["type"].".";
                        if ($stop_on_error === true)
                        {
                                $ilias->raiseError($message,$ilias->error_obj->WARNING);
                                exit();
                        }
                        return false;
                }

                // get module
                $module = $objDefinition->getModule($object_rec["type"]);
                $module_dir = ($module == "")
                        ? ""
                        : $module."/";

                // create instance
                include_once($module_dir."classes/class.".$class_name.".php");
                $obj =& new $class_name(0, false);      // this avoids reading of data
                $obj->setId($a_obj_id);
                $obj->setObjDataRecord($object_rec);
                $obj->read();

                return $obj;
        }

Here is the caller graph for this function:

ilObjectFactory::getInstanceByRefId ( a_ref_id,
stop_on_error = true 
)

get an instance of an Ilias object by reference id

Parameters:
int $obj_id object id
Returns:
object instance of Ilias object (i.e. derived from ilObject)

Definition at line 142 of file class.ilObjectFactory.php.

References $class_name, $ilias, $module, $module_dir, $obj, $objDefinition, $q, and exit.

Referenced by ilCourseArchives::__addHTMLFiles(), ilCourseArchives::__addZipFiles(), ilCourseXMLWriter::__buildObject(), ilCourseArchives::__buildStructure(), ilSearchGUI::__formatDigiLibResult(), ilSearchGUI::__formatGroupResult(), ilSearchGUI::__formatLearningModuleResult(), ilForum::__formatMessage(), ilCourseObjectivesGUI::__getAllChapters(), ilCourseRegisterGUI::__getGroupingCourses(), ilObjExerciseGUI::__getMembersOfObject(), ilCourseRegisterGUI::__initCourseObject(), ilCourseObjectivesGUI::__initCourseObject(), ilObjectGUIAdapter::__initGUIObject(), ilSearchGUI::__save(), ilCourseContentInterface::__showLearningMaterials(), ilObjExerciseGUI::__showObjectSelect(), ilCourseContentInterface::__showOtherResources(), ilPurchaseBMFGUI::__showShoppingCart(), ilCourseContentInterface::__showTests(), ilSearch::_checkParentConditions(), ilChatServerCommunicator::_initObject(), ilConditionHandlerInterface::add(), ilPaymentObjectGUI::addPrice(), ilPaymentStatisticGUI::addStatisticWorksheet(), ilObjPaymentSettingsGUI::addStatisticWorksheet(), ilObjRoleGUI::askDeleteDesktopItemObject(), ilCourseObjectivesGUI::askDeleteLM(), ilConditionHandlerInterface::assign(), ilCourseObjectivesGUI::assignChapterSelect(), ilObjCourseGroupingGUI::assignCourse(), ilCourseObjectivesGUI::assignLM(), ilCourseObjectivesGUI::assignLMChapter(), ilCourseObjectivesGUI::assignLMSelect(), ilCourseObjectivesGUI::assignQuestion(), ilCourseObjectivesGUI::assignQuestionSelect(), ilCourseObjectivesGUI::assignTestSelect(), ilObjStyleSheetGUI::cancelObject(), ilCourseContentInterface::cci_edit(), ilCourseContentInterface::cci_init(), ilCourseContentInterface::cci_start_objects(), ilCourseContentInterface::cci_view(), ilCronWebResourceCheck::check(), ilRbacSystem::checkPreconditions(), ilConditionHandlerInterface::chi_init(), ilObjectGUI::clipboardObject(), ilObjectGUI::confirmedDeleteObject(), ilRepositoryGUI::copyChilds(), ilRepositoryGUI::copyObject(), ilRepositoryGUI::duplicate(), ilObjCourseGroupingGUI::edit(), ilPaymentObjectGUI::editDetails(), ilPaymentObjectGUI::editPrices(), ilCourseObjectivesGUI::editQuestionAssignment(), ilRepositoryGUI::executeCommand(), ilForum::generatePost(), ilForum::generateThread(), ilMail::getEmailsOfRecipients(), ilCourseObjectiveQuestion::getMaxPointsByObjective(), ilCourseObjectiveQuestion::getMaxPointsByTest(), ilPersonalDesktopGUI::getSelectedItemBlockHTML(), ilPaymentShoppingCart::getShoppingCart(), ilObjStyleSheetGUI::getTabs(), ilMail::getUserIds(), ilObjCourse::ilClone(), ilObjChat::ilClone(), ilConditionHandlerInterface::ilConditionHandlerInterface(), ilCourseContentInterface::ilCourseContentInterface(), ilForumExplorer::ilForumExplorer(), ilPaymentPurchaseGUI::ilPaymentPurchaseGUI(), ilRepositoryExplorer::isClickable(), ilCourseStart::isFullfilled(), ilRepositoryExplorer::isVisible(), ilRepositoryGUI::linkObject(), ilCourseObjectivesGUI::listAssignedLM(), ilConditionHandlerInterface::listConditions(), ilObjRoleGUI::listDesktopItemsObject(), ilObjCourseGUI::listStructureObject(), ilObjRoleGUI::listUsersGroupObject(), ilObjGroupGUI::listUsersGroupObject(), ilObjCourseGUI::listUsersGroupObject(), ilObjCourseGroupingGUI::otherSelectAssign(), ilObjDlBookGUI::properties(), ilCourseObjectiveResult::reset(), ilObjStyleSheetGUI::saveObject(), ilObjRoleGUI::searchObject(), ilObjGroupGUI::searchObject(), ilObjCourseGUI::searchObject(), ilObjCourseGroupingGUI::selectCourse(), ilObjCourseGUI::selectStarterObject(), ilObjDlBookGUI::showAbstract(), ilPaymentBillAdminGUI::showBillData(), ilRepositoryGUI::showCourses(), ilRepositoryGUI::showForums(), ilPaymentShoppingCartGUI::showItems(), ilPaymentBuyedObjectsGUI::showItems(), ilRepositoryGUI::showLinkResources(), ilWysiwygUtil::showMoveCopyQuestion(), ilPaymentObjectGUI::showObjects(), ilPaymentObjectGUI::showSelectedObject(), ilPaymentStatisticGUI::showStatistics(), ilObjDlBookGUI::showTranslationSelect(), ilObjPaymentSettingsGUI::statisticObject(), ilObjStyleSheetGUI::updateObject(), and ilConditionHandler::validate().

        {
                global $ilias, $objDefinition;

                // check reference id
                if (!isset($a_ref_id))
                {
                        if ($stop_on_error === true)
                        {
                                $message = "ilObjectFactory::getInstanceByRefId(): No ref_id given!";
                                $ilias->raiseError($message,$ilias->error_obj->WARNING);
                                exit();
                        }
                        
                        return false;
                }

                // read object data
                
                // Much too slow
                #$q = "SELECT * FROM object_data ".
                #        "LEFT JOIN object_reference ON object_data.obj_id=object_reference.obj_id ".
                #        "WHERE object_reference.ref_id='".$a_ref_id."'";
                $q = "SELECT * FROM object_data,object_reference ".
                        "WHERE object_reference.obj_id = object_data.obj_id ".
                        "AND object_reference.ref_id = '".$a_ref_id."'";

                $object_set = $ilias->db->query($q);

                // check number of records
                if ($object_set->numRows() == 0)
                {
                        if ($stop_on_error === true)
                        {
                                $message = "ilObjectFactory::getInstanceByRefId(): Object with ref_id ".$a_ref_id." not found!";
                                $ilias->raiseError($message,$ilias->error_obj->WARNING);
                                exit();
                        }
                        
                        return false;
                }

                $object_rec = $object_set->fetchRow(DB_FETCHMODE_ASSOC);
                $class_name = "ilObj".$objDefinition->getClassName($object_rec["type"]);

                // check class
                if ($class_name == "ilObj")
                {
                        if ($stop_on_error === true)
                        {
                                $message = "ilObjectFactory::getInstanceByRefId(): Not able to determine object ".
                                                   "class for type".$object_rec["type"].".";
                                $ilias->raiseError($message,$ilias->error_obj->WARNING);
                                exit();
                        }
                        
                        return false;
                }

                // get module
                $module = $objDefinition->getModule($object_rec["type"]);
                $module_dir = ($module == "")
                        ? ""
                        : $module."/";

                // create instance
                include_once($module_dir."classes/class.".$class_name.".php");
                $obj =& new $class_name(0, false);      // this avoids reading of data
                $obj->setId($object_rec["obj_id"]);
                $obj->setRefId($a_ref_id);
                $obj->setObjDataRecord($object_rec);
                $obj->read();
                return $obj;
        }

Here is the caller graph for this function:

ilObjectFactory::getTypeByRefId ( a_ref_id,
stop_on_error = true 
)

get object type by reference id

Parameters:
int $obj_id object id
Returns:
string object type

Definition at line 223 of file class.ilObjectFactory.php.

References $ilias, $objDefinition, $q, and exit.

        {
                global $ilias, $objDefinition;

                // check reference id
                if (!isset($a_ref_id))
                {
                        if ($stop_on_error === true)
                        {
                                $message = "ilObjectFactory::getTypeByRefId(): No ref_id given!";
                                $ilias->raiseError($message,$ilias->error_obj->WARNING);
                                exit();
                        }
                        
                        return false;
                }

                // read object data
                $q = "SELECT * FROM object_data ".
                         "LEFT JOIN object_reference ON object_data.obj_id=object_reference.obj_id ".
                         "WHERE object_reference.ref_id='".$a_ref_id."'";
                $object_set = $ilias->db->query($q);

                if ($object_set->numRows() == 0)
                {
                        if ($stop_on_error === true)
                        {
                                $message = "ilObjectFactory::getTypeByRefId(): Object with ref_id ".$a_ref_id." not found!";
                                $ilias->raiseError($message,$ilias->error_obj->WARNING);
                                exit();
                        }
                        
                        return false;
                }

                $object_rec = $object_set->fetchRow(DB_FETCHMODE_ASSOC);
                return $object_rec["type"];
        }

ilObjectFactory::ObjectIdExists ( a_obj_id  ) 

check if obj_id exists.

To check for ref_ids use ilTree::isInTree()

Parameters:
int $obj_id object id
Returns:
bool

Definition at line 49 of file class.ilObjectFactory.php.

References $ilias, $query, and $res.

Referenced by ilSearchGUI::__formatUserResult(), and ilMail::getMailsOfFolder().

        {
                global $ilias;

                $query = "SELECT * FROM object_data ".
                        "WHERE obj_id = '".$a_obj_id."'";

                $res = $ilias->db->query($query);
                
                return $res->numRows() ? true : false;
        }

Here is the caller graph for this function:


The documentation for this class was generated from the following file: