Suppose that Joe User comes to www.edf.org hoping to learn something about being an environmentalist. He reads an article or two before becoming distracted by another task. Three months later, Joe User returns to www.edf.org to continue his environmentalism education. He can't remember which articles he has read. The home page has been freshened with news so that the links aren't in familiar places. Joe doesn't know what he should read next and, worse, doesn't feel that he is progressing toward any goal.
With this system, Joe can refer to a curriculum bar that is displayed on every page grabbed from www.edf.org. The bar shows a condensed description of the articles that Environmental Defense Fund wants everyone to read, with little checkboxes by the ones that he has read already. As Joe finishes a section, it is clear from referring to the curriculum bar which section to read next.
[ns/server/yourserver/acs/curriculum] EnabledP=1 ; does ad_footer put this in every dynamic page? StickInFooterP=1 ; does ad_serve_html_page put this on every static page? StickInStaticPagesP=1
Everything else is in the following table
We record individual user experiences in
create table curriculum ( curriculum_element_id integer primary key, -- 0 is the first element of the course, 8 would be the 9th element_index integer, url varchar(200) not null, very_very_short_name varchar(30) not null, one_line_description varchar(200) not null, full_description varchar(4000) );
You might wonder why we don't use the
create table user_curriculum_map ( user_id not null references users, curriculum_element_id not null references curriculum, completion_date date default sysdate not null, primary key (user_id, curriculum_element_id) );
user_content_maptable. We have some good reasons: (a) the table only records static page loads, (b) the table is only properly used to record content viewed on our server whereas a curriculum may include content from foreign sites.
ad_footercheck for the publisher's curriculum system settings. A modification to
ad_serve_html_pagein /tcl/ad-html suffices to make the bar visible on static pages.
This is either a space-separated list of integers (curriculum element IDs) or the token "finished".
By default, the filter ought to be run before every , , or .adp page served, if the curriculum system is enabled.