From 9e7e440be9ef172cb9e0bda40e34726c2131d792 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Wed, 15 Jul 2009 15:43:21 -0400 Subject: [PATCH 1/3] update release date and some extra stuff in the features --- README | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/README b/README index 2c92a75da8..3e04991d01 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 From 488befd6282bdcc706920fcc0332943ae808af00 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Wed, 15 Jul 2009 16:03:17 -0400 Subject: [PATCH 2/3] add some info about plugins --- README | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/README b/README index 3e04991d01..0214e49315 100644 --- a/README +++ b/README @@ -1429,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 =============== From eb22f06ac6ca30b850be71cbb8358c0715eca7f9 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Wed, 15 Jul 2009 16:57:39 -0400 Subject: [PATCH 3/3] conversation action is readonly --- actions/conversation.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/actions/conversation.php b/actions/conversation.php index 0eb0d86d65..c8755ba6ef 100644 --- a/actions/conversation.php +++ b/actions/conversation.php @@ -116,6 +116,11 @@ class ConversationAction extends Action $cnt = $ct->show(); } + + function isReadOnly() + { + return true; + } } /**