on_what_idin the table
create table general_comments ( comment_id integer primary key, on_what_id integer not null, on_which_table varchar(50), one_line_item_desc varchar(200) not null, user_id not null references users, comment_date date not null, ip_address varchar(50) not null, modified_date date not null, content clob, -- is the content in HTML or plain text (the default) html_p char(1) default 'f' check(html_p in ('t','f')), approved_p char(1) default 't' check(approved_p in ('t','f')) -- columns useful for attachments, column names -- lifted from file-storage.sql and bboard.sql -- this is where the actual content is stored attachment blob, -- file name including extension but not path client_file_name varchar(500), file_type varchar(100), -- this is a MIME type (e.g., image/jpeg) file_extension varchar(50), -- e.g., "jpg" -- fields that only make sense if this is an image caption varchar(4000), original_width integer, original_height integer );
The module contains one core procedure, ad_general_comments_list, that
will show comments on an item and make appropriate
links to files in
for recording and editing user comments.
The arguments to
As with site-wide search and the user profiling system, this helper table enables us to make a single query and yet link comments over to the appropriate admin or user pages. Another part of this system is the one-line item description column in the
create table table_acs_properties ( table_name varchar(30) primary key, section_name varchar(100) not null, user_url_stub varchar(200) not null, admin_url_stub varchar(200) not null );
Consider applying this package to a legacy ACS module such as the classified ad system (/gc/) to allow comments on each classified ad. Here are the steps:
The DefaultCommentApprovalPolicy parameter in your
file is the default approval policy for the site.
[ns/server/yourservicename/acs] ... ; open means stuff goes live immediately ; wait means stuff waits for administrator to approve ; closed means only administrator can post DefaultCommentApprovalPolicy=wait ...
If you would like the publisher to control the use of comments
in your module, add
SolicitCommentsP to your module
If you would like to use a comment approval policy other than the
site's default, add
your module parameters.
[ns/server/yourservicename/acs/gc] ; If SolicitCommentsP is missing for the module, the default is 1 SolicitCommentsP=1 ; If CommentApprovalPolicy is missing for the module, the ; default is the DefaulCommentApprovalPolicy in [ns/server/yourservicename/acs] ; open means stuff goes live immediately ; wait means stuff waits for administrator to approve ; closed means only administrator can post CommentApprovalPolicy=open
Note thatad_general_comments_list $db $classified_ad_id classified_ads $one_line gc
ad_general_comments_listchecks in the module's parameters to see if comments are being solicited or not.
table_acs_propertiesso that the admin pages will be up to date
general_commentstable when you delete any rows from your subsystem's table or write database triggers to do the deletions automatically.
Smaller photos are displayed in-line. Larger photos are displayed as links. Files that aren't identified as photos by the system are simply made available for one-click download (with a MIME type based on the extension of the file originally uploaded).
[ns/server/photonet-dev/acs/general-comments] ; Whether or not we accept file uploads for general comments. AcceptAttachmentsP=1 ; Maximum attachment size in bytes. Leave empty for no limitation. MaxAttachmentSize=5000000 AdminEditingOptionsInlineP=0 ; Images with widths less than this parameter will be displayed inline. InlineImageMaxWidth=512