Public Member Functions | Data Fields

ilObjExercise Class Reference

Inheritance diagram for ilObjExercise:
Collaboration diagram for ilObjExercise:

Public Member Functions

 ilObjExercise ($a_id=0, $a_call_by_reference=true)
 Constructor public.
 setDate ($a_day, $a_month, $a_year)
 getTimestamp ()
 setTimestamp ($a_timestamp)
 setInstruction ($a_instruction)
 getInstruction ()
 getFiles ()
 checkDate ()
 deliverFile ($a_http_post_files, $user_id)
 addUploadedFile ($a_http_post_files)
 deleteFiles ($a_files)
 saveData ()
 ilClone ($a_parent_ref)
 copy all properties and subobjects of a course.
getDeliveredFiles ($user_id)
 Returns the delivered files of an user.
 deleteDeliveredFiles ($file_id_array, $user_id)
 Deletes already delivered files.
 deliverReturnedFiles ($user_id)
 Delivers the returned files of an user.
 delete ()
 delete course and all related data
 notify ($a_event, $a_ref_id, $a_node_id, $a_params=0)
 notifys an object about an event occured Based on the event happend, each object may decide how it reacts.
 read ()
 update ()
 update object in db
 send ($a_members)
 __formatBody ()
 __formatSubject ()
 __formatRecipients ($a_members)
 _checkCondition ($a_exc_id, $a_operator, $a_value)
 _goto ($a_target)
 redirect script

Data Fields

 $file_obj
 $members_obj
 $files
 $timestamp
 $day
 $month
 $year
 $instruction

Detailed Description

Definition at line 40 of file class.ilObjExercise.php.


Member Function Documentation

ilObjExercise::__formatBody (  ) 

Definition at line 331 of file class.ilObjExercise.php.

References ilObject::$lng, getInstruction(), and getTimestamp().

