summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSarven Capadisli <csarven@controlyourself.ca>2009-07-15 22:15:09 +0000
committerSarven Capadisli <csarven@controlyourself.ca>2009-07-15 22:15:09 +0000
commitc256dddd02bbd4e2f892a4f4798be5292d1c1630 (patch)
treeb41d6f65e410b99e3e82b2286fbf063f17f1ebd3
parent5d82b3e02a0d65ef6d2843873d18681cc7930111 (diff)
parenteb22f06ac6ca30b850be71cbb8358c0715eca7f9 (diff)
Merge branch '0.8.x' of git@gitorious.org:laconica/mainline into 0.8.x
-rw-r--r--README57
-rw-r--r--actions/conversation.php5
2 files changed, 61 insertions, 1 deletions
diff --git a/README b/README
index 2c92a75da..0214e4931 100644
--- a/README
+++ b/README
@@ -3,7 +3,7 @@ README
------
Laconica 0.8.0 ("Shiny Happy People")
-8 July 2009
+15 July 2009
This is the README file for Laconica, the Open Source microblogging
platform. It includes installation instructions, descriptions of
@@ -116,6 +116,16 @@ This is a major feature release since version 0.7.4, released May 31
as default TOS for Laconica sites.
- Better command-line handling for scripts, including standard options
and ability to set hostname and path from the command line.
+- An experimental plugin to use Meteor (http://www.meteorserver.org/)
+ for "real-time" updates.
+- A new framework for "real-time" updates, making it easier to develop
+ plugins for different browser-based update modes.
+- RSS 2.0 and Atom feeds for groups.
+- RSS 2.0 and Atom feeds for tags.
+- Attachments can be sent by email.
+- Attachments are encoded as enclosures in RSS 2.0 and Atom.
+- Notices with attachments display in Facebook as media inline.
+
- Many, many bug fixes.
Prerequisites
@@ -1419,6 +1429,51 @@ notify third-party servers of updates.
notify: an array of URLs for ping endpoints. Default is the empty
array (no notification).
+Plugins
+=======
+
+Beginning with the 0.7.x branch, Laconica has supported a simple but
+powerful plugin architecture. Important events in the code are named,
+like 'StartNoticeSave', and other software can register interest
+in those events. When the events happen, the other software is called
+and has a choice of accepting or rejecting the events.
+
+In the simplest case, you can add a function to config.php and use the
+Event::addHandler() function to hook an event:
+
+ function AddGoogleLink($action)
+ {
+ $action->menuItem('http://www.google.com/', _('Google'), _('Search engine'));
+ return true;
+ }
+
+ Event::addHandler('EndPrimaryNav', 'AddGoogleLink');
+
+This adds a menu item to the end of the main navigation menu. You can
+see the list of existing events, and parameters that handlers must
+implement, in EVENTS.txt.
+
+The Plugin class in lib/plugin.php makes it easier to write more
+complex plugins. Sub-classes can just create methods named
+'onEventName', where 'EventName' is the name of the event (case
+matters!). These methods will be automatically registered as event
+handlers by the Plugin constructor (which you must call from your own
+class's constructor).
+
+Several example plugins are included in the plugins/ directory. You
+can enable a plugin with the following line in config.php:
+
+ addPlugin('Example', array('param1' => 'value1',
+ 'param2' => 'value2'));
+
+This will look for and load files named 'ExamplePlugin.php' or
+'Example/ExamplePlugin.php' either in the plugins/ directory (for
+plugins that ship with Laconica) or in the local/ directory (for
+plugins you write yourself or that you get from somewhere else) or
+local/plugins/.
+
+Plugins are documented in their own directories.
+
Troubleshooting
===============
diff --git a/actions/conversation.php b/actions/conversation.php
index 0eb0d86d6..c8755ba6e 100644
--- a/actions/conversation.php
+++ b/actions/conversation.php
@@ -116,6 +116,11 @@ class ConversationAction extends Action
$cnt = $ct->show();
}
+
+ function isReadOnly()
+ {
+ return true;
+ }
}
/**