aboutsummaryrefslogtreecommitdiffstats
path: root/mod
diff options
context:
space:
mode:
Diffstat (limited to 'mod')
-rw-r--r--mod/community.php2
-rw-r--r--mod/contacts.php2
-rw-r--r--mod/directory.php2
-rw-r--r--mod/help.php3
-rw-r--r--mod/message.php2
-rw-r--r--mod/network.php2
-rw-r--r--mod/notifications.php2
-rw-r--r--mod/ping.php153
-rw-r--r--mod/profile.php5
-rw-r--r--mod/profiles.php2
-rw-r--r--mod/search.php2
-rw-r--r--mod/settings.php2
12 files changed, 151 insertions, 28 deletions
diff --git a/mod/community.php b/mod/community.php
index cf43598b5..cb255029f 100644
--- a/mod/community.php
+++ b/mod/community.php
@@ -25,7 +25,7 @@ function community_content(&$a, $update = 0) {
$o .= '<h3>' . t('Community') . '</h3>';
if(! $update) {
- $o .= '<script> $(document).ready(function() { $(\'#nav-community-link\').addClass(\'nav-selected\'); });</script>';
+ nav_set_selected('community');
$o .= '<div id="live-community"></div>' . "\r\n";
$o .= "<script> var profile_uid = -1; var netargs = '/?f='; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
}
diff --git a/mod/contacts.php b/mod/contacts.php
index 307e9b15b..4decc5042 100644
--- a/mod/contacts.php
+++ b/mod/contacts.php
@@ -114,7 +114,7 @@ function contacts_content(&$a) {
$sort_type = 0;
$o = '';
- $o .= '<script> $(document).ready(function() { $(\'#nav-contacts-link\').addClass(\'nav-selected\'); });</script>';
+ nav_set_selected('contacts');
$_SESSION['return_url'] = $a->get_baseurl() . '/' . $a->cmd;
diff --git a/mod/directory.php b/mod/directory.php
index 0c60f04bf..93abcd5de 100644
--- a/mod/directory.php
+++ b/mod/directory.php
@@ -22,7 +22,7 @@ function directory_content(&$a) {
}
$o = '';
- $o .= '<script> $(document).ready(function() { $(\'#nav-directory-link\').addClass(\'nav-selected\'); });</script>';
+ nav_set_selected('directory');
if(x($_SESSION,'theme'))
unset($_SESSION['theme']);
diff --git a/mod/help.php b/mod/help.php
index 495b4ccc2..59e062f6d 100644
--- a/mod/help.php
+++ b/mod/help.php
@@ -17,6 +17,7 @@ function load_doc_file($s) {
function help_content(&$a) {
+ nav_set_selected('help');
global $lang;
@@ -41,4 +42,4 @@ function help_content(&$a) {
return Markdown($text);
-} \ No newline at end of file
+}
diff --git a/mod/message.php b/mod/message.php
index 165d63814..cc94730bc 100644
--- a/mod/message.php
+++ b/mod/message.php
@@ -36,7 +36,7 @@ function message_post(&$a) {
function message_content(&$a) {
$o = '';
- $o .= '<script> $(document).ready(function() { $(\'#nav-messages-link\').addClass(\'nav-selected\'); });</script>';
+ nav_set_selected('messages');
if(! local_user()) {
notice( t('Permission denied.') . EOL);
diff --git a/mod/network.php b/mod/network.php
index 54fb2a0a4..c0645fe7a 100644
--- a/mod/network.php
+++ b/mod/network.php
@@ -98,7 +98,7 @@ function network_content(&$a, $update = 0) {
}
}
- $o .= '<script> $(document).ready(function() { $(\'#nav-network-link\').addClass(\'nav-selected\'); });</script>';
+ nav_set_selected('network');
$_SESSION['return_url'] = $a->cmd;
diff --git a/mod/notifications.php b/mod/notifications.php
index 8c32ee862..0c35d4cd1 100644
--- a/mod/notifications.php
+++ b/mod/notifications.php
@@ -64,7 +64,7 @@ function notifications_content(&$a) {
}
$o = '';
- $o .= '<script> $(document).ready(function() { $(\'#nav-notify-link\').addClass(\'nav-selected\'); });</script>';
+ nav_set_selected("notifications");
if(($a->argc > 1) && ($a->argv[1] == 'all'))
$sql_extra = '';
diff --git a/mod/ping.php b/mod/ping.php
index 924f9ff76..8a3d284af 100644
--- a/mod/ping.php
+++ b/mod/ping.php
@@ -1,5 +1,5 @@
<?php
-
+require_once("include/datetime.php");
function ping_init(&$a) {
@@ -7,42 +7,161 @@ function ping_init(&$a) {
if(! local_user())
xml_status(0);
- $r = q("SELECT COUNT(*) AS `total` FROM `item`
- WHERE `unseen` = 1 AND `visible` = 1 AND `deleted` = 0 AND `uid` = %d AND `wall` = 0 ",
+
+ $comments = array();
+ $likes = array();
+ $dislikes = array();
+ $friends = array();
+
+ $r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`,
+ `item`.`author-link`, `item`.`author-avatar`, `item`.`created`,
+ `pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink`
+ FROM `item` INNER JOIN `item` as `pitem` ON `pitem`.`id`=`item`.`parent`
+ WHERE `item`.`unseen` = 1 AND `item`.`visible` = 1 AND
+ `item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 0",
intval(local_user())
);
- $network = $r[0]['total'];
+
+ $network = count($r);
+ foreach ($r as $it) {
+ switch($it['verb']){
+ case 'http://activitystrea.ms/schema/1.0/like':
+ $likes[] = $it;
+ break;
+ case 'http://activitystrea.ms/schema/1.0/dislike':
+ $dislikes[] = $it;
+ break;
+ case 'http://activitystrea.ms/schema/1.0/make-friend':
+ $friends[] = $it;
+ break;
+ default:
+ if ($it['parent']!=$it['id']) $comments[] = $it;
+ }
+ }
+
- $r = q("SELECT COUNT(*) AS `total` FROM `item`
- WHERE `unseen` = 1 AND `visible` = 1 AND `deleted` = 0 AND `uid` = %d AND `wall` = 1 ",
+ $r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`,
+ `item`.`author-link`, `item`.`author-avatar`, `item`.`created`,
+ `pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink`
+ FROM `item` INNER JOIN `item` as `pitem` ON `pitem`.`id`=`item`.`parent`
+ WHERE `item`.`unseen` = 1 AND `item`.`visible` = 1 AND
+ `item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 1",
intval(local_user())
- );
- $home = $r[0]['total'];
+ );
+ $home = count($r);
+ foreach ($r as $it) {
+ switch($it['verb']){
+ case 'http://activitystrea.ms/schema/1.0/like':
+ $likes[] = $it;
+ break;
+ case 'http://activitystrea.ms/schema/1.0/dislike':
+ $dislikes[] = $it;
+ break;
+ case 'http://activitystrea.ms/schema/1.0/make-friend':
+ $friends[] = $it;
+ break;
+ default:
+ if ($it['parent']!=$it['id']) $comments[] = $it;
+ }
+ }
- $r = q("SELECT COUNT(*) AS `total` FROM `intro`
- WHERE `uid` = %d AND `blocked` = 0 AND `ignore` = 0 ",
+
+ $intros1 = q("SELECT COUNT(`intro`.`id`) AS `total`, `intro`.`id`, `intro`.`datetime`,
+ `fcontact`.`name`, `fcontact`.`url`, `fcontact`.`photo`
+ FROM `intro` LEFT JOIN `fcontact` ON `intro`.`fid` = `fcontact`.`id`
+ WHERE `intro`.`uid` = %d AND `intro`.`blocked` = 0 AND `intro`.`ignore` = 0 AND `intro`.`fid`!=0",
+ intval(local_user())
+ );
+ $intros2 = q("SELECT COUNT(`intro`.`id`) AS `total`, `intro`.`id`, `intro`.`datetime`,
+ `contact`.`name`, `contact`.`url`, `contact`.`photo`
+ FROM `intro` LEFT JOIN `contact` ON `intro`.`contact-id` = `contact`.`id`
+ WHERE `intro`.`uid` = %d AND `intro`.`blocked` = 0 AND `intro`.`ignore` = 0 AND `intro`.`contact-id`!=0",
intval(local_user())
);
- $intro = $r[0]['total'];
+
+ $intro = $intros1[0]['total'] + $intros2[0]['total'];
+ if ($intros1[0]['total']==0) $intros1=Array();
+ if ($intros2[0]['total']==0) $intros2=Array();
+ $intros = $intros1+$intros2;
+
+
$myurl = $a->get_baseurl() . '/profile/' . $a->user['nickname'] ;
- $r = q("SELECT COUNT(*) AS `total` FROM `mail`
+ $mails = q("SELECT *, COUNT(*) AS `total` FROM `mail`
WHERE `uid` = %d AND `seen` = 0 AND `from-url` != '%s' ",
intval(local_user()),
dbesc($myurl)
);
- $mail = $r[0]['total'];
-
+ $mail = $mails[0]['total'];
+
if ($a->config['register_policy'] == REGISTER_APPROVE && is_site_admin()){
- $r = q("SELECT COUNT(*) AS `total` FROM `register`");
- $register = $r[0]['total'];
+ $regs = q("SELECT `contact`.`name`, `contact`.`url`, `contact`.`micro`, `register`.`created`, COUNT(*) as `total` FROM `contact` RIGHT JOIN `register` ON `register`.`uid`=`contact`.`uid` WHERE `contact`.`self`=1");
+ $register = $regs[0]['total'];
} else {
$register = "0";
}
+
+ function xmlize($href, $name, $url, $photo, $date, $message){
+ $notsxml = '<note href="%s" name="%s" url="%s" photo="%s" date="%s">%s</note>';
+ return sprintf ( $notsxml,
+ $href, $name, $url, $photo, $date, $message
+ );
+ }
header("Content-type: text/xml");
- echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n<result><intro>$intro</intro><mail>$mail</mail><net>$network</net><home>$home</home><register>$register</register></result>\r\n";
+ echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>
+ <result>
+ <intro>$intro</intro>
+ <mail>$mail</mail>
+ <net>$network</net>
+ <home>$home</home>";
+ if ($register!=0) echo "<register>$register</register>";
+
+ $tot = $mail+$intro+$register+count($comments)+count($likes)+count($dislikes)+count($friends);
+
+ echo ' <notif count="'.$tot.'">';
+ if ($intro>0){
+ foreach ($intros as $i) {
+ echo xmlize( $a->get_baseurl().'/notifications/'.$i['id'], $i['name'], $i['url'], $i['photo'], relative_date($i['datetime']), t("{0} wants to be your friend") );
+ };
+ }
+ if ($mail>0){
+ foreach ($mails as $i) {
+ echo xmlize( $a->get_baseurl().'/message/'.$i['id'], $i['from-name'], $i['from-url'], $i['from-photo'], relative_date($i['created']), t("{0} sent you a message") );
+ };
+ }
+ if ($register>0){
+ foreach ($regs as $i) {
+ echo xmlize( $a->get_baseurl().'/admin/users/', $i['name'], $i['url'], $i['micro'], relative_date($i['created']), t("{0} requested registration") );
+ };
+ }
+
+ if (count($comments)){
+ foreach ($comments as $i) {
+ echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), sprintf( t("{0} commented %s's post"), $i['pname'] ) );
+ };
+ }
+ if (count($likes)){
+ foreach ($likes as $i) {
+ echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), sprintf( t("{0} like %s's post"), $i['pname'] ) );
+ };
+ }
+ if (count($dislikes)){
+ foreach ($dislikes as $i) {
+ echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), sprintf( t("{0} dislike %s's post"), $i['pname'] ) );
+ };
+ }
+ if (count($friends)){
+ foreach ($friends as $i) {
+ echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), sprintf( t("{0} is now friend with %s"), $i['pname'] ) );
+ };
+ }
+
+
+ echo " </notif>
+ </result>
+ ";
killme();
}
diff --git a/mod/profile.php b/mod/profile.php
index 2dd5df758..66fa17554 100644
--- a/mod/profile.php
+++ b/mod/profile.php
@@ -70,8 +70,9 @@ function profile_content(&$a, $update = 0) {
$a->profile['profile_uid'] = $update;
}
else {
- if($a->profile['profile_uid'] == local_user())
- $o .= '<script> $(document).ready(function() { $(\'#nav-home-link\').addClass(\'nav-selected\'); });</script>';
+ if($a->profile['profile_uid'] == local_user()) {
+ nav_set_selected('home');
+ }
}
$contact = null;
diff --git a/mod/profiles.php b/mod/profiles.php
index b269fa30c..5cc9fa38c 100644
--- a/mod/profiles.php
+++ b/mod/profiles.php
@@ -220,7 +220,7 @@ function profiles_post(&$a) {
function profiles_content(&$a) {
$o = '';
- $o .= '<script> $(document).ready(function() { $(\'#nav-profiles-link\').addClass(\'nav-selected\'); });</script>';
+ nav_set_selected('profiles');
if(! local_user()) {
notice( t('Permission denied.') . EOL);
diff --git a/mod/search.php b/mod/search.php
index 88ff9bbb7..f7ce75905 100644
--- a/mod/search.php
+++ b/mod/search.php
@@ -13,6 +13,8 @@ function search_content(&$a) {
notice( t('Public access denied.') . EOL);
return;
}
+
+ nav_set_selected('search');
require_once("include/bbcode.php");
require_once('include/security.php');
diff --git a/mod/settings.php b/mod/settings.php
index 1b4098de8..44ebdd77b 100644
--- a/mod/settings.php
+++ b/mod/settings.php
@@ -299,7 +299,7 @@ if(! function_exists('settings_content')) {
function settings_content(&$a) {
$o = '';
- $o .= '<script> $(document).ready(function() { $(\'#nav-settings-link\').addClass(\'nav-selected\'); });</script>';
+ nav_set_selected('settings');
if(! local_user()) {
notice( t('Permission denied.') . EOL );