From d9ff97bf01e8693f71e871d930e6bf45541f2cfa Mon Sep 17 00:00:00 2001 From: ben Date: Wed, 29 Oct 2008 13:47:27 +0000 Subject: Farewell, activity, we hardly knew ye. git-svn-id: https://code.elgg.org/elgg/trunk@2348 36083f99-b078-4883-b0ff-0f9b5a30f544 --- mod/activity/start.php | 288 ------------------------------------------------- 1 file changed, 288 deletions(-) delete mode 100644 mod/activity/start.php (limited to 'mod/activity/start.php') diff --git a/mod/activity/start.php b/mod/activity/start.php deleted file mode 100644 index 73f4cfc70..000000000 --- a/mod/activity/start.php +++ /dev/null @@ -1,288 +0,0 @@ -wwwroot . "pg/activity/{$_SESSION['user']->username}/", array(), 'activity'); - } - } - - /** - * Post init gumph. - */ - function activity_page_setup() - { - global $CONFIG; - - if ((get_context()=='activity') || (get_context()=='dashboard')) - { - add_submenu_item(elgg_echo('activity:your'), $CONFIG->wwwroot."pg/activity/{$_SESSION['user']->username}/"); - add_submenu_item(elgg_echo('activity:friends'), $CONFIG->wwwroot."pg/activity/{$_SESSION['user']->username}/friends/"); - add_submenu_item(elgg_echo('activity:all'), $CONFIG->wwwroot."pg/activity/"); - } - } - - /** - * Page handler for activity. - * - * @param unknown_type $page - */ - function activity_page_handler($page) - { - global $CONFIG; - - if ($page[0]) - set_input('username', $page[0]); - - if ($page[0]) { - if ($page[1]) - { - switch ($page[1]) - { - case 'friends' : - include($CONFIG->pluginspath . "activity/friends.php"); - break; - } - } - else - include($CONFIG->pluginspath . "activity/index.php"); - } else - include($CONFIG->pluginspath . "activity/all.php"); - } - - /** - * Pull activity from the system log. - * - * This works in a similar way to the river code, but looks for activity views instead. - * - * @param int $limit Limit the query. - * @param int $offset Execute from the given object - * @param mixed $type A type, or array of types to look for. Note: This is how they appear in the SYSTEM LOG. - * @param mixed $subtype A subtype, or array of types to look for. Note: This is how they appear in the SYSTEM LOG. - * @param mixed $owner_guid The guid or a collection of GUIDs - * @param string $owner_relationship If defined, the relationship between $owner_guid and the entity owner_guid - so "is $owner_guid $owner_relationship with $entity->owner_guid" - * @return array An array of pre-rendered elgg_views on the data. - */ - function activity_get_activity($limit = 10, $offset = 0, $type = "", $subtype = "", $owner_guid = "", $owner_relationship = "" ) - { - global $CONFIG; - - $limit = (int)$limit; - $offset = (int)$offset; - - if (!is_array($type)) - $type = array(sanitise_string($type)); - else - foreach ($type as $k => $v) - $type[$k] = sanitise_string($v); - - if (!is_array($subtype)) - $subtype = array(sanitise_string($subtype)); - else - foreach ($subtype as $k => $v) - $subtype[$k] = sanitise_string($v); - - if (is_array($owner_guid)) - foreach ($owner_guid as $k => $v) - $owner_guid[$k] = (int)$v; - else - $owner_guid = array((int)$owner_guid); - - $owner_relationship = sanitise_string($owner_relationship); - - // Get a list of possible views - $activity_events= array(); - $activity_views = array_merge(elgg_view_tree('activity'), elgg_view_tree('river')); // Join activity with river - - $done = array(); - - foreach ($activity_views as $view) - { - $fragments = explode('/', $view); - $tmp = explode('/',$view, 2); - $tmp = $tmp[1]; - - if ((isset($fragments[0])) && (($fragments[0] == 'river') || ($fragments[0] == 'activity')) - && (!in_array($tmp, $done))) - { - if (isset($fragments[1])) - { - $f = array(); - for ($n = 1; $n < count($fragments); $n++) - { - $val = sanitise_string($fragments[$n]); - switch($n) - { - case 1: $key = 'type'; break; - case 2: $key = 'subtype'; break; - case 3: $key = 'event'; break; - } - $f[$key] = $val; - } - $activity_events[] = $f; - } - - $done[] = $tmp; - } - - - } - - $n = 0; - foreach ($activity_events as $details) - { - // Get what we're talking about - - if ($details['subtype'] == 'default') $details['subtype'] = ''; - - if (($details['type']) && ($details['event'])) { - if ($n>0) $obj_query .= " or "; - - $access = ""; - if ($details['type']!='relationship') - $access = " and " . get_access_sql_suffix('sl'); - - $obj_query .= "( sl.object_type='{$details['type']}' and sl.object_subtype='{$details['subtype']}' and sl.event='{$details['event']}' $access )"; - - $n++; - } - - } - - // User - if (count($owner_guid) && ($owner_guid[0]!=0)) - $user = " and sl.performed_by_guid in (".implode(',', $owner_guid).")"; - - // Relationship - $relationship_query = ""; - $relationship_join = ""; - if ($relationship) - { - $relationship_join = " join {$CONFIG->dbprefix}entity_relationships r on sl.performed_by_guid=r.entity_guid "; - $relationship_query = "r.relationship = '$relationship'"; - } - - $query = "SELECT sl.* from {$CONFIG->dbprefix}system_log sl $relationship_join where 1 $user and $relationship_query ($obj_query) order by sl.time_created desc limit $offset, $limit"; - $log_data = get_data($query); - - // until count reached, loop through and render - $activity = array(); - - if ($log_data) - { - foreach ($log_data as $log) - { - // See if we have access to the object we're talking about - $event = $log->event; - $class = $log->object_class; - $type = $log->object_type; - $subtype = $log->object_subtype; - $tmp = new $class(); - $object = $tmp->getObjectFromID($log->object_id); - $by_user_obj = get_entity($log->performed_by_guid); - - // Belts and braces - if ($object instanceof $class) - { - $tam = ""; - - // Construct the statement - $statement_object = $object; // Simple object, we don't need to do more - - // This is a relationship, slighty more complicated - if ($object instanceof ElggRelationship) { - - $statement_object = array( - 'subject' => get_entity($object->guid_one), - 'relationship' => $object->relationship,// Didn' cast to int here deliberately - 'object' => get_entity($object->guid_two) - ); - - // Metadata or annotations, also slightly more complicated - } else if ($object instanceof ElggExtender) { - $statement_object = array( - 'subject' => $object, - 'object' => get_entity($object->entity_guid) - ); - } - - // Put together a river statement - $statement = new ElggRiverStatement($by_user_obj, $event, $statement_object); - - // Now construct and call the appropriate views - - if ($subtype == "widget") { // Special case for widgets - $subtype = "widget/" . $object->handler; - } - if ($subtype == '') - $subtype = 'default'; - - - $activity_view = 'activity'; - if (!elgg_view_exists("$activity_view/$type/$subtype/$event")) - $activity_view = 'river'; - - $tam = elgg_view("$activity_view/$type/$subtype/$event", array( - 'statement' => $statement - )); - - - // Giftwrap - if (!empty($tam)) { - $tam = elgg_view("activity/wrapper",array( - 'entry' => $tam, - 'time' => $log->time_created, - 'event' => $event, - 'statement' => $statement - )); - } - - $activity[] = $tam; - } - } - } - - return $activity; - - } - - // river index with tabs to drill down - - - - - /// BONUS POINTS - - // comment on feed items - - // comment on search terms/ tags - - - // Initialise plugin - register_elgg_event_handler('init','system','activity_init'); - register_elgg_event_handler('pagesetup','system','activity_page_setup'); -?> \ No newline at end of file -- cgit v1.2.3