public function _on_updated() { // Invalidate topic in cache to refresh all views // TODO: Do this only on status changes if (isset($GLOBALS['disable_activitystream'])) { return true; } if ($_MIDCOM->auth->request_sudo('midcom')) { // This is here because creating an object calls create and update..... and we don't want duplicate entry's $qb = midcom_helper_activitystream_activity_dba::new_query_builder(); $qb->set_limit(1); $qb->add_constraint('application', '=', 'fi.kilonkipinat.forms'); $qb->add_constraint('target', '=', $this->guid); $groups = $qb->execute(); if ($groups && is_array($groups) && count($groups) > 0) { $new_object = false; } else { $new_object = true; } $actor = midcom_db_person::get_cached($_MIDGARD['user']); $activity = new midcom_helper_activitystream_activity_dba(); $activity->target = $this->guid; $activity->application = 'fi.kilonkipinat.forms'; $activity->actor = $actor->id; $activity->verb = 'http://activitystrea.ms/schema/1.0/post'; if ($new_object) { $activity->summary = sprintf('%s loi kulukorvauslomakkeen', $actor->name); } else { $activity->summary = sprintf('%s muokkasi kulukorvauslomaketta', $actor->name); } $activity->create(); $_MIDCOM->auth->drop_sudo(); } return true; }
if (in_array($result->target, $valid_targets)) { continue; } if (in_array($result->target, $invalid_targets)) { continue; } try { $object = midcom::get('dbfactory')->get_object_by_guid($result->target); $valid_targets[] = $object->guid; } catch (midcom_error $e) { if (midcom_connection::get_error() === MGD_ERR_OBJECT_DELETED) { $valid_targets[] = $result->target; } else { if (midcom_connection::get_error() === MGD_ERR_OBJECT_PURGED || midcom_connection::get_error() === MGD_ERR_NOT_EXISTS) { $invalid_targets[] = $result->target; $delete_qb = midcom_helper_activitystream_activity_dba::new_query_builder(); $delete_qb->add_constraint('target', '=', $result->target); $to_delete = $delete_qb->execute(); if (sizeof($to_delete) == 0) { continue; } echo "Deleting " . sizeof($to_delete) . " entries for purged target " . $result->target . " \n"; flush(); foreach ($to_delete as $entry) { if (!$entry->delete()) { echo 'ERROR: Deleting entry ' . $entry->guid . ' failed: ' . midcom_connection::get_error_string() . " \n"; } else { $entry->purge(); } } } else {
static function get_by_user(midcom_core_user $user, $limit = 20, $offset = 0) { $actor = $user->get_storage(); $qb = midcom_helper_activitystream_activity_dba::new_query_builder(); $qb->add_constraint('actor', '=', $actor->id); $qb->add_order('metadata.created', 'DESC'); $qb->set_limit($limit); $qb->set_offset($offset); return $qb->execute(); }