## Weblogger Documentation

By Lars Pind and Simon Carstensen

### Download

The blogger now lives in the OpenACS cvs repository.

### Getting started

Install the package on your system, mount a new instance somewhere on the site map, make sure you have create permission on the instance, and then visit the URL where you mounted it. Now you can add your first blog entry.

### Syndicating a blog (putting it on your front page)

If you want to include a blog as part of another page, that's pretty simple.

If you're including in an ADP, say:

>     <include src="/packages/lars-blogger/www/blog" url="/blog">

... for the non-cached version, and ...

>     <%=[lars_blog_get_as_string -url "/blog"]%>

... for the cached version. There shouldn't be any problems using the cached version, as the cache should be flushed whenever anything changes.

From a Tcl page:

>     set blog_html [template::adp_parse "[acs_package_root_dir "lars-blogger"]/www/blog" [list url "/blog"]]

... for the non-cached version, and ...

>     [lars_blog_get_as_string -url "/blog"]

... for the cached version.

All of these are shown with an argument 'url' here, but they all take a package_id argument instead, if you prefer that and know what the package_id is. If nothing's supplied, the current package is used, which is generally not what you want.

### Technical Info

The package fully supports multiple instances. You can mount several instances in your site map, and they'll stay properly isolated from each other. Alternatively you can let multiple users post to one instance by granting create permissions. Mounting Weblogger under, say, /blog, you will have /blog/user/screenname displaying the entries of one user and /blog displaying either a list of all bloggers (this is done by setting the parameter DisplayUsersP to 1) or all entries posted to the instance (the default).

Contents in your blog entries are assumed to be full-blooded ADP-ified HTML, so don't give people access to post a blog (i.e. grant create permissions on the instance) unless you trust them. This also means that if you've added custom ADP tags, those are also available to you in your blog.

### Permissions

- 'read' means people can read entries.
- 'create' means people can create entries and edit/publish/draft/delete their own entries.
- 'write' means people can edit/draft/publish/delete all entries in the package instance.
- 'admin' means people can define categories, etc.

### weblogs.com update ping

There are a couple parameters governing this feature. You can turn it on or off on a per-package basis. And you can specify which URL you want to export to weblogs.com, in case it's not the one the package instance is mounted at. This can be useful if you're including the blog on other pages, for example your site's front page. Thanks to Jerry Asher for the code to do this.

### RSS Feed

The RSS feed is version 1.0 only, and uses the rss-support package. You should be able to simply visit the admin page of your new blogger instance and click the "Setup RSS" link, and you'll have an RSS feed.

Then you'll need to set the parameters and say that your rss_file_name is at /where-your-blogger-instnace-sists/rss/rss.xml. If you leave this blank, we won't advertise your RSS feed URL anywhere.

You can also supply your own channel image through the parameters.

### XML-RPC APIs

The Blogger and MetaWeblog APIs are supported. An RSD link is placed on your Blog's front page, allowing XML-RPC client tools to automatically discover which API's they can use. See the XML-RPC package documentation for more details. Disable the XML-RPC server to disallow access to your blog via XML-RPC.

### Posting From News Aggregator via URL

Some news aggregators can blog items you read via simply sending you to the proper URL. Here's what you need to specify in FeedDemon to make Blog-this-item work there:

    URL-of-your-blog/entry-edit?title=$ITEM_TITLE$&title_url=$ITEM_LINK$&content=$ITEM_DESCRIPTION$

### Road Map

- Full-text-search-index blog entries so the archives are more useful.
- Use new categories package for categorization
- Use content repository.
- Ability to modify templates for each instance and user individually through the UI.
- WYISIYG editor
- Improved RSS 2.0 feed stuff
- Improved Configuration Settings.
- Technorati
- Blogroll.
- Integrate with bookshelf, photo-album in a portal
- Make it safe to use in a not-so-protected environment, e.g., disable <% ... %> ADP notation.
- Better documentation.
- Moderation-feature: Entries posted by non-admins must go through a workflow-administered approval process.
- Nicer interface (MovableType/TypePad has a nice interface)

### Version History

- 1.0 Added support for categories, cleaned up permissions handling, styled with stylesheets, trackback support.
- 0.9.2 Added parameters to control the number of entries shown on the front page (July 10, 2003)
- 0.9 Added support for multiple users. (June 10, 2003)
- 0.8.7 Fixed notifications to include the title_url, and to not have extra spaces in the month name. (May 11, 2003)
- 0.8.6 Cleaned up RSS-support even more and made it work under Oracle. Also made a slight style change, using the &raquo; (») style for action links, which I've adopted for other packages. It's less intrusive than the harshly-colored arrow-box.gif I used to use. (May 9, 2003)
- 0.8.5 Added title URL, cleanup (March 28, 2003)
- 0.8.4 Oops, getting behind on the version history. In the last few releases, I've rearranged a bunch of templates to make it more consistent and easier to customize; I've fixed the code that sets up the RSS stuff, so you can now simply go to the admin page and say "setup RSS"; I've integrated the new richtext widget which I added to the templating system. (February 6, 2003)
- 0.7d Finished port to Oracle. Upgraded PG drop script. Renamed RSS proc which requires running the SQL upgrade script (for PG). Bug-fix to bypass 'draft' and publish directly. -vinodk (August 15, 2002)
- 0.6.4d Added poster information, optional per parameter. Added "url" shortcut variable to the blog template. Updated documentation. (July 23, 2002)
- 0.6.3d Added drop scripts, and made the create script call rss-register. Fixed minor bugs. (July 22, 2002)
- 0.6.1d Fixed RSS last update bug. (Jun 2, 2002)
- 0.6d Added RSS feed. Woohoo! (June 1, 2002)
- 0.5d Added weblogs.com update ping. (June 1, 2002)
- 0.4d Added Google link, new style. (May 31, 2002)
- 0.3.3d Added Peter Marklund's arrow-box.gif patch. (May 13, 2002)
- 0.3.2d Missing files from the distribution.
- 0.3d Improved admin interface, added documentation. (March 24, 2002)
- 0.2d Allow and show comments on blog. (March 23, 2002)
- 0.1d Initial version. (February 18, 2002)

### License

Released under the GPL.