The Big Picture

Most Web services and all corporate sites have a "foobar.com in the
news" page. This page lists, chronologically, articles in newspapers,
magazines, etc. where the site or company is featured. This is a
little bit different from the news module in
that the publisher is mostly linking off to other publications and not
trying to disseminate news him or herself.

The system supports site-wide press coverage (appropriate when one
ACS installation is being used for a company) and subcommunity press
coverage, e.g. for a service like arfdigita.org where many
organizations are using the same ACS. Anyone who has the
administrator role in a user group can edit the press coverage for
that group.

Press Coverage Templates

The module provides a flexible template system to support the wide
range of formats needed for different sites and types of press
coverage. A press item contains the followings bits of
information:

publication_name

publication_date

article_title

article_pages

abstract

A site administrator can define named templates to control how
these pieces of information are displayed. The templates are written
as ADP fragments using the variables listed above. For example, the
system default template might format a press item as follows:

January 1, 2100 - "They used to say that every dog has his
day. Little did humans know that the collapse of their society at the
beginning of this millenium would give rise to a new golden age of
canine rule."

Hyperlinks to external publications and articles are inserted
automatically and optionally tracked using the clickthrough module.

Under the Hood

The data model for press coverage is quite simple:

create sequence press_id_sequence start with 1;
create table press (
press_id integer primary key,
-- if scope=public, this is press coverage for the whole system
-- if scope=group, this is press coverage for a subcommunity
scope varchar(20) not null,
-- will be NULL if scope=public
group_id references user_groups,
-- determine how the item is formatted
template_id references press_templates,
-- if true, keep the item active after it would normally expire.
important_p char(1) default 'f' check (important_p in ('t','f')),
-- the name of the publication, e.g. New York Times
publication_name varchar(100) not null,
-- the home page of the publication, e.g., http://www.nytimes.com
publication_link varchar(200),
-- we use this for sorting
publication_date date not null,
-- this will override publication_date where we need to say "Oct-Nov 1998 issue"
-- but will typically be NULL
publication_date_desc varchar(100),
-- might be null if the entire publication is about the site or company
article_title varchar(100),
-- if the article is Web-available
article_link varchar(200),
-- optional page reference, e.g. page 100
article_pages varchar(100),
-- quote from or summary of article
abstract varchar(4000),
-- is the abstract in HTML or plain text (the default)
html_p char(1) default 'f' check (html_p in ('t','f')),
creation_date date not null,
creation_user not null references users(user_id),
creation_ip_address varchar(50) not null
);

The data model for press coverage templates is equally straightforward:

Note that template_id=1 is reserved for the site-wide
default template.

Legal Transactions

From the Site Administration pages at /admin/press/ the site-wide administrator can do
the following:

Create a new press template: insert a new row into the
table press_templates

Edit the properties of a press template: update a row in
press_templates

Delete an unused press template: delete a row in
press_templates

From the Maintainers admin pages at /press/admin/ the press coverage maintainers
can:

Add new press coverage: insert a new row in press

Edit existing press coverage: update a row in press

Delete press coverage: remove a row from press

You can change the site-wide behavior by setting the following parameters:

[ns/server/service/acs/press]
; maximum number of press items to display on the press coverage page
DisplayMax=10
; number of days a press item remains active
ActiveDays=60
; do we use clickthrough tracking from the press coverage page?
ClickthroughP = 1

Limitations

The expiration behavior of press coverage is strange. Once an item
surpasses the site-wide maximum number of active days and expires, the
only way to turn it back on is to set the important_p flag and have it
displayed permanently. It would make more sense to define a
per-press-item expiration date.

Any administrator can create public press coverage (the limitation
is that this cannot be restricted).

Future Improvements

Expiration date for individual headlines

Separation of public and private (group only) headlines

Ability to display headlines based on publication name or a
keyword search of title and abstract.