summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--actions/all.php5
-rw-r--r--actions/replies.php5
-rw-r--r--actions/showfavorites.php4
-rw-r--r--actions/showstream.php17
-rw-r--r--lib/personal.php70
-rw-r--r--lib/util.php3
-rw-r--r--theme/default/display.css31
-rw-r--r--theme/identica/icon_foaf.gifbin0 -> 1144 bytes
-rw-r--r--theme/identica/icon_rss.pngbin0 -> 781 bytes
9 files changed, 134 insertions, 1 deletions
diff --git a/actions/all.php b/actions/all.php
index bd5b9f01e..729b8dd16 100644
--- a/actions/all.php
+++ b/actions/all.php
@@ -69,6 +69,11 @@ class AllAction extends StreamAction {
}
$this->views_menu();
+
+ $this->show_feeds_list(array(0=>array('href'=>common_local_url('allrss', array('nickname' => $user->nickname)),
+ 'type' => 'rss',
+ 'version' => 'RSS 1.0',
+ 'item' => 'allrss')));
}
function show_notices($user) {
diff --git a/actions/replies.php b/actions/replies.php
index f5bc2ce1a..529ce7e98 100644
--- a/actions/replies.php
+++ b/actions/replies.php
@@ -73,6 +73,11 @@ class RepliesAction extends StreamAction {
}
$this->views_menu();
+
+ $this->show_feeds_list(array(0=>array('href'=>common_local_url('repliesrss', array('nickname' => $user->nickname)),
+ 'type' => 'rss',
+ 'version' => 'RSS 1.0',
+ 'item' => 'repliesrss')));
}
function show_replies($user) {
diff --git a/actions/showfavorites.php b/actions/showfavorites.php
index f7061dc08..c18c73a7a 100644
--- a/actions/showfavorites.php
+++ b/actions/showfavorites.php
@@ -68,6 +68,10 @@ class ShowfavoritesAction extends StreamAction {
common_notice_form('all');
}
+ $this->show_feeds_list(array(0=>array('href'=>common_local_url('favoritesrss', array('nickname' => $user->nickname)),
+ 'type' => 'rss',
+ 'version' => 'RSS 1.0',
+ 'item' => 'Favorites')));
$this->views_menu();
}
diff --git a/actions/showstream.php b/actions/showstream.php
index 16bffa4ea..9db31c108 100644
--- a/actions/showstream.php
+++ b/actions/showstream.php
@@ -72,8 +72,25 @@ class ShowstreamAction extends StreamAction {
}
$this->views_menu();
+
+ $this->show_feeds_list(array(0=>array('href'=>common_local_url('userrss', array('nickname' => $user->nickname)),
+ 'type' => 'rss',
+ 'version' => 'RSS 1.0',
+ 'item' => 'notices'),
+ 1=>array('href'=>common_local_url('usertimeline', array('nickname' => $user->nickname)),
+ 'type' => 'atom',
+ 'version' => 'Atom 1.0',
+ 'item' => 'usertimeline'),
+
+ 2=>array('href'=>common_local_url('foaf',array('nickname' => $user->nickname)),
+ 'type' => 'rdf',
+ 'version' => 'FOAF',
+ 'item' => 'foaf')));
}
+
+
+
function show_header($user) {
# Feeds
common_element('link', array('rel' => 'alternate',
diff --git a/lib/personal.php b/lib/personal.php
index 248b4cc6b..f1c6ea9b1 100644
--- a/lib/personal.php
+++ b/lib/personal.php
@@ -84,6 +84,74 @@ class PersonalAction extends Action {
common_element_end('ul');
}
+
+ function show_feeds_list($feeds) {
+ common_element_start('div', array('class' => 'feeds'));
+ common_element('p', null, 'Feeds:');
+ common_element_start('ul', array('class' => 'xoxo'));
+
+ foreach ($feeds as $key => $value) {
+ $this->common_feed_item($feeds[$key]);
+ }
+ common_element_end('ul');
+ common_element_end('div');
+ }
+
+ function common_feed_item($feed) {
+ $nickname = $this->trimmed('nickname');
+
+ switch($feed['item']) {
+ case 'notices': default:
+ $feed_classname = $feed['type'];
+ $feed_mimetype = "application/".$feed['type']."+xml";
+ $feed_title = "$nickname's ".$feed['version']." notice feed";
+ $feed['textContent'] = "RSS";
+ break;
+
+ case 'allrss':
+ $feed_classname = $feed['type'];
+ $feed_mimetype = "application/".$feed['type']."+xml";
+ $feed_title = $feed['version']." feed for $nickname and friends";
+ $feed['textContent'] = "RSS";
+ break;
+
+ case 'repliesrss':
+ $feed_classname = $feed['type'];
+ $feed_mimetype = "application/".$feed['type']."+xml";
+ $feed_title = $feed['version']." feed for replies to $nickname";
+ $feed['textContent'] = "RSS";
+ break;
+
+ case 'foaf':
+ $feed_classname = "foaf";
+ $feed_mimetype = "application/".$feed['type']."+xml";
+ $feed_title = "$nickname's FOAF file";
+ $feed['textContent'] = "FOAF";
+ break;
+
+ case 'favoritesrss':
+ $feed_classname = "favorites";
+ $feed_mimetype = "application/".$feed['type']."+xml";
+ $feed_title = "Feed for favorites of $nickname";
+ $feed['textContent'] = "RSS";
+ break;
+
+ case 'usertimeline':
+ $feed_classname = "atom";
+ $feed_mimetype = "application/".$feed['type']."+xml";
+ $feed_title = "$nickname's ".$feed['version']." notice feed";
+ $feed['textContent'] = "Atom";
+ break;
+ }
+ common_element_start('li');
+ common_element('a', array('href' => $feed['href'],
+ 'class' => $feed_classname,
+ 'type' => $feed_mimetype,
+ 'title' => $feed_title),
+ $feed['textContent']);
+ common_element_end('li');
+ }
+
function source_link($source) {
$source_name = _($source);
@@ -107,4 +175,4 @@ class PersonalAction extends Action {
}
return;
}
-} \ No newline at end of file
+}
diff --git a/lib/util.php b/lib/util.php
index 6f6d615e5..2b4071ba6 100644
--- a/lib/util.php
+++ b/lib/util.php
@@ -1029,6 +1029,9 @@ function common_fancy_url($action, $args=NULL) {
} else {
return common_path($args['nickname']);
}
+
+ case 'usertimeline':
+ return common_path("api/statuses/user_timeline/".$args['nickname']."atom");
case 'confirmaddress':
return common_path('main/confirmaddress/'.$args['code']);
case 'userbyid':
diff --git a/theme/default/display.css b/theme/default/display.css
index f4eb917ef..b17e5f448 100644
--- a/theme/default/display.css
+++ b/theme/default/display.css
@@ -138,6 +138,37 @@ p#branding a {
border-right: 1px solid #dcaa3f;
}
+
+.feeds {
+clear:both;
+float:right;
+margin-top:1.25em;
+position:absolute;
+right:0;
+bottom:-30px;
+}
+.feeds * {
+line-height:1.4;
+padding:0;
+margin:0;
+font-size:12px;
+}
+
+.feeds p {
+font-weight:bold;
+display:inline;
+display:none;
+}
+.feeds ul {
+display:inline;
+}
+.feeds li {
+list-style-type:none;
+display:inline;
+margin-left:0.5em;
+}
+
+
/* ----- Nav Footer ----- */
#nav_sub {
clear: both;
diff --git a/theme/identica/icon_foaf.gif b/theme/identica/icon_foaf.gif
new file mode 100644
index 000000000..f8f784423
--- /dev/null
+++ b/theme/identica/icon_foaf.gif
Binary files differ
diff --git a/theme/identica/icon_rss.png b/theme/identica/icon_rss.png
new file mode 100644
index 000000000..da7a39b4e
--- /dev/null
+++ b/theme/identica/icon_rss.png
Binary files differ