create table css_simple (
css_id integer primary key,
-- if scope=public, this is the css for the whole system
-- if scope=group, this is the css for a particular group
-- is scope=user this is the css for particular user
scope varchar(20) not null,
user_id references users,
group_id references user_groups,
css_bgcolor varchar(40),
css_textcolor varchar(40),
css_unvisited_link varchar(40),
css_visited_link varchar(40),
css_link_text_decoration varchar(40),
css_font_type varchar(40)
);
alter table css_simple add constraint css_simple_scope_unique
unique(scope, user_id, group_id);
alter table css_simple add constraint css_simple_data_scope_check check (
(scope='group' and group_id is not null and user_id is null) or
(scope='user' and user_id is not null and group_id is null) or
(scope='public'));
page_logos table stores the log that can be displayed on every page
create sequence page_logos_id_sequence;
create table page_logos (
logo_id integer primary key,
-- if scope=public, this is the system-wide logo
-- if scope=group, this is the logo for a particular group
-- is scope=user this is the logo for a particular user
scope varchar(20) not null,
user_id references users,
group_id references user_groups,
logo_enabled_p char(1) default 'f' check(logo_enabled_p in ('t', 'f')),
logo_file_type varchar(100) not null,
logo_file_extension varchar(50) not null, -- e.g., "jpg"
logo blob not null
);
alter table page_logos add constraint page_logos_scope_check check (
(scope='group' and group_id is not null and user_id is null) or
(scope='user' and user_id is not null and group_id is null) or
(scope='public'));
alter table page_logos add constraint page_logos_scope_unique
unique(scope, user_id, group_id);
/admin/display/edit-simple-css in order to set
/admin/display/upload-logo in order to