/** * Handle events like create, update, delete * * @access public * @param string $a_component component, e.g. "Modules/Forum" or "Services/User" * @param string $a_event event e.g. "createUser", "updateUser", "deleteUser", ... * @param array $a_parameter parameter array (assoc), array("name" => ..., "phone_office" => ...) * * @static */ public static function handleEvent($a_component, $a_event, $a_parameter) { global $ilLog, $ilUser; switch ($a_component) { case 'Modules/Session': case 'Modules/Group': case 'Modules/Course': switch ($a_event) { case 'create': $ilLog->write(__METHOD__ . ': Handling create event'); self::createCategory($a_parameter['object']); self::createAppointments($a_parameter['object'], $a_parameter['appointments']); break; case 'update': $ilLog->write(__METHOD__ . ': Handling update event'); self::updateCategory($a_parameter['object']); self::deleteAppointments($a_parameter['obj_id']); self::createAppointments($a_parameter['object'], $a_parameter['appointments']); break; case 'delete': $ilLog->write(__METHOD__ . ': Handling delete event'); self::deleteCategory($a_parameter['obj_id']); break; } include_once './Services/Calendar/classes/class.ilCalendarCategories.php'; ilCalendarCategories::deletePDItemsCache($ilUser->getId()); ilCalendarCategories::deleteRepositoryCache($ilUser->getId()); break; case 'Services/Booking': switch ($a_event) { case 'create': break; case 'update': break; case 'delete': break; } } }
/** * drop an item from user's personal desktop * * @param int $a_usr_id id of user object * @param int $a_item_id ref_id for objects, that are in the main tree * (learning modules, forums) obj_id for others * @param string $a_type object type * @static */ public static function _dropDesktopItem($a_usr_id, $a_item_id, $a_type) { global $ilDB; $ilDB->manipulateF("DELETE FROM desktop_item WHERE " . " item_id = %s AND type = %s AND user_id = %s", array("integer", "text", "integer"), array($a_item_id, $a_type, $a_usr_id)); include_once './Services/Calendar/classes/class.ilCalendarCategories.php'; ilCalendarCategories::deletePDItemsCache($a_usr_id); }
/** * Handle events like create, update, delete * * @access public * @param string $a_component component, e.g. "Modules/Forum" or "Services/User" * @param string $a_event event e.g. "createUser", "updateUser", "deleteUser", ... * @param array $a_parameter parameter array (assoc), array("name" => ..., "phone_office" => ...) * * @static */ public static function handleEvent($a_component, $a_event, $a_parameter) { global $ilLog, $ilUser; $delete_cache = false; switch ($a_component) { case 'Modules/Session': case 'Modules/Group': case 'Modules/Course': switch ($a_event) { case 'create': $ilLog->write(__METHOD__ . ': Handling create event'); self::createCategory($a_parameter['object']); self::createAppointments($a_parameter['object'], $a_parameter['appointments']); $delete_cache = true; break; case 'update': $ilLog->write(__METHOD__ . ': Handling update event'); self::updateCategory($a_parameter['object']); self::deleteAppointments($a_parameter['obj_id']); self::createAppointments($a_parameter['object'], $a_parameter['appointments']); $delete_cache = true; break; case 'delete': $ilLog->write(__METHOD__ . ': Handling delete event'); self::deleteCategory($a_parameter['obj_id']); $delete_cache = true; break; } break; case 'Services/Booking': switch ($a_event) { case 'create': break; case 'update': break; case 'delete': break; } break; case 'Modules/Exercise': switch ($a_event) { case 'createAssignment': $ilLog->write(__METHOD__ . ': Handling create event (exercise assignment)'); self::createCategory($a_parameter['object'], true); // exercise category could already exist self::createAppointments($a_parameter['object'], $a_parameter['appointments']); $delete_cache = true; break; case 'updateAssignment': $ilLog->write(__METHOD__ . ': Handling update event (exercise assignment)'); self::createCategory($a_parameter['object'], true); // different life-cycle than ilObject self::deleteAppointments($a_parameter['obj_id'], $a_parameter['context_ids']); self::createAppointments($a_parameter['object'], $a_parameter['appointments']); $delete_cache = true; break; case 'deleteAssignment': $ilLog->write(__METHOD__ . ': Handling delete event (exercise assignment)'); self::deleteAppointments($a_parameter['obj_id'], $a_parameter['context_ids']); $delete_cache = true; break; case 'delete': $ilLog->write(__METHOD__ . ': Handling delete event'); self::deleteCategory($a_parameter['obj_id']); $delete_cache = true; break; } break; } if ($delete_cache) { include_once './Services/Calendar/classes/class.ilCalendarCategories.php'; ilCalendarCategories::deletePDItemsCache($ilUser->getId()); ilCalendarCategories::deleteRepositoryCache($ilUser->getId()); } }