Public Member Functions

ilObjectFactory Class Reference

Class ilObjectFactory. More...

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

Class ilObjectFactory.

This class offers methods to get instances of the type-specific object classes (derived from ilObject) by their object or reference id

Note: The term "Ilias objects" means all object types that are stored in the database table "object_data"

Author:
Alex Killing <alex.killing@gmx.de>
Version:
Id:
class.ilObjectFactory.php 13104 2007-01-25 18:26:10Z akill

Definition at line 40 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 66 of file class.ilObjectFactory.php.

References $ilias, and exit.

Referenced by ilRoleDesktopItem::__assign(), ilObjCategoryGUI::__checkGlobalRoles(), ilRepositorySearchGUI::__fillRoleTable(), ilAdminUserSearchGUI::__fillRoleTable(), ilRepositorySearchGUI::__fillUserTable(), ilAdminUserSearchGUI::__fillUserTable(), ilObjExercise::__formatRecipients(), ilObjCategoryGUI::__getAssignableRoles(), ilPaymentBillAdminGUI::__initBillVendorData(), ilObjectGUIAdapter::__initGUIObject(), ilLPListOfProgressGUI::__initUser(), ilCourseParticipants::__readSubscribers(), ilLinkChecker::__sendMail(), ilObjExerciseGUI::__showMembersSelect(), ilObjCategoryGUI::__showRolesTable(), ilObjChatGUI::__showRooms(), ilObjCourseGUI::__showSubscribers(), ilPaymentObjectGUI::__showVendorSelector(), ilObjPaymentSettingsGUI::__showVendorSelector(), ilObjCourseGUI::__showWaitingList(), ilSearch::__validateResults(), ilObjGroup::_isMember(), ilPaymentStatisticGUI::addCustomer(), ilObjPaymentSettingsGUI::addCustomerObject(), ilObjCourseGUI::addFromWaitingList(), ilSoapRBACAdministration::addUserRoleEntry(), ilObjPaymentSettingsGUI::addVendorWorksheet(), ilObjUserFolderGUI::appliedUsersObject(), ilSoapCourseAdministration::assignCourseMember(), ilSoapGroupAdministration::assignGroupMember(), ilExerciseMembers::assignMember(), ilObjCourseGUI::assignMembersObject(), ilObjCategoryGUI::assignRolesObject(), ilCourseParticipants::assignSubscriber(), ilRbacAdmin::assignUser(), ilStructureObject::copy(), ilExerciseMembers::deassignMember(), ilObjCourseGUI::deleteMembersObject(), ilSoapRBACAdministration::deleteRole(), ilObjCourseGUI::deleteSubscribers(), ilSoapUserAdministration::deleteUser(), ilSoapRBACAdministration::deleteUserRoleEntry(), ilObjExerciseGUI::downloadAllObject(), ilObjUserFolderGUI::editAppliedUsersObject(), ilObjCourseGUI::editMemberObject(), ilPaymentStatisticGUI::editStatistic(), ilObjPaymentSettingsGUI::editStatisticObject(), ilObjCourseGUI::fetchPrintMemberData(), ilObjCourseGUI::fetchPrintSubscriberData(), ilObjCourse::getDefaultAdminRole(), ilObjCourse::getDefaultMemberRole(), ilObjCourse::getDefaultTutorRole(), ilSoapExerciseAdministration::getExerciseXML(), ilSoapFileAdministration::getFileXML(), ilSoapSCORMAdministration::getIMSManifestXML(), ilSoapRBACAdministration::getLocalRoles(), ilSoapObjectAdministration::getObjectsByTitle(), ilSoapRBACAdministration::getObjectTreeOperations(), ilSoapUserAdministration::getUser(), ilForum::getUserData(), ilSoapRBACAdministration::getUserRoles(), ilSoapRBACAdministration::grantPermissions(), ilCourseParticipants::isGroupingMember(), ilLMStatisticsGUI::listUsersGroup(), ilObjCourseGUI::listUsersGroupObject(), ilObjiLincCourseGUI::listUsersGroupObject(), ilObjRoleGUI::listUsersGroupObject(), ilObjGroupGUI::listUsersGroupObject(), ilLMStatisticsGUI::listUsersRole(), ilObjCourseGUI::listUsersRoleObject(), ilObjiLincCourseGUI::listUsersRoleObject(), ilObjRoleGUI::listUsersRoleObject(), ilObjGroupGUI::listUsersRoleObject(), ilObjCourseGUI::membersGalleryObject(), ilObjiLincCourseGUI::membersGalleryObject(), ilObjGroupGUI::membersGalleryObject(), ilObjExerciseGUI::membersObject(), ilObjPaymentSettingsGUI::objectsObject(), ilObjContentObjectGUI::pasteChapter(), ilObjCategoryGUI::performDeleteUsersObject(), ilPaymentTrusteeGUI::performSearch(), ilPaymentStatisticGUI::performSearch(), ilObjPaymentSettingsGUI::performSearchSPObject(), ilObjCourseGUI::removeFromWaitingList(), ilSoapRBACAdministration::revokePermissions(), ilLMStatisticsGUI::search(), ilObjPaymentSettingsGUI::searchObject(), ilObjCourseGUI::searchObject(), ilObjiLincCourseGUI::searchObject(), ilObjRoleGUI::searchObject(), ilObjGroupGUI::searchObject(), ilSoapObjectAdministration::searchObjects(), ilObjChat::sendMessage(), ilCourseParticipants::sendNotification(), ilCourseParticipants::sendNotificationToAdmins(), ilCourseParticipants::sendSubscriptionRequestToAdmins(), ilCourseParticipants::sendUnsubscribeNotificationToAdmins(), ilPaymentBuyedObjectsGUI::showItems(), ilMailSearchCoursesGUI::showMembers(), ilMailSearchCoursesGUI::showMyCourses(), ilPaymentObjectGUI::showObjects(), ilPaymentTrusteeGUI::showTrustees(), ilCourseRegisterGUI::subscribe(), ilObjUserFolderGUI::updateAppliedUsersObject(), ilSoapExerciseAdministration::updateExercise(), ilSoapFileAdministration::updateFile(), ilMailbox::updateMailsOfDeletedUser(), ilSoapObjectAdministration::updateObjects(), ilSoapUserAdministration::updatePassword(), ilRegistrationSettingsGUI::updateRoles(), ilSoapUserAdministration::updateUser(), and ilObjPaymentSettingsGUI::vendorsObject().

        {
                global $ilias, $objDefinition, $ilDB;

                // 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 = ".$ilDB->quote($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 140 of file class.ilObjectFactory.php.

References $ilias, and exit.

Referenced by ilCourseArchives::__addHTMLFiles(), ilCourseArchives::__addZipFiles(), ilCourseXMLWriter::__buildObject(), ilCourseArchives::__buildStructure(), ilMemberExport::__construct(), ilRepositorySearchGUI::__fillGroupTable(), ilAdminUserSearchGUI::__fillGroupTable(), ilForum::__formatMessage(), ilCourseObjectivesGUI::__getAllChapters(), ilObjExerciseGUI::__getMembersOfObject(), ilEventAdministrationGUI::__initCourseObject(), ilCourseRegisterGUI::__initCourseObject(), ilCourseObjectivesGUI::__initCourseObject(), ilCourseObjectivePresentationGUI::__initCourseObject(), ilCourseContentGUI::__initCourseObject(), ilCourseArchivesGUI::__initCourseObject(), ilObjectGUIAdapter::__initGUIObject(), ilCourseItemAdministrationGUI::__initItem(), ilObjExerciseGUI::__showObjectSelect(), ilPurchaseBMFGUI::__showShoppingCart(), ilChatServerCommunicator::_initObject(), ilSoapCourseAdministration::addCourse(), ilPaymentStatisticGUI::addCustomer(), ilObjPaymentSettingsGUI::addCustomerObject(), ilSoapExerciseAdministration::addExercise(), ilSoapFileAdministration::addFile(), ilSoapObjectAdministration::addObject(), ilPaymentObjectGUI::addPrice(), ilObjPaymentSettingsGUI::addPriceObject(), ilSoapObjectAdministration::addReference(), ilSoapRBACAdministration::addRole(), ilSoapRBACAdministration::addRoleFromTemplate(), ilObjRoleGUI::askDeleteDesktopItemObject(), ilConditionHandlerInterface::assign(), ilObjCourseGroupingGUI::assignCourse(), ilSoapCourseAdministration::assignCourseMember(), ilSoapGroupAdministration::assignGroupMember(), ilCronWebResourceCheck::check(), ilConditionHandlerInterface::chi_init(), ilContainerGUI::clipboardObject(), ilObjectGUI::cloneAllObject(), ilContainerGUI::cloneAllObject(), ilSoapUtils::cloneDependencies(), ilCourseItems::cloneDependencies(), ilObjGroup::cloneDependencies(), ilObjFolder::cloneDependencies(), ilSoapUtils::cloneNode(), ilObjectGUI::confirmedDeleteObject(), ilRbacAdmin::copyLocalRoles(), ilObjStyleSheetGUI::copyStyleObject(), ilSoapObjectAdministration::deleteObject(), ilPaymentObjectGUI::editDetails(), ilObjPaymentSettingsGUI::editObjectObject(), ilPaymentObjectGUI::editPrices(), ilObjPaymentSettingsGUI::editPricesObject(), ilCourseObjectivesGUI::editQuestionAssignment(), ilSoapCourseAdministration::excludeCourseMember(), ilSoapGroupAdministration::excludeGroupMember(), ilForum::generatePost(), ilSoapCourseAdministration::getCourseXML(), ilMail::getEmailsOfRecipients(), ilSoapGroupAdministration::getGroup(), ilSoapRBACAdministration::getLocalRoles(), ilCourseObjectiveQuestion::getMaxPointsByObjective(), ilCourseObjectiveQuestion::getMaxPointsByTest(), ilSoapObjectAdministration::getObjectByReference(), ilSoapRBACAdministration::getObjectTreeOperations(), ilPaymentShoppingCart::getShoppingCart(), ilSOAPStructureObjectAdministration::getStructureObjects(), ilSoapObjectAdministration::getTreeChilds(), ilMail::getUserIds(), ilSoapUserAdministration::getUsersForContainer(), ilSoapObjectAdministration::getXMLTree(), ilSoapRBACAdministration::grantPermissions(), ilCourseObjective::ilClone(), ilConditionHandlerInterface::ilConditionHandlerInterface(), ilForumExplorer::ilForumExplorer(), ilPaymentPurchaseGUI::ilPaymentPurchaseGUI(), ilObjStyleSheetGUI::importStyleObject(), ilSoapUserAdministration::importUsers(), ilObjForumListGUI::initItem(), ilSoapCourseAdministration::isAssignedToCourse(), ilSoapGroupAdministration::isAssignedToGroup(), ilRepositoryExplorer::isVisible(), ilSoapUtils::linkNode(), ilObjRoleGUI::listDesktopItemsObject(), ilCourseObjectivesGUI::listQuestionAssignment(), ilObjCourseGUI::listStructureObject(), ilLMStatisticsGUI::listUsersGroup(), ilRepositorySearchGUI::listUsersGroup(), ilAdminUserSearchGUI::listUsersGroup(), ilObjCourseGUI::listUsersGroupObject(), ilObjiLincCourseGUI::listUsersGroupObject(), ilObjRoleGUI::listUsersGroupObject(), ilObjGroupGUI::listUsersGroupObject(), ilObjPaymentSettingsGUI::objectsObject(), ilObjDlBookGUI::properties(), ilSoapObjectAdministration::removeFromSystemByImportId(), ilCourseObjectiveResult::reset(), ilSoapRBACAdministration::revokePermissions(), ilObjStyleSheetGUI::saveObject(), ilLMStatisticsGUI::search(), ilObjCourseGUI::searchObject(), ilObjiLincCourseGUI::searchObject(), ilObjRoleGUI::searchObject(), ilObjGroupGUI::searchObject(), ilObjCourseGUI::selectStarterObject(), ilObjDlBookGUI::showAbstract(), ilPaymentBillAdminGUI::showBillData(), ilPaymentCouponGUI::showCoupons(), ilPaymentBuyedObjectsGUI::showItems(), ilMailSearchGroupsGUI::showMembers(), ilWysiwygUtil::showMoveCopyQuestion(), ilPaymentObjectGUI::showObjects(), ilPaymentCouponGUI::showObjects(), ilPaymentObjectGUI::showSelectedObject(), ilObjDlBookGUI::showTranslationSelect(), ilObjForumGUI::showUserObject(), ilSoapCourseAdministration::updateCourse(), ilSoapGroupAdministration::updateGroup(), ilObjStyleSheetGUI::updateObject(), and ilConditionHandler::validate().

        {
                global $ilias, $objDefinition, $ilDB;

                // 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 = ".$ilDB->quote($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 221 of file class.ilObjectFactory.php.

References $ilias, and exit.

Referenced by ilSoapGroupAdministration::updateGroup().

        {
                global $ilias, $objDefinition, $ilDB;

                // 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=".$ilDB->quote($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"];
        }

Here is the caller graph for this function:

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 48 of file class.ilObjectFactory.php.

References $ilias, and $res.

Referenced by ilMail::getMailsOfFolder(), and ilMailFolderGUI::showFolder().

        {
                global $ilias, $ilDB;

                $query = "SELECT * FROM object_data ".
                        "WHERE obj_id = ".$ilDB->quote($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: