summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--EVENTS.txt6
-rw-r--r--doc-src/badge65
-rw-r--r--js/identica-badge.js3
-rw-r--r--lib/action.php7
-rw-r--r--lib/router.php50
-rwxr-xr-xscripts/sitemap.php3
-rw-r--r--theme/base/css/display.css2
7 files changed, 118 insertions, 18 deletions
diff --git a/EVENTS.txt b/EVENTS.txt
index af0bee587..37e2203d5 100644
--- a/EVENTS.txt
+++ b/EVENTS.txt
@@ -82,3 +82,9 @@ StartNoticeSave: before inserting a notice (good place for content filters)
EndNoticeSave: after inserting a notice and related code
- $notice: notice that was saved (with ID and URI)
+StartShowLocalNavBlock: Showing the local nav menu
+- $action: the current action
+
+EndShowLocalNavBlock: At the end of the local nav menu
+- $action: the current action
+
diff --git a/doc-src/badge b/doc-src/badge
new file mode 100644
index 000000000..1c368eb69
--- /dev/null
+++ b/doc-src/badge
@@ -0,0 +1,65 @@
+Install the %%site.name%% badge on you blog or web site to show the latest updates
+from you and your friends!
+
+<MTMarkdownOptions output='raw'>
+<script type="text/javascript" src="http://identi.ca/js/identica-badge.js">
+{
+ "user":"kentbrew",
+ "server":"identi.ca",
+ "headerText":" and friends"
+}
+</script>
+</MTMarkdownOptions>
+
+Things to try
+--------------
+
+* Click an avatar and the badge will refresh with that user's timeline
+* Click a nickname to open a user's profile in your browser
+* Click a notice's timestamp to view the notice in your browser
+* @-replies and #tags are live links
+
+## Installation instructions
+
+Copy and paste the following JavaScript into an HTML page where
+you want the badge to show up. Substitute your own ID in the user
+parameter.
+
+<pre>
+ &lt;script type=&quot;text/javascript&quot; src=&quot;http://identi.ca/js/identica-badge.js&quot;&gt;
+ {
+ &quot;user&quot;:&quot;kentbrew&quot;,
+ &quot;server&quot;:&quot;identi.ca&quot;,
+ &quot;headerText&quot;:&quot; and friends&quot;
+ }
+ &lt;/script&gt;
+
+</pre>
+
+
+
+Valid parameters for the badge:
+-------------------------------
+
+* user : defaults to 7000 (@kentbrew)
+* headerText : defaults to empty
+* height : defaults to 350px
+* width : defaults to 300px
+* background : defaults to #193441. If you set evenBackground, oddBackground,
+ and headerBackground, you won't see it at all.
+* border : defaults to 1px solid black
+* userColor : defaults to whatever link color is set to on your page
+* headerBackground : defaults to transparent
+* headerColor : defaults to white
+* evenBackground : defaults to #fff
+* oddBackground : defaults to #eee
+* thumbnailBorder : 1px solid black
+* thumbnailSize : defaults to 24px
+* padding : defaults to 3px
+* server : defaults to identi.ca
+
+Licence
+-------
+
+Identi.ca badge by [Kent Brewster](http://kentbrewster.com/identica-badge/).
+Licenced under [CC-BY-SA-3](http://kentbrewster.com/rights-and-permissions/).
diff --git a/js/identica-badge.js b/js/identica-badge.js
index 5c586b5d6..869230b7a 100644
--- a/js/identica-badge.js
+++ b/js/identica-badge.js
@@ -1,4 +1,5 @@
// identica badge -- updated to work with the native API, 12-4-2008
+// Modified to point to Identi.ca, 2-20-2009 by Zach
// copyright Kent Brewster 2008
// see http://kentbrewster.com/identica-badge for info
( function() {
@@ -127,7 +128,7 @@
var a = document.createElement('A');
a.innerHTML = 'get this';
a.target = '_blank';
- a.href = 'http://kentbrewster.com/identica-badge';
+ a.href = 'http://identica/doc/badge';
$.s.f.appendChild(a);
$.s.appendChild($.s.f);
$.f.getUser();
diff --git a/lib/action.php b/lib/action.php
index b1e700b67..455ebeff0 100644
--- a/lib/action.php
+++ b/lib/action.php
@@ -474,7 +474,10 @@ class Action extends HTMLOutputter // lawsuit
function showCore()
{
$this->elementStart('div', array('id' => 'core'));
- $this->showLocalNavBlock();
+ if (Event::handle('StartShowLocalNavBlock', array($this))) {
+ $this->showLocalNavBlock();
+ Event::handle('EndShowLocalNavBlock', array($this));
+ }
if (Event::handle('StartShowContentBlock', array($this))) {
$this->showContentBlock();
Event::handle('EndShowContentBlock', array($this));
@@ -657,6 +660,8 @@ class Action extends HTMLOutputter // lawsuit
_('Source'));
$this->menuItem(common_local_url('doc', array('title' => 'contact')),
_('Contact'));
+ $this->menuItem(common_local_url('doc', array('title' => 'badge')),
+ _('Badge'));
Event::handle('EndSecondaryNav', array($this));
}
$this->elementEnd('ul');
diff --git a/lib/router.php b/lib/router.php
index 85425bed2..e842604e9 100644
--- a/lib/router.php
+++ b/lib/router.php
@@ -228,20 +228,31 @@ class Router
// direct messages
- $m->connect('api/direct_messages/:method',
- array('action' => 'api',
- 'apiaction' => 'direct_messages'),
- array('method' => '(sent|new)(\.(xml|json|atom|rss))?'));
+ foreach (array('xml', 'json') as $e) {
+ $m->connect('api/direct_messages/new.'.$e,
+ array('action' => 'api',
+ 'apiaction' => 'direct_messages',
+ 'method' => 'create.'.$e));
+ }
+
+ foreach (array('xml', 'json', 'rss', 'atom') as $e) {
+ $m->connect('api/direct_messages.'.$e,
+ array('action' => 'api',
+ 'apiaction' => 'direct_messages',
+ 'method' => 'direct_messages.'.$e));
+ }
+
+ foreach (array('xml', 'json', 'rss', 'atom') as $e) {
+ $m->connect('api/direct_message/sent.'.$e,
+ array('action' => 'api',
+ 'apiaction' => 'direct_messages',
+ 'method' => 'sent.'.$e));
+ }
$m->connect('api/direct_messages/destroy/:argument',
array('action' => 'api',
'apiaction' => 'direct_messages'));
- $m->connect('api/:method',
- array('action' => 'api',
- 'apiaction' => 'direct_messages'),
- array('method' => 'direct_messages(\.(xml|json|atom|rss))?'));
-
// friendships
$m->connect('api/friendships/:method/:argument',
@@ -271,10 +282,12 @@ class Router
'apiaction' => 'favorites',
'method' => 'favorites'));
- $m->connect('api/:method',
- array('action' => 'api',
- 'apiaction' => 'favorites'),
- array('method' => 'favorites(\.(xml|json|rss|atom))?'));
+ foreach (array('xml', 'json', 'rss', 'atom') as $e) {
+ $m->connect('api/favorites.'.$e,
+ array('action' => 'api',
+ 'apiaction' => 'favorites',
+ 'method' => 'favorites.'.$e));
+ }
// notifications
@@ -347,7 +360,16 @@ class Router
function map($path)
{
- return $this->m->match($path);
+ try {
+ $match = $this->m->match($path);
+ } catch (Net_URL_Mapper_InvalidException $e) {
+ common_log(LOG_ERR, "Problem getting route for $path - " .
+ $e->getMessage());
+ $cac = new ClientErrorAction("Page not found.", 404);
+ $cac->showPage();
+ }
+
+ return $match;
}
function build($action, $args=null, $params=null, $fragment=null)
diff --git a/scripts/sitemap.php b/scripts/sitemap.php
index 51a9bbd75..39eb859bb 100755
--- a/scripts/sitemap.php
+++ b/scripts/sitemap.php
@@ -61,7 +61,8 @@ function standard_map()
)
);
- $docs = array('about', 'faq', 'contact', 'im', 'openid', 'openmublog', 'privacy', 'source');
+ $docs = array('about', 'faq', 'contact', 'im', 'openid', 'openmublog',
+ 'privacy', 'source', 'badge');
foreach($docs as $title) {
$standard_map_urls .= url(
diff --git a/theme/base/css/display.css b/theme/base/css/display.css
index b5796374e..be124f433 100644
--- a/theme/base/css/display.css
+++ b/theme/base/css/display.css
@@ -900,7 +900,7 @@ left:0;
left:29px;
}
.notice-options .notice_delete {
-left:76px;
+right:0;
}
.notice-options .notice_reply dt {
display:none;