You are not logged in Log in Join
You are here: Home » Members » wankyu » NeoBoard 1.1b has been released. » View NewsItem

Log in
Name

Password

 

NeoBoard 1.1b has been released.

I'm pleased to announce that NeoBoard 1.1b has been released.

For info on upgrading from previous versions, please read UPGRADE.txt. Especially users of 1.03 version MUST follow the exact upgrade steps specified in the document.

From NeoBoard 1.1b on, NeoPortal Library is required.

If you want to use NeoBoard 1.1b in a CMFPone site. Please upgrade to Plone Beta3.

What is NeoBoard?

NeoBoard is a threaded message board product. NeoBoard is unique in that it can be used either as a standalone Zope product or as a CMF product or even as a CMF Plone product. It retains the same Plonish look and feel with or without Plone.

Demo

You can test out NeoBoard at the Boards Section of the NeoBoard.net site.

Download

You can download NeoBoard at the Download Section of the NeoBoard.net site.

NeoBoard Features

NeoBoard bases most of its core features on NeoPortal Library.

Bare Zope and CMF/Plone Support ( new since 1.1a )

NeoBoard can be used either as a standalone Zope product or as a CMF or Plone product. NeoBoard retains the same look and feel no matter where you install it.

CMF-like Skins ( new since 1.1a )

NeoBoard's skins work exactly the same as CMF's. NeoBoard's skin system is modeled after CMF. If a skin works with CMF, it'll work with NeoBoard.

Plone is not a must for NeoBoard to work, but NeoBoard borrowed much from Plone's skins. With or without Plone, NeoBoard looks Plone-ish.

Collapsible Views ( new since 1.1b )

NeoBoard's article list can be collapsed or expanded.

When the list is in the collapsed view, articles with replies will show the number of replies after their titles.

When the list is in the expaneded view, articles with inline comments will show the number of comments after their titles.

Sortable Views ( new since 1.1a )

NeoBoard's articles can be sorted on a number of properties: creation date (default), category, the number of accesses, and the number of ratings.

Click on a corresponding table header and you'll get a sorted list on that property. Clicking the same header again will give you a reverse-sorted list on that property.

Minimal Article Workflow Support ( new since 1.0b )

NeoBoard Articles should be approved for public viewing. The auto-approval option can be turned on if approving articles ( or moderating them ) seems cumbersome.

NeoBoard managers can disapprove ( retract ) articles at any time.

Publishing ( new since 1.0b )

NeoBoard can be published or retracted. You can even set a date on which to publish an NeoBoard instance.

Simple Local Roles ( new since 1.0b )

The owner of a NeoBoard instance can delegate his/her manager role to other normal users via NeoBoard Managers form.

NeoBoard managers are NOT Zope managers. Their roles are restricted to maintaining the given NeoBoard instance.

Article Categories ( new since 1.0b )

NeoBoard Mangaers can define article categories under which to group NeoBoard Articles. These categories don't have anything to do with Zope Catalogs.

One can view only those articles that fall under a selected category.

Flexible Authentication Schemes ( new since 1.0b )

NeoBoard can either use ACL authentication or its own password-based per-article authentication scheme depending on the use_acl_auth option value.

When using ACL authentication, NeoBoard causes a login popup menu to appear by raising the Unauthorized error when a unauthenticated user tries to access restricted resources such as an article posting form.

When not using ACL authentication, NeoBoard presents username/password fields for posting/modifying/deleting articles or comments.

Anonymous Posting ( new since 1.1b )

NeoBoard managers can choose to allow anonymous users to post articles/comments even when ACL user authentication is in use.

Batch Actions ( new since 1.0b )

NeoBoard managers can copy, move, delete, approve, disapprove articles in a batch.

Cataloging ( new since 1.0b )

NeoBoard articles and their attachments are all catalog-aware. One can search NeoBoard articles on any combinations of the following fields:

  • Title
  • Body
  • Username
  • Email
  • Attachment ( title, description, filename combined)

Note that NeoBoard's search capability relies on ZCatalog, which, in turn, is dependent upon the underlying splitters. If your language lacks a splitter, you're out of luck.

Don't come complaining about searching not working unless you're DAMN sure you have a right splitter.

I, myself, can't search my own NeoBoards since there's no Korean splitter yet:-( Some day... I might develop one;-)

Content Caching ( new since 1.1b )

NeoBoard Articles can cache rendered content. NeoBoard Articles have two common properties: text and cooked_text.

The text property holds the raw content while the cooked_text property contains the rendered content.

Content Iconization ( new since 1.1b )

NeoBoard Articles inherit the NeoPortalIconizableContent mix-in class from NeoPortal Library.

As its name implies, NeoPortal Iconizable Content turn simple text notations into graphic icons, emoticons, for example:

            ':-)' becomes a smiling icon ( :-) ) when rendered.

Object Embedding ( new since 1.1b )

NeoBoard Articles can embed other objects. Embedded objects are rendered automatically in embedding object's view. Any changes in embedded objects are automatically updated in embedding object's view.

Even inline comments can embed and render other objects; NeoPortal object embedding follows the rules of acquisition.

Embeddable objects must provide a view named call_view. For instance. NeoPortal Article Attachment comes with a call_view template neoboard_article_attachment_call_view.pt, which returns only the rendered content without any HTML or site headers.

Embedding syntax is pretty simple:

  • __(id)__ # two underscores + opening '( + the id of the object to embed +closing )' + two underscores
  • __(image_1)__ # embeds an object whose id is image_1

Requested objects get rendered with their call_view templates or replaced with the following error messages.

  • __(REQUESTED_OBJECT_DOES_NOT_SUPPORT_EMBEDDING: image_1)__ # not NeoPortal Content Type objects
  • __(CANNOT_EMBED_UNAUTHORIZED_OBJECT_IN_THIS_CONTEXT: image_1)__ # pure authorization errors
  • __(CANNOT_CROSS_EMBED: page_1)__ # page_1 alread embeded the current object; might fall into an infinite loop
  • __(NOT_AUTHRIZED_TO_EMBED_REQUESTED_OBJECT_IN_THIS_CONTEXT: image_1)__ # not owner of the object and it's not published
  • __(REQUESTED_OBJECT_DOES_NOT_SUPPORT_EMBEDDING_NO_CALL_VIEW: image_1)__ # NeoPortal Content Type objects but no call views found
  • __(REQUESTED_OBJECT_NOT_FOUND: image_1)__ # not found

These error messages are only saved in the rendered ( cached ) content of the object. When embedded objects become available and you re-edit the embedding object, their call views will get rendered into the embedding object's cached content storage: cooked_text.

An article can embed its attachments, for example, to render their call views anywhere in the article body.

Inline Commenting ( new since 1.1a )

NeoBoard Articles are inline-commentable. Backtalk like inline comments can be added and users can view only selected commentor's comments ( works like MS-Word's annotations ) or can choose to view or not to view all the comments on the fly.

When a user chooese not to view comments or to view only a certain person's commments, NeoBoard Articles re-render their content instead of resorting to their content caching machinery.

Note that articles with inline comments cannot be deleted by their posters. If a creator of an article attempts to delete an embedded inline comment, it'll still appear as a comment that lost its context ( neoboard_lost_article_comment_view.pt ).

The above restriction doesn't apply when a NeoBoard manager deletes articles.

IP-based Spam Blocking ( new since 1.1b )

NeoBoard Articles are spam-blockable. IP-based spam blocking prevents duplicate postings in a given interval from the same IP address. One can't comment on an article twice in less than 10 seconds, for example, to prevent DOS-like malicious duplicate postings.

IP-based Daily Access Log ( new since 1.1b )

IP-based access logs are saved in a special container inside NeoBoard Articles and the container is purgeable by a given interval. Logs are viewable via log button in an article view.

Content Rating ( new since 1.1b )

NeoBoard Articles are ratable. The max and min rating values can be changed via the configuration menu.

Only one rating value can be stored from a single IP address: that is, one can't rate the same content twice but can change his/her rating value by rating the content again with a different value.

DTML Handling ( new since 1.0b )

NeoBoard Articles can render DTML tags in a given context if DTML is chosen for a renderable format.

Moving or Copying Articles Between Multiple NeoBoards ( new since 1.0b )

NeoBoard managers can copy or move NeoBoard Articles between two NeoBoard instances.

Two restrictions apply:

  • Both instances must be using the same authentication scheme
  • Both instances must be using the same attachment storage type ( attachment wrapper )

Unlimited Number of Attachments ( new since 1.0b )

NeoBoard Articles can have an unlimited number of attachments either as stock Zope Files or NeoPortal External Files. If the size of attachments is of concern, you can opt for NeoPortal External Files as attachment wrapper.

Attachments are content-type-aware, which means, they'll display icons corresponding to their content types.

Note the following when you choose to use the filesystem for attachment storage:

  1. NeoPortal External Files are just wrappers for actual files on the filesystem. When you copy or move articles, their attached files on the filesystem get also copied or moved to proper locations. However, if you delete articles with attachments, their linked files on the filesystem are not deleted but renamed to filename+._temp. You should manually delete these remnants. ( For those who're curious why... You can't distinguish when Zope is copying/moving or deleting these files. In any case, Zope first DELETES these files. If it's a copy or move operation, NeoBoard can smartly figure that out. But deleting is a whole lot different matter. )
  2. If you copy your NeoBoard instance, its archive path gets also renamed. Before RENAMING the copied NeoBoard instance, go to the manger optioins menu and rename the archive path first. That's the only chance you got. NeoBoard doesn't allow you to change its archive path with one or more articles in it.

NeoPortal External File Attachment Security ( new since 1.1b )

You can set authorized file bases inside a file called file_bases.props that resides in the data directory under the NeoPortal Library package directory:

            NeoPortalLibrary/
                            /data/file_bases.props

            # filepath bases - multiple bases allowed
            # unused bases may be commented out
            # zero base means you'll allow any directory depending
            # on Zope user's file permissions
            #/home/ZopeHome/archives for unix/linux
            #\\ZopeHime for windows

For example, if you set /home/ZopeHome/archives as the only authorized file base inside this file, users with permissions to add NeoBoard/CMFNeoBoard instances cannot set their archive paths above this file base:

            authorized archive path: /home/Zopehome/archives/my_dir

            unauthorized archive path: /home/archives

Automatic Upgrade ( new since 1.1b )

Old NeoBoard instances can detect updated NeoBoard classes when you install a newer version of NeoBoard.

Upgrading from previous versions of products has never been easier: a click-and-go upgrade.

i18n ( new since 1.1a )

NeoBoard supports i18n of its messages. See the i18n.txt in the NeoPortal Library package directory for more info on how to activate the i18n machinery.

Note that all internal messages NeoBoard spews out go into a neoportal domain message catalog. You should have a message catalog with neoportal domain for this to work.

Known Bugs

When exporting/importing a NeoBoard instance, all articles lose their creation date values.

There's a workaround: first set the export flag using the manager menu before you export an instance.

Then when you finished importing that instance, revisit the manager menu and follow the instruction NeoBoard presents; the imported NeoBoard instance will refuse to work until you do that.