s * @package dokeos.backup * @todo Use the gloabaly defined constants voor tools and remove the RESOURCE_* * constants */ class Resource { /** * The id from this resource in the source course */ var $source_id; /** * The id from this resource in the destination course */ var $destination_id; /** * The type of this resource */ var $type; /** * Linked resources */ var $linked_resources; /** * The properties of this resource */ var $item_properties; /** * Create a new Resource * @param int $id The id of this resource in the source course. * @param constant $type The type of this resource. */ function Resource($id, $type) { $this->source_id = $id; $this->type = $type; $this->destination_id = -1; $this->linked_resources = array (); $this->item_properties = array (); } /** * Add linked resource */ function add_linked_resource($type, $id) { $this->linked_resources[$type][] = $id; } /** * Get linked resources */ function get_linked_resources() { return $this->linked_resources; } /** * Checks if this resource links to a given resource */ function links_to(& $resource) { if (is_array($this->linked_resources[$resource->get_type()])) { return in_array($resource->get_id(), $this->linked_resources[$resource->get_type()]); } return false; } /** * Returns the id of this resource. * @return int The id of this resource in the source course. */ function get_id() { return $this->source_id; } /** * Resturns the type of this resource * @return constant The type. */ function get_type() { return $this->type; } /** * Get the constant which defines the tool of this resource. This is * used in the item_properties table. * @todo once the RESOURCE_* constants are replaced by the globally * defined TOOL_* constants, this function will be replaced by get_type() */ function get_tool() { switch($this->get_type()) { case RESOURCE_DOCUMENT: return TOOL_DOCUMENT; case RESOURCE_LINK: return TOOL_LINK; case RESOURCE_EVENT: return TOOL_CALENDAR_EVENT; case RESOURCE_FORUM: return TOOL_BB_FORUM; case RESOURCE_FORUMTOPIC: return TOOL_BB_THREAD; case RESOURCE_FORUMPOST: return TOOL_BB_POST; case RESOURCE_ANNOUNCEMENT: return TOOL_ANNOUNCEMENT; case RESOURCE_QUIZ: return TOOL_QUIZ; default: return null; } } /** * Set the destination id * @param int $id The id of this resource in the destination course. */ function set_new_id($id) { $this->destination_id = $id; } /** * Check if this resource is allready restored in the destination course. * @return bool true if allready restored (i.e. destination_id is set). */ function is_restored() { return $this->destination_id > -1; } /** * Show this resource */ function show() { //echo 'RESOURCE: '.$this->get_id().' '.$type[$this->get_type()].' '; } }