/**
  * Handle an event in a listener.
  *
  * @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 function handleEvent($a_component, $a_event, $a_parameter)
 {
     include_once "./Services/Tagging/classes/class.ilTagging.php";
     switch ($a_component) {
         case "Services/Object":
             switch ($a_event) {
                 case "toTrash":
                     if (!ilObject::_hasUntrashedReference($a_parameter["obj_id"])) {
                         ilTagging::setTagsOfObjectOffline($a_parameter["obj_id"], ilObject::_lookupType($a_parameter["obj_id"]), 0, "");
                     }
                     break;
                 case "undelete":
                     ilTagging::setTagsOfObjectOffline($a_parameter["obj_id"], ilObject::_lookupType($a_parameter["obj_id"]), 0, "", false);
                     break;
                 case "delete":
                     $ref_ids = ilObject::_getAllReferences($a_parameter["obj_id"]);
                     if (count($ref_ids) == 0) {
                         ilTagging::deleteTagsOfObject($a_parameter["obj_id"], $a_parameter["type"], 0, "");
                     }
                     break;
             }
             break;
     }
 }
 /**
  * Get objects for tag and user
  *
  * @param	int			$a_user_id			User ID
  */
 static function getObjectsForTagAndUser($a_user_id, $a_tag)
 {
     global $ilDB;
     $q = "SELECT * FROM il_tag WHERE " . "user_id = " . $ilDB->quote($a_user_id, "integer") . " AND tag = " . $ilDB->quote($a_tag, "text");
     $set = $ilDB->query($q);
     $objects = array();
     while ($rec = $ilDB->fetchAssoc($set)) {
         if (ilObject::_exists($rec["obj_id"])) {
             if ($rec["sub_obj_type"] == "-") {
                 $rec["sub_obj_type"] = "";
             }
             $objects[] = $rec;
         } else {
             ilTagging::deleteTagsOfObject($rec["obj_id"], $rec["obj_type"], $rec["sub_obj_id"], $rec["sub_obj_type"]);
         }
     }
     return $objects;
 }