<html> <!--AD_DND--> <head> <title>/bboard system</title> </head> <body bgcolor=#ffffff text=#000000> <h2>/bboard system</h2> part of the <a href="index.html">ArsDigita Community System</a> by <a href="http://photo.net/philg/">Philip Greenspun</a> <hr> <ul> <li>User directory: <a href="/bboard/">/bboard/</a> <li>Admin directory: message deletion, etc., is handling by admin-*.html scripts within the user directory; heavy duty stuff such as creating a new bboard or adding a maintainer is done at <a href="/admin/bboard/">/admin/bboard/</a> <li>data model : <a href="/doc/sql/display-sql.tcl?url=/doc/sql/bboard.sql">/doc/sql/bboard.sql</a> </ul> The discussion software supports the following kinds of user interfaces, all of which query and insert to the same <code>bboard</code> table. Currently the system supports: <ul> <li>Q&A format, developed for the <a href="http://photo.net/photo/">photo.net</a> site and one of the most refined interfaces <li>Editorial-commentary format, developed for <a href="http://cognet.mit.edu/">cognet.mit.edu</a>. This is suitable for when the publisher has longish thought-provoking editorials. Readers then submit commentary on this. A big advantage of this format is that the user interface isn't festooned with the words "question" and "answer". <li>US-geospatial format, developed for <a href="http://scorecard.org">scorecard.org</a>. This allows messages to be tagged with a zip code, county, or state. So you can look at discussion nation-wide, in a region, or limited to a zip code. <li>original threads interface. This is a lot like USENET and it doesn't scale very well as the discussion accumulates threads. </ul> <h3>File upload</h3> Users can upload one file in association with any message. This was developed to facilitate photo uploading. There is only one extra table defined for <blockquote> <pre><code> create sequence bboard_upload_id_sequence; create table bboard_uploaded_files ( bboard_upload_id integer primary key, msg_id not null references bboard, file_type varchar(100), -- e.g., "photo" file_extension varchar(50), -- e.g., "jpg" -- can be useful when deciding whether to present all of something n_bytes integer, -- generally the filename will be "*msg_id*-*upload_id*.extension" -- where the extension was the originally provided (so -- that ns_guesstype will work) filename_stub varchar(200) not null, -- fields that only make sense if this is an image caption varchar(4000), -- will be null if the photo was small to begin with thumbnail_stub varchar(200), original_width integer, original_height integer ); </code></pre> </blockquote> <h3>Permissions Model</h3> [The bboard module was upgraded around time of version 2.1 to use the comon ACS user/groups administrative API] <p> Goal: To allow per-group bboards, and to use the new ACS permissions system to control user and administrative access to the bboards. <p> Each bboard topic is now associated with an administrative group, created using ad_administration_group_add, with "bboard" as the module and the topic_id as the sub-module. Any users who have been added to the corresponding administration group by ad_administration_group_user_add will have administrative access to the topic. They can access the bboard/admin-xxx pages, and moderate discussions on the topic. <h4>Public and Private Bboards</h4> There is a new read and write permissions model for topics. A topic has "read-access" and "write-access" permissions. <pre> Read-access := any | public | group any := topic may be viewed by any user of the system public := topic may only be view by a registered user of the system group := topic may only be viewed by members of the topic's group(s) Write-access := public | group public := any registered user may post a message or reply group := only members of the topic's group(s) may post or reply to messages </pre> <!-- Added by Branimir --> <h4>Urgent requests</h4> <ul> <li>data model: an additional column <tt>urgent_p</tt> which says if the posting is urgent or not <li>parameters: <tt>UrgentMessageEnabledP=<i>[0|1]</i></tt>, <tt>DaysConsideredUrgent=<i>number-of-days</i></tt> in the <tt>bboard</tt> section of the config file. </ul> <hr> <a href="http://photo.net/philg/"><address>philg@mit.edu</address></a> </body> </html>