Referenced by send().

        {
                global $lng;
                
                $body = $this->getInstruction();
                $body .= "\n";
                $body .= $lng->txt("exc_edit_until") . ": ".date("Y-m-d",$this->getTimestamp());

                return $body;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjExercise::__formatRecipients ( a_members  ) 

Definition at line 347 of file class.ilObjExercise.php.

References ilObjectFactory::getInstanceByObjId().

Referenced by send().

        {
                foreach($a_members as $member_id => $value)
                {
                        $tmp_obj = ilObjectFactory::getInstanceByObjId($member_id); 
                        $tmp_members[] = $tmp_obj->getLogin();

                        unset($tmp_obj);
                }

                return implode(',',$tmp_members ? $tmp_members : array());
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjExercise::__formatSubject (  ) 

Definition at line 342 of file class.ilObjExercise.php.

References ilObject::getDescription(), and ilObject::getTitle().

Referenced by send().

        {
                return $subject = $this->getTitle()." (".$this->getDescription().")";
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjExercise::_checkCondition ( a_exc_id,
a_operator,
a_value 
)

Reimplemented from ilObject.

Definition at line 360 of file class.ilObjExercise.php.

References ilObject::$ilias, and ilExerciseMembers::_hasSolved().

        {
                global $ilias;

                switch($a_operator)
                {
                        case 'passed':
                                return ilExerciseMembers::_hasSolved($a_exc_id,$ilias->account->getId());

                        default:
                                return true;
                }
                return true;
        }

Here is the call graph for this function:

ilObjExercise::_goto ( a_target  ) 

redirect script

Parameters:
string $a_target

Definition at line 380 of file class.ilObjExercise.php.

References $ilErr, ilObject::$lng, $rbacsystem, ilSearch::_checkParentConditions(), and ilUtil::redirect().

        {
                global $rbacsystem, $ilErr, $lng;

                include_once 'classes/class.ilSearch.php';
                        
                // Added this additional check (ParentConditions) to avoid calls of objects inside e.g courses.
                // Will be replaced in future releases by ilAccess::checkAccess()
                if ($rbacsystem->checkAccess("read", $a_target) and ilSearch::_checkParentConditions($a_target))
                {
                        ilUtil::redirect("exercise.php?ref_id=$a_target");
                }
                else
                {
                        $ilErr->raiseError($lng->txt("msg_no_perm_read_lm"), $ilErr->FATAL);
                }
        }               

Here is the call graph for this function:

ilObjExercise::addUploadedFile ( a_http_post_files  ) 

Definition at line 123 of file class.ilObjExercise.php.

        {
                $this->file_obj->storeUploadedFile($a_http_post_files, true);
                
                return true;
        }

ilObjExercise::checkDate (  ) 

Definition at line 94 of file class.ilObjExercise.php.

        {
                return $this->day == (int) date("d",$this->timestamp) and
                        $this->month == (int) date("m",$this->timestamp) and
                        $this->year == (int) date("Y",$this->timestamp);
        }

ilObjExercise::delete (  ) 

delete course and all related data

public

Returns:
boolean true if all object data were removed; false if only a references were removed

Reimplemented from ilObject.

Definition at line 216 of file class.ilObjExercise.php.

References $query.

        {               
                // always call parent delete function first!!
                if (!parent::delete())
                {
                        return false;
                }       
                // put here course specific stuff
                $query = "DELETE FROM exc_data ".
                        "WHERE obj_id = '".$this->getId()."'";
                
                $this->ilias->db->query($query);

                $this->file_obj->delete();
                $this->members_obj->delete();

                return true;
        }

ilObjExercise::deleteDeliveredFiles ( file_id_array,
user_id 
)

Deletes already delivered files.

Parameters:
array $file_id_array An array containing database ids of the delivered files
numeric $user_id The database id of the user public

Definition at line 195 of file class.ilObjExercise.php.

References $user_id.

        {
                $this->members_obj->deleteDeliveredFiles($file_id_array, $user_id);
        }

ilObjExercise::deleteFiles ( a_files  ) 

Definition at line 129 of file class.ilObjExercise.php.

        {
                $this->file_obj->unlinkFiles($a_files);
        }

ilObjExercise::deliverFile ( a_http_post_files,
user_id 
)

Definition at line 101 of file class.ilObjExercise.php.

References $query, and $user_id.

        {
                $deliver_result = $this->file_obj->deliverFile($a_http_post_files, $user_id);
                if ($deliver_result)
                {
                        $query = sprintf("INSERT INTO exc_returned (returned_id, obj_id, user_id, filename, filetitle, mimetype, TIMESTAMP) VALUES (NULL, %s, %s, %s, %s, %s, NULL)",
                                $this->ilias->db->quote($this->getId() . ""),
                                $this->ilias->db->quote($user_id . ""),
                                $this->ilias->db->quote($deliver_result["fullname"]),
                                $this->ilias->db->quote($a_http_post_files["name"]),
                                $this->ilias->db->quote($deliver_result["mimetype"])
                        );
                        $this->ilias->db->query($query);
                        if (!$this->members_obj->isAssigned($user_id))
                        {
                                $this->members_obj->assignMember($user_id);
                        }
                        $this->members_obj->setStatusReturnedForMember($user_id, 1);
                }
                return true;
        }

ilObjExercise::deliverReturnedFiles ( user_id  ) 

Delivers the returned files of an user.

Parameters:
numeric $user_id The database id of the user public

Definition at line 205 of file class.ilObjExercise.php.

        {
                require_once "./classes/class.ilUtil.php";
        }

& ilObjExercise::getDeliveredFiles ( user_id  ) 

Returns the delivered files of an user.

Parameters:
numeric $user_id The database id of the user
Returns:
array An array containing the information on the delivered files public

Definition at line 183 of file class.ilObjExercise.php.

References $user_id.

        {
                $delivered_files =& $this->members_obj->getDeliveredFiles($user_id);
                return $delivered_files;
        }

ilObjExercise::getFiles (  ) 

Definition at line 89 of file class.ilObjExercise.php.

        {
                return $this->files;
        }

ilObjExercise::getInstruction (  ) 

Definition at line 85 of file class.ilObjExercise.php.

Referenced by __formatBody(), ilClone(), saveData(), and update().

        {
                return $this->instruction;
        }

Here is the caller graph for this function:

ilObjExercise::getTimestamp (  ) 

Definition at line 73 of file class.ilObjExercise.php.

Referenced by __formatBody(), and ilClone().

        {
                return $this->timestamp;
        }

Here is the caller graph for this function:

ilObjExercise::ilClone ( a_parent_ref  ) 

copy all properties and subobjects of a course.

public

Returns:
integer new ref id

Reimplemented from ilObject.

Definition at line 152 of file class.ilObjExercise.php.

References $rbacadmin, ilObject::getId(), getInstruction(), and getTimestamp().

        {               
                global $rbacadmin;

                // always call parent ilClone function first!!
                $new_ref_id = parent::ilClone($a_parent_ref);
                
                // put here exc specific stuff
                $tmp_obj =& $this->ilias->obj_factory->getInstanceByRefId($new_ref_id);
                $tmp_obj->setInstruction($this->getInstruction());
                $tmp_obj->setTimestamp($this->getTimestamp());
                $tmp_obj->saveData();

                // CLONE FILES
                $tmp_file_obj =& new ilFileDataExercise($this->getId());
                $tmp_file_obj->ilClone($tmp_obj->getId());

                // CLONE MEMBERS
                $tmp_members_obj =& new ilExerciseMembers($this->getId(),$new_ref_id);
                $tmp_members_obj->ilClone($tmp_obj->getId());

                // ... and finally always return new reference ID!!
                return $new_ref_id;
        }

Here is the call graph for this function:

ilObjExercise::ilObjExercise ( a_id = 0,
a_call_by_reference = true 
)

Constructor public.

Parameters:
integer reference_id or object_id
boolean treat the id as reference_id (true) or object_id (false)

Definition at line 58 of file class.ilObjExercise.php.

References ilObject::ilObject().

        {
                $this->type = "exc";
                $this->ilObject($a_id,$a_call_by_reference);
        }

Here is the call graph for this function:

ilObjExercise::notify ( a_event,
a_ref_id,
a_node_id,
a_params = 0 
)

notifys an object about an event occured Based on the event happend, each object may decide how it reacts.

public

Parameters:
string event
integer reference id of object where the event occured
array passes optional paramters if required
Returns:
boolean

Definition at line 245 of file class.ilObjExercise.php.

        {
                // object specific event handling
                
                parent::notify($a_event,$a_ref_id,$a_node_id,$a_params);
        }

ilObjExercise::read (  ) 

Definition at line 252 of file class.ilObjExercise.php.

References $query, $res, $row, ilObject::getId(), ilObject::getRefId(), setInstruction(), and setTimestamp().

        {
                parent::read();

                $query = "SELECT * FROM exc_data ".
                        "WHERE obj_id = '".$this->getId()."'";

                $res = $this->ilias->db->query($query);
                while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
                {
                        $this->setInstruction($row->instruction);
                        $this->setTimestamp($row->time_stamp);
                }
                $this->members_obj =& new ilExerciseMembers($this->getId(),$this->getRefId());
                $this->members_obj->read();

                // GET FILE ASSIGNED TO EXERCISE
                $this->file_obj = new ilFileDataExercise($this->getId());
                $this->files = $this->file_obj->getFiles();

                return true;
        }

Here is the call graph for this function:

ilObjExercise::saveData (  ) 

Definition at line 134 of file class.ilObjExercise.php.

References $query, and getInstruction().

        {
                
                // SAVE ONLY EXERCISE SPECIFIC DATA
                $query = "INSERT INTO exc_data SET ".
                        "obj_id = '".$this->getId()."', ".
                        "instruction = '".addslashes($this->getInstruction())."', ".
                        "time_stamp = ".$this->getTimestamp();
                $this->ilias->db->query($query);
                return true;
        }

Here is the call graph for this function:

ilObjExercise::send ( a_members  ) 

Definition at line 290 of file class.ilObjExercise.php.

References $_SESSION, $file, $files, __formatBody(), __formatRecipients(), and __formatSubject().

        {
                $files = $this->file_obj->getFiles();
                if(count($files))
                {
                        include_once "./classes/class.ilFileDataMail.php";

                        $mfile_obj = new ilFileDataMail($_SESSION["AccountId"]);
                        foreach($files as $file)
                        {
                                $mfile_obj->copyAttachmentFile($this->file_obj->getAbsolutePath($file["name"]),$file["name"]);
                                $file_names[] = $file["name"];
                        }
                }

                include_once "./classes/class.ilMail.php";

                $tmp_mail_obj = new ilMail($_SESSION["AccountId"]);
                $message = $tmp_mail_obj->sendMail($this->__formatRecipients($a_members),"","",$this->__formatSubject(),$this->__formatBody(),
                                                                                   count($file_names) ? $file_names : array(),array("normal"));

                unset($tmp_mail_obj);

                if(count($file_names))
                {
                        $mfile_obj->unlinkFiles($file_names);
                        unset($mfile_obj);
                }


                // SET STATUS SENT FOR ALL RECIPIENTS
                foreach($a_members as $member_id => $value)
                {
                        $this->members_obj->setStatusSentForMember($member_id,1);
                }

                return true;
        }

Here is the call graph for this function:

ilObjExercise::setDate ( a_day,
a_month,
a_year 
)

Definition at line 65 of file class.ilObjExercise.php.

        {
                $this->day = (int) $a_day;
                $this->month = (int) $a_month;
                $this->year = (int) $a_year;
                $this->timestamp = mktime(0,0,0,$this->month,$this->day,$this->year);
                return true;
        }

ilObjExercise::setInstruction ( a_instruction  ) 

Definition at line 81 of file class.ilObjExercise.php.

Referenced by read().

        {
                $this->instruction = $a_instruction;
        }

Here is the caller graph for this function:

ilObjExercise::setTimestamp ( a_timestamp  ) 

Definition at line 77 of file class.ilObjExercise.php.

Referenced by read().

        {
                $this->timestamp = $a_timestamp;
        }

Here is the caller graph for this function:

ilObjExercise::update (  ) 

update object in db

public

Returns:
boolean true on success

Reimplemented from ilObject.

Definition at line 275 of file class.ilObjExercise.php.

References $query, $res, and getInstruction().

        {
                parent::update();

                $query = "UPDATE exc_data SET ".
                        "instruction = '".addslashes($this->getInstruction())."', ".
                        "time_stamp = '".$this->getTimestamp()."' ".
                        "WHERE obj_id = '".$this->getId()."'";

                $res = $this->ilias->db->query($query);

                #$this->members_obj->update();
                return true;
        }

Here is the call graph for this function:


Field Documentation

ilObjExercise::$day

Definition at line 47 of file class.ilObjExercise.php.

ilObjExercise::$file_obj

Definition at line 42 of file class.ilObjExercise.php.

ilObjExercise::$files

Definition at line 44 of file class.ilObjExercise.php.

Referenced by send().

ilObjExercise::$instruction

Definition at line 50 of file class.ilObjExercise.php.

ilObjExercise::$members_obj

Definition at line 43 of file class.ilObjExercise.php.

ilObjExercise::$month

Definition at line 48 of file class.ilObjExercise.php.

ilObjExercise::$timestamp

Definition at line 46 of file class.ilObjExercise.php.

ilObjExercise::$year

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


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