------
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
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
The following software packages are *required* for this software to
run correctly.
-- PHP 5.2.x. It may be possible to run this software on earlier
+- PHP 5.2.3+. It may be possible to run this software on earlier
versions of PHP, but many of the functions used are only available
in PHP 5.2 or above.
- MySQL 5.x. The Laconica database is stored, by default, in a MySQL
that user's default group instead. As a last resort, you can create
a new group like "mublog" and add the Web server's user to the group.
-4. You should also take this moment to make your avatar subdirectory
- writeable by the Web server. An insecure way to do this is:
+4. You should also take this moment to make your avatar, background, and
+ file subdirectories writeable by the Web server. An insecure way to do
+ this is:
chmod a+w /var/www/mublog/avatar
+ chmod a+w /var/www/mublog/background
+ chmod a+w /var/www/mublog/file
- You can also make the avatar directory writeable by the Web server
- group, as noted above.
+ You can also make the avatar, background, and file directories
+ writeable by the Web server group, as noted above.
5. Create a database to hold your microblog data. Something like this
should work:
the service, *then* set this variable to 'true'.
inviteonly: If set to 'true', will only allow registration if the user
was invited by an existing user.
+openidonly: If set to 'true', will only allow registrations and logins
+ through OpenID.
private: If set to 'true', anonymous users will be redirected to the
'login' page. Also, API methods that normally require no
authentication will require it. Note that this does not turn
to put introductory information about your service, or info about
upgrades and outages, or other community info. Any HTML will
be escaped.
-dupelimit: Time in which it's not OK for the same person to post the
- same notice; default = 60 seconds.
logo: URL of an image file to use as the logo for the site. Overrides
the logo in the theme, if any.
ssl: Whether to use SSL and https:// URLs for some or all pages.
shorturllength: Length of URL at which URLs in a message exceeding 140
characters will be sent to the user's chosen
shortening service.
-<<<<<<< HEAD:README
-design: a default design (colors and background) for the site.
- Sub-items are: backgroundcolor, contentcolor, sidebarcolor,
- textcolor, linkcolor, backgroundimage, disposition.
dupelimit: minimum time allowed for one person to say the same thing
twice. Default 60s. Anything lower is considered a user
or UI error.
-=======
->>>>>>> 0.7.x:README
db
--
server: a string with the hostname of the sphinx server.
port: an integer with the port number of the sphinx server.
+emailpost
+---------
+
+For post-by-email.
+
+enabled: Whether to enable post-by-email. Defaults to true. You will
+ also need to set up maildaemon.php.
+
+sms
+---
+
+For SMS integration.
+
+enabled: Whether to enable SMS integration. Defaults to true. Queues
+ should also be enabled.
+
+twitter
+-------
+
+For Twitter integration
+
+enabled: Whether to enable Twitter integration. Defaults to true.
+ Queues should also be enabled.
+
integration
-----------
notify: an array of URLs for ping endpoints. Default is the empty
array (no notification).
+design
+------
+
+Default design (colors and background) for the site. Actual appearance
+depends on the theme. Null values mean to use the theme defaults.
+
+backgroundcolor: Hex color of the site background.
+contentcolor: Hex color of the content area background.
+sidebarcolor: Hex color of the sidebar background.
+textcolor: Hex color of all non-link text.
+linkcolor: Hex color of all links.
+backgroundimage: Image to use for the background.
+disposition: Flags for whether or not to tile the background image.
+
+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
===============
* Brenda Wallace
* Jeffery To
* Federico Marani
+* Craig Andrews
Thanks also to the developers of our upstream library code and to the
thousands of people who have tried out Identi.ca, installed Laconi.ca,