[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
New snapshot: waterfall of features
From: |
Dmitry Borodaenko |
Subject: |
New snapshot: waterfall of features |
Date: |
Tue, 31 Mar 2009 16:55:53 +0300 |
Greetings,
New Samizdat snapshot (version 0.6.2.20090330-1 in Debian/experimental)
contains quite a lot of changes. Quoth the changelog:
- RDF sub-properties, transitive closures, must-not-bind sub-patterns
- focuses renamed back to tags
- sub-tags may be defined by moderators
- replies, versions, translations, sub-tags and other parts are
generalized as transitive sub-properties of dct:isPartOf
- back to PostgreSQL-only until new triggers are ported
- new plugin APIs: tag, route
- global API-wide plugin options
- plugin dependencies
- upload queue (fixes Savannah bug #20710)
- upload message and its multimedia parts in one go
- record original_filename
- pass a block to Sanitize to programmatically filter out or rewrite
HTML attribute values
- manual cut-off mark for short message display
- edit title of a multimedia message without re-uploading the file
(fixes Savannah bug #20402)
- lock message to prevent further replies
- allow to recover accounts blocked due to lost confirmation email, show
list of blocked accounts to moderators
- login automatically on email confirmation
- require old password to change password
- generalized dynamic page cache out of FrontpageController
- CSRF protection moved from ApplicationHelper to Request, allowing
multiple secure forms per page
- allow custom strings inside generated forms
- use Message#load_from_rdf
- ResourcesList component
- frontpage template extracted from the controller
- do not display redundant reply titles
- do not display a setting if only one option is available
- separate limit on number of tags in a list
- cookie-based flash notices
- calendar (incomplete)
For users, most interesting changes are:
- focuses are renamed back to tags
Back in 2003, people used all sorts of different terms like keywords,
categories, tags, etc., so it made sense to pick whatever was
semantically closest to how this concept works in Samizdat. Now, most
sites settled on "tags", so most users are familiar with this term,
and from usability perspective it makes perfect sense to take
advantage of that.
- sub-tags
Moderators are now allowed to define a subTagOf relation between two
tags, either from the /tags page, or via /message/reparent action. All
resources related to the sub-tag will also show up on the parent tag's
page. Thanks to the RDF storage changes, this relation is transitive,
so sub-sub-tag's resources will also appear on grand-parent's page.
- isTranslationOf
Instead of being a funny kind of reply, message translations have been
provided with their own RDF property. As a result, the old two-step
way of adding a translation is replaced with a dedicated "Translate"
button right next to "Reply". As a collateral benefit, it is no longer
allowed to add replies directly to tags (a mistake often made by new
users).
- multimedia parts
When posting a new message, you can now submit several (in default
configuration, up to 10) multimedia files that will be recorded as
parts of the parent message. Original filenames of the files will be
recorded and replaced in all HTML img/src attributes of the parent
message with locations of the files under Samizdat content directory.
This means that you can prepare a message with images locally and
upload the whole set at once, without having to upload images one by
one and editing the message afterwards to add image links.
- edit title of a multimedia message
If you want to change title of a multimedia message, you no longer
have to re-upload the same file. Just submit the edit form with new
title and no content, and the file from the previous version will be
reused.
- manual cut-off mark
Samizdat now provides you with more control over how messages are
displayed in short mode (e.g. on the front page, in the list of
replies, or on member's personal page). In addition to the limit:short
configuration option (set to 1000 characters by default), which often
causes the message to be cut in mid-sentence, it is now possible to
place a manual cut-off mark (by default, the mark is $$$). The
limit:short option overrides the cut-off mark, so the mark has to be
placed within the first 1000 characters for it to take effect.
- replies without titles
When posting a reply, you don't have to supply a title. When the title
is blank or identical to parent's title, it is not displayed. The
message can still be opened directly by clicking on "link" in the
message info line.
Admins should be aware of the following:
- database changes
This update includes massive changes to database schema and triggers.
These changes have not yet been ported from PostgreSQL to other
database engines, so if you are running Samizdat on top of MySQL or
SQLite3, you should not install this version just yet. For sites
running PostgreSQL, database migration script is provided under
doc/migration. If your database user is not samizdat, you should pipe
that script through sed like this:
sed -e 's/TO samizdat/TO youruser/g' doc/migration/upgrade_from_v0.6.2.sql
Make sure to backup your data before running this script, as can be
seen from the migration script, the changes are far from trivial and
might blow up your data in interesting and exciting ways.
- configuration changes
There are new configuration options in defaults.yaml, site:content
location in config.yaml is now expected to be relative to site base.
Make sure these changes are reflected in your configuration.
- frontpage template
Front page is now generated from frontpage_index.rhtml ERb template
and makes use of the new ResourceList component classes. If you want
to move things around on the front page, all you have to do is edit
this template. Adventurous admins may also want to add new kinds of
lists to this page, for that you would need to create new resource
list classes similar to the ones defined in
lib/samizdat/components/list.rb.
- lock replies
Site moderators are now able to lock and unlock replies to a message.
Once the lock is set, it applies recursively to all replies below the
message, so the whole discussion is frozen. It is possible to unlock
either the whole thread, or individual sub-threads (lock/unlock flag
of a reply overrides that of its parent).
- recover blocked accounts
Moderators can now manually unblock accounts that got stuck half-way
through registration due to lost confirmation email. List of all
blocked accounts is accessible through the moderation log page (since
account status is a private information of the member, this list is
only available to moderators).
Goodies for developers:
- RDF storage
Many of the new features rely on the following improvements in the
Samizdat RDF storage module. RDF property may be declared a
sub-property of another property. A transitive closure of a property
may be stored in a separate table supported by a set of triggers. For
example of both, see isPartOf property and its subproperties. On top
of that, RDF queries may now contain must-not-bind subpatterns denoted
by EXCEPT keyword.
- Sanitize
Sanitize#sanitize() may now be called with a block. The block is
applied to each HTML attribute, based on the result it retuns, the
attribute may be deleted or its value may be replaced. For example of
how this is used, see Content#render().
--
Dmitry Borodaenko
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- New snapshot: waterfall of features,
Dmitry Borodaenko <=