diff options
author | dave <dave@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-03-10 16:32:05 +0000 |
---|---|---|
committer | dave <dave@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-03-10 16:32:05 +0000 |
commit | 9456cf380a51d4863dd0ee96499763bb32f54284 (patch) | |
tree | 510773dbfd611deb6c399958e728f735d16a2ed2 /mod/riverdashboard/endpoint/ping.php | |
parent | 90c80171f9f089b4f2448c496e72d33432b5d724 (diff) | |
download | elgg-9456cf380a51d4863dd0ee96499763bb32f54284.tar.gz elgg-9456cf380a51d4863dd0ee96499763bb32f54284.tar.bz2 |
the beginnings of a new activity river with ajax notification and conversation clustering.
git-svn-id: http://code.elgg.org/elgg/trunk@5344 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod/riverdashboard/endpoint/ping.php')
-rw-r--r-- | mod/riverdashboard/endpoint/ping.php | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/mod/riverdashboard/endpoint/ping.php b/mod/riverdashboard/endpoint/ping.php new file mode 100644 index 000000000..2a87da746 --- /dev/null +++ b/mod/riverdashboard/endpoint/ping.php @@ -0,0 +1,71 @@ +<?php
+/**
+ * Check for new activity.
+ * Outputs # of new activity items since $_GET['last_checked'] time
+ */
+
+// Load Elgg engine will not include plugins
+require_once(dirname(dirname(dirname(dirname(__FILE__)))) . "/engine/start.php");
+
+// check for last checked time
+if (!$seconds_passed = get_input('seconds_passed', 0)) {
+ echo '';
+ exit;
+}
+
+$last_reload = time() - $seconds_passed;
+
+//grab any new annotations
+$annotations = count_annotations('', '', '', '', '', '', '', $last_reload);
+if(!$annotations)
+ $annotations = 0;
+//grab all new objects created
+$entity_creation = elgg_get_entities(array(
+ 'count' => TRUE,
+ 'created_time_lower' => $last_reload,
+ 'wheres' => array('e.type != \'user\'')
+));
+if(!$entity_creation)
+ $entity_creation = 0;
+//grab any entities updated
+$entity_update = elgg_get_entities(array(
+ 'count' => TRUE,
+ 'modified_time_lower' => $last_reload,
+ 'wheres' => array('e.type != \'user\'')
+));
+if(!$entity_update)
+ $entity_update = 0;
+//get any relationships, such as friending - this is not working quite right yet
+//$relationship_action = elgg_get_entities_from_relationship(array('count' => TRUE));
+//if(!$relationship_action)
+// $relationship_action = 0;
+
+//sum all totals
+$all_activity = $annotations + $entity_creation + $entity_update;
+
+if ($all_activity > 0) {
+ $s = ($all_activity == 1) ? '' : 's';
+ echo "<a href=\"\" onClick=\"window.location.reload();\" class=\"update_wire\" style='margin-top:9px;'>$all_activity update$s!</a>";
+ //echo "<script type=\"text/javascript\">$(document).ready(function() { document.title = \"[{$all_activity}] new item{$s}!\"; }); </script>";
+?>
+ <script type="text/javascript">
+ $(document).ready(function(){
+
+ var pageTitleSubstring;
+ var stringStartPosition = document.title.indexOf("]");
+
+ if (stringStartPosition == -1) { // we haven't already altered page title
+ pageTitleSubstring = document.title;
+ } else { // we previously prepended to page title, need to remove it first
+ pageTitleSubstring = document.title.substring( (stringStartPosition+2) );
+ }
+
+ document.title = "[<?php echo $all_activity; ?> update<?php echo $s; ?>] "+pageTitleSubstring;
+ });
+ </script>
+
+<?php
+} else {
+ echo '';
+ exit;
+}
|