static function get($limit = 20, $offset = 0, $unique = false) { $qb = midcom_helper_activitystream_activity_dba::new_query_builder(); $qb->add_order('metadata.created', 'DESC'); $qb->set_limit($limit); $qb->set_offset($offset); $objects = $qb->execute(); if (!$unique || count($objects) < $limit) { return $objects; } $unique_objects = array(); $duplicates = 0; $uniques = 0; foreach ($objects as $object) { if (isset($unique_objects[$object->target])) { $duplicates++; continue; } $unique_objects[$object->target] = $object; $uniques++; } if ($uniques == $limit) { return $unique_objects; } return array_merge($unique_objects, midcom_helper_activitystream_activity_dba::get($limit - $uniques, $offset + $limit, true)); }
if ($data['config']->get('enable_review_dates')) { $review_date = $object->get_parameter('midcom.helper.metadata', 'review_date'); if (!$review_date) { echo " <td class=\"review_by\">N/A</td>\n"; } else { echo " <td class=\"review_by\">" . strftime('%x', $review_date) . "</td>\n"; } } echo " <td class=\"revised\">" . strftime('%x %X', $object->metadata->revised) . "</td>\n"; echo " <td class=\"revisor\">{$revisor_name}</td>\n"; echo " <td class=\"approved\">{$approved_str}</td>\n"; echo " <td class=\"revision\">{$object->metadata->revision}</td>\n"; echo " </tr>\n"; } } else { $activities = midcom_helper_activitystream_activity_dba::get($data['config']->get('last_visited_size')); if (count($activities) > 0) { $reflectors = array(); foreach ($activities as $activity) { try { $object = midcom::get('dbfactory')->get_object_by_guid($activity->target); } catch (midcom_error $e) { if (midcom_connection::get_error() == MGD_ERR_OBJECT_DELETED) { // TODO: Visualize deleted objects somehow } continue; } if (!isset($actors)) { $actors = array(); } if (!isset($actors[$activity->actor])) {