Index: openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-categories-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-categories-create.sql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-categories-create.sql 17 Oct 2003 00:39:22 -0000 1.1 @@ -0,0 +1,134 @@ +-- +-- lars-blogger-categories-create.sql +-- +-- @author Steffen Tiedemann Christensen +-- +-- @cvs-id $Id: lars-blogger-categories-create.sql,v 1.1 2003/10/17 00:39:22 lars Exp $ +-- + + +declare +begin + acs_object_type.create_type ( + object_type => 'pinds_blog_category', + pretty_name => 'Blog Category', + pretty_plural => 'Blog Categories', + supertype => 'acs_object', + table_name => 'pinds_blog_categories', + id_column => 'category_id', + package_name => 'pinds_blog_category', + abstract_p => 'f', + name_method => 'pinds_blog_category.name' + ); +end; +/ +show errors + + +create table pinds_blog_categories ( + category_id integer + constraint pinds_blog_category_id_fk + references acs_objects(object_id) + constraint pinds_blog_categories_pk + primary key, + package_id integer + constraint pinds_blog_entry_package_id_kf + references apm_packages(package_id), + name varchar2(4000) not null, + short_name varchar2(4000) not null +); + + +create or replace package pinds_blog_category +as + function name ( + object_id in acs_objects.object_id%TYPE + ) return varchar2; + + function new ( + category_id in pinds_blog_categories.category_id%TYPE, + package_id in pinds_blog_categories.package_id%TYPE, + name in pinds_blog_categories.name%TYPE, + short_name in pinds_blog_categories.short_name%TYPE, + creation_user in acs_objects.creation_user%TYPE, + creation_ip in acs_objects.creation_ip%TYPE + ) return integer; + + procedure del ( + category_id in pinds_blog_categories.category_id%TYPE + ); +end pinds_blog_category; +/ +show errors + + +create or replace package body pinds_blog_category +as + + function name ( + object_id in acs_objects.object_id%TYPE + ) return varchar2 + is + v_name varchar2(4000); + begin + select name + into v_name + from pinds_blog_categories + where category_id = pinds_blog_category.name.object_id; + return v_name; + end; + + function new ( + category_id in pinds_blog_categories.category_id%TYPE, + package_id in pinds_blog_categories.package_id%TYPE, + name in pinds_blog_categories.name%TYPE, + short_name in pinds_blog_categories.short_name%TYPE, + creation_user in acs_objects.creation_user%TYPE, + creation_ip in acs_objects.creation_ip%TYPE + ) return integer + is + v_category_id integer; + begin + v_category_id := acs_object.new ( + object_id => pinds_blog_category.new.category_id, + object_type => 'pinds_blog_category', + creation_user => pinds_blog_category.new.creation_user, + creation_ip => pinds_blog_category.new.creation_ip, + context_id => pinds_blog_category.new.package_id + ); + + insert into pinds_blog_categories ( + category_id, + package_id, + name, + short_name + ) values ( + v_category_id, + pinds_blog_category.new.package_id, + pinds_blog_category.new.name, + pinds_blog_category.new.short_name + ); + + return v_category_id; + end; + + procedure del ( + category_id in pinds_blog_categories.category_id%TYPE + ) + is + begin + update pinds_blog_entries + set category_id = null + where category_id = pinds_blog_category.del.category_id; + + delete + from pinds_blog_categories + where category_id = pinds_blog_category.del.category_id; + + acs_object.del(pinds_blog_category.del.category_id); + end; + + +end pinds_blog_category; +/ +show errors Index: openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-categories-drop.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-categories-drop.sql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-categories-drop.sql 17 Oct 2003 00:39:22 -0000 1.1 @@ -0,0 +1,12 @@ +-- +-- lars-blogger-categories-drop.sql +-- +-- @author Steffen Tiedemann Christensen +-- + +--STC +drop function pinds_blog_category__new (integer, integer, varchar, varchar, integer, varchar); +drop function pinds_blog_category__name (integer); +drop function pinds_blog_category__delete (integer); +drop table pinds_blog_categories; +select acs_object_type__drop_type ('pinds_blog_category', true); Index: openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-create.sql,v diff -u -r1.4 -r1.5 --- openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-create.sql 28 Aug 2003 09:41:54 -0000 1.4 +++ openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-create.sql 17 Oct 2003 00:39:22 -0000 1.5 @@ -7,6 +7,8 @@ -- @cvs-id $Id$ -- +@@ lars-blogger-categories-create.sql + declare begin acs_object_type.create_type( @@ -34,6 +36,9 @@ references apm_packages(package_id), title varchar(500), title_url varchar(500), + category_id integer + constraint pinds_blog_entry_category_fk + references pinds_blog_categories(category_id), content clob, content_format varchar(50) default 'text/html' Index: openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-drop.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-drop.sql,v diff -u -r1.4 -r1.5 --- openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-drop.sql 30 Sep 2003 12:10:08 -0000 1.4 +++ openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-drop.sql 17 Oct 2003 00:39:22 -0000 1.5 @@ -41,3 +41,5 @@ @@ lars-blogger-package-drop drop table pinds_blog_entries; + +@@ lars-blogger-categories-drop.sql Index: openacs-4/packages/lars-blogger/sql/oracle/upgrade/upgrade-0.9.3-1.0d1.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/sql/oracle/upgrade/upgrade-0.9.3-1.0d1.sql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/sql/oracle/upgrade/upgrade-0.9.3-1.0d1.sql 17 Oct 2003 00:39:22 -0000 1.1 @@ -0,0 +1,138 @@ +-- +-- lars-blogger-categories-create.sql +-- +-- @author Steffen Tiedemann Christensen +-- +-- @cvs-id $Id: upgrade-0.9.3-1.0d1.sql,v 1.1 2003/10/17 00:39:22 lars Exp $ +-- + + +declare +begin + acs_object_type.create_type ( + object_type => 'pinds_blog_category', + pretty_name => 'Blog Category', + pretty_plural => 'Blog Categories', + supertype => 'acs_object', + table_name => 'pinds_blog_categories', + id_column => 'category_id', + package_name => 'pinds_blog_category', + abstract_p => 'f', + name_method => 'pinds_blog_category.name' + ); +end; +/ +show errors + + +create table pinds_blog_categories ( + category_id integer + constraint pinds_blog_category_id_fk + references acs_objects(object_id) + constraint pinds_blog_categories_pk + primary key, + package_id integer + constraint pinds_blog_entry_package_id_kf + references apm_packages(package_id), + name varchar2(4000) not null, + short_name varchar2(4000) not null +); + + +create or replace package pinds_blog_category +as + function name ( + object_id in acs_objects.object_id%TYPE + ) return varchar2; + + function new ( + category_id in pinds_blog_categories.category_id%TYPE, + package_id in pinds_blog_categories.package_id%TYPE, + name in pinds_blog_categories.name%TYPE, + short_name in pinds_blog_categories.short_name%TYPE, + creation_user in acs_objects.creation_user%TYPE, + creation_ip in acs_objects.creation_ip%TYPE + ) return integer; + + procedure del ( + category_id in pinds_blog_categories.category_id%TYPE + ); +end pinds_blog_category; +/ +show errors + + +create or replace package body pinds_blog_category +as + + function name ( + object_id in acs_objects.object_id%TYPE + ) return varchar2 + is + v_name varchar2(4000); + begin + select name + into v_name + from pinds_blog_categories + where category_id = pinds_blog_category.name.object_id; + return v_name; + end; + + function new ( + category_id in pinds_blog_categories.category_id%TYPE, + package_id in pinds_blog_categories.package_id%TYPE, + name in pinds_blog_categories.name%TYPE, + short_name in pinds_blog_categories.short_name%TYPE, + creation_user in acs_objects.creation_user%TYPE, + creation_ip in acs_objects.creation_ip%TYPE + ) return integer + is + v_category_id integer; + begin + v_category_id := acs_object.new ( + object_id => pinds_blog_category.new.category_id, + object_type => 'pinds_blog_category', + creation_user => pinds_blog_category.new.creation_user, + creation_ip => pinds_blog_category.new.creation_ip, + context_id => pinds_blog_category.new.package_id + ); + + insert into pinds_blog_categories ( + category_id, + package_id, + name, + short_name + ) values ( + v_category_id, + pinds_blog_category.new.package_id, + pinds_blog_category.new.name, + pinds_blog_category.new.short_name + ); + + return v_category_id; + end; + + procedure del ( + category_id in pinds_blog_categories.category_id%TYPE + ) + is + begin + update pinds_blog_entries + set category_id = null + where category_id = pinds_blog_category.del.category_id; + + delete + from pinds_blog_categories + where category_id = pinds_blog_category.del.category_id; + + acs_object.del(pinds_blog_category.del.category_id); + end; + + +end pinds_blog_category; +/ +show errors + + +alter table pinds_blog_entries add column category_id integer; +--alter table pinds_blog_entries alter column category_id set not null; Index: openacs-4/packages/lars-blogger/sql/postgresql/lars-blogger-categories-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/sql/postgresql/lars-blogger-categories-create.sql,v diff -u -r1.1 -r1.2 --- openacs-4/packages/lars-blogger/sql/postgresql/lars-blogger-categories-create.sql 29 Sep 2003 08:05:42 -0000 1.1 +++ openacs-4/packages/lars-blogger/sql/postgresql/lars-blogger-categories-create.sql 17 Oct 2003 00:39:22 -0000 1.2 @@ -14,7 +14,7 @@ 'acs_object', -- supertype 'pinds_blog_categories', -- table_name 'category_id', -- id_column - null, -- package_name + 'pinds_blog_category', -- package_name 'f', -- abstract_p null, -- type_extension_table 'pinds_blog_category__name' -- name_method @@ -29,8 +29,8 @@ package_id integer constraint pinds_blog_entry_package_id_kf references apm_packages(package_id), - name varchar(500) not null, - short_name varchar(50) not null + name varchar(4000) not null, + short_name varchar(4000) not null ); create or replace function pinds_blog_category__name (integer) @@ -94,7 +94,7 @@ p_category_id alias for $1; begin update pinds_blog_entries - set category_id = 0 + set category_id = null where category_id = p_category_id; delete from pinds_blog_categories Index: openacs-4/packages/lars-blogger/sql/postgresql/lars-blogger-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/sql/postgresql/lars-blogger-create.sql,v diff -u -r1.7 -r1.8 --- openacs-4/packages/lars-blogger/sql/postgresql/lars-blogger-create.sql 29 Sep 2003 08:05:42 -0000 1.7 +++ openacs-4/packages/lars-blogger/sql/postgresql/lars-blogger-create.sql 17 Oct 2003 00:39:22 -0000 1.8 @@ -32,7 +32,9 @@ references apm_packages(package_id), title varchar(500), title_url varchar(500), - category_id integer not null default 0, + category_id integer + constraint pinds_blog_entry_category_fk + references pinds_blog_categories(category_id), content varchar(32000), content_format varchar(50) default 'text/html' Index: openacs-4/packages/lars-blogger/sql/postgresql/upgrade/upgrade-0.9.3-1.0d1.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/sql/postgresql/upgrade/upgrade-0.9.3-1.0d1.sql,v diff -u -r1.1 -r1.2 --- openacs-4/packages/lars-blogger/sql/postgresql/upgrade/upgrade-0.9.3-1.0d1.sql 29 Sep 2003 08:05:42 -0000 1.1 +++ openacs-4/packages/lars-blogger/sql/postgresql/upgrade/upgrade-0.9.3-1.0d1.sql 17 Oct 2003 00:39:22 -0000 1.2 @@ -1,12 +1,107 @@ -\i ../lars-blogger-categories-create.sql +select acs_object_type__create_type ( + 'pinds_blog_category', -- object_type + 'Blog Category', -- pretty_name + 'Blog Categories', -- pretty_plural + 'acs_object', -- supertype + 'pinds_blog_categories', -- table_name + 'category_id', -- id_column + null, -- package_name + 'f', -- abstract_p + null, -- type_extension_table + 'pinds_blog_category__name' -- name_method +); + +create table pinds_blog_categories ( + category_id integer + constraint pinds_blog_category_id_fk + references acs_objects(object_id) + constraint pinds_blog_categories_pk + primary key, + package_id integer + constraint pinds_blog_entry_package_id_kf + references apm_packages(package_id), + name varchar(500) not null, + short_name varchar(50) not null +); + +create or replace function pinds_blog_category__name (integer) +returns varchar as ' +declare + p_category_id alias for $1; + v_name varchar; +begin + select title into v_name + from pinds_blog_categories + where category_id = p_category_id; + return v_name; +end; +' language 'plpgsql'; + +create or replace function pinds_blog_category__new ( + integer, -- category_id + integer, -- package_id + varchar, -- name + varchar, -- short_name + integer, -- creation_user + varchar -- creation_ip +) returns integer as ' +declare + p_category_id alias for $1; + p_package_id alias for $2; + p_name alias for $3; + p_short_name alias for $4; + p_creation_user alias for $5; + p_creation_ip alias for $6; + v_category_id integer; +begin + v_category_id := acs_object__new ( + p_category_id, + ''pinds_blog_category'', + current_timestamp, + p_creation_user, + p_creation_ip, + p_package_id + ); + + insert into pinds_blog_categories ( + category_id, + package_id, + name, + short_name + ) values ( + v_category_id, + p_package_id, + p_name, + p_short_name + ); + + return v_category_id; +end; +' language 'plpgsql'; + +create or replace function pinds_blog_category__delete (integer) +returns integer as ' +declare + p_category_id alias for $1; +begin + update pinds_blog_entries + set category_id = 0 + where category_id = p_category_id; + + delete from pinds_blog_categories + where category_id = p_category_id; + + PERFORM acs_object__delete(p_category_id); + return 0; +end; +' language 'plpgsql'; + + alter table pinds_blog_entries add column category_id integer; --alter table pinds_blog_entries alter column category_id set not null; -alter table pinds_blog_entries alter column category_id set default 0; -update pinds_blog_entries set category_id = 0; - drop function pinds_blog_entry__new ( integer, integer, varchar, varchar, varchar, varchar, timestamptz, char, integer, varchar ); Index: openacs-4/packages/lars-blogger/tcl/entry-procs-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/tcl/entry-procs-oracle.xql,v diff -u -r1.3 -r1.4 --- openacs-4/packages/lars-blogger/tcl/entry-procs-oracle.xql 1 Oct 2003 19:12:05 -0000 1.3 +++ openacs-4/packages/lars-blogger/tcl/entry-procs-oracle.xql 17 Oct 2003 00:39:22 -0000 1.4 @@ -8,6 +8,7 @@ select b.entry_id, b.title, b.title_url, + b.category_id, b.content, b.content_format, b.draft_p, @@ -50,18 +51,20 @@ o.creation_user, acs_object.name(o.creation_user) as author, to_char(o.creation_date, 'MM-DD-YYYY') as pretty_date, - to_char(o.creation_date, 'Month DD, YYYY HH12:MI PM') as pretty_date2 - case when tb.comment_id not null 't' else 'f' end as trackback_p, + to_char(o.creation_date, 'Month DD, YYYY HH12:MI PM') as pretty_date2, + case when tb.comment_id is not null then 't' else 'f' end as trackback_p, tb.tb_url as trackback_url, - nvl(tb.name,tb.tb_url) as trackback_name - from general_comments g left join trackback_pings tb on gc.comment_id=tb.comment_id, + nvl(tb.name, tb.tb_url) as trackback_name + from general_comments g, + trackback_pings tb, cr_revisions r, cr_items ci, acs_objects o - where g.object_id = :object_id - and r.revision_id = i.live_revision - and i.item_id=g.comment_id + where g.object_id = :entry_id + and r.revision_id = ci.live_revision + and ci.item_id = g.comment_id and o.object_id = g.comment_id + and tb.comment_id (+) = g.comment_id order by o.creation_date Index: openacs-4/packages/lars-blogger/www/blog-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/blog-oracle.xql,v diff -u -r1.4 -r1.5 --- openacs-4/packages/lars-blogger/www/blog-oracle.xql 28 Aug 2003 09:41:55 -0000 1.4 +++ openacs-4/packages/lars-blogger/www/blog-oracle.xql 17 Oct 2003 00:39:22 -0000 1.5 @@ -23,6 +23,7 @@ to_char(entry_date, 'YYYY-MM-DD') as entry_date, title, title_url, + category_id, content, content_format, draft_p, Index: openacs-4/packages/lars-blogger/www/blog.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/blog.tcl,v diff -u -r1.14 -r1.15 --- openacs-4/packages/lars-blogger/www/blog.tcl 16 Oct 2003 23:10:45 -0000 1.14 +++ openacs-4/packages/lars-blogger/www/blog.tcl 17 Oct 2003 00:39:22 -0000 1.15 @@ -113,8 +113,8 @@ } } -set arr_category_name(0) None -set arr_category_short_name(0) none +set arr_category_name() None +set arr_category_short_name() none db_foreach categories {} { set arr_category_name($category_id) $name set arr_category_short_name($category_id) $short_name Index: openacs-4/packages/lars-blogger/www/category-edit-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/category-edit-oracle.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/category-edit-oracle.xql 17 Oct 2003 00:39:22 -0000 1.1 @@ -0,0 +1,22 @@ + + + + oracle8.1.6 + + + + begin + :1 := pinds_blog_category.new ( + category_id => :category_id, + package_id => :package_id, + name => :name, + short_name => :short_name, + creation_user => :creation_user, + creation_ip => :creation_ip + ); + end; + + + + + Index: openacs-4/packages/lars-blogger/www/category-edit-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/category-edit-postgresql.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/category-edit-postgresql.xql 17 Oct 2003 00:39:22 -0000 1.1 @@ -0,0 +1,20 @@ + + + + postgresql7.1 + + + + select pinds_blog_category__new ( + :category_id, + :package_id, + :name, + :short_name, + :creation_user, + :creation_ip + ) + + + + + Index: openacs-4/packages/lars-blogger/www/category-edit.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/category-edit.xql,v diff -u -r1.2 -r1.3 --- openacs-4/packages/lars-blogger/www/category-edit.xql 29 Sep 2003 19:41:23 -0000 1.2 +++ openacs-4/packages/lars-blogger/www/category-edit.xql 17 Oct 2003 00:39:22 -0000 1.3 @@ -48,23 +48,11 @@ - - - select pinds_blog_category__new ( - :category_id, - :package_id, - :name, - :short_name, - :creation_user, - :creation_ip - ) - - - update pinds_blog_categories - set name=:name, short_name=:short_name + set name = :name, + short_name = :short_name where category_id = :category_id Index: openacs-4/packages/lars-blogger/www/entry-edit.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/entry-edit.tcl,v diff -u -r1.6 -r1.7 --- openacs-4/packages/lars-blogger/www/entry-edit.tcl 16 Oct 2003 23:10:45 -0000 1.6 +++ openacs-4/packages/lars-blogger/www/entry-edit.tcl 17 Oct 2003 00:39:22 -0000 1.7 @@ -33,16 +33,14 @@ form create entry -cancel_url [ad_decode $return_url "" "." $return_url] element create entry title -label "Title" -datatype text -html { size 50 } -element create entry title_url -label "Title URL (optional)" -datatype text -html { size 50 } -optional +element create entry title_url -label "Title URL" -datatype text -html { size 50 } -optional # If categories are enabled, set up a select-box with option. -# Otherwise just set the category_id to 0 to support category support in the future. +# Otherwise just set the category_id to null to support category support in the future. if { [string equal [lars_blog_categories_p] "1"] } { # It's probably possible to set up the widget directly from the datasource -- I just don't know how :-( set option_list [concat [list [list None 0]] [db_list_of_lists categories {}]] element create entry category_id -label "Category" -datatype integer -widget select -options $option_list -} else { - element create entry category_id -widget hidden -datatype text -value 0 } element create entry content -label "Content" -datatype richtext -widget richtext -html { cols 80 rows 20 } Index: openacs-4/packages/lars-blogger/www/one-entry.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/one-entry.adp,v diff -u -r1.13 -r1.14 --- openacs-4/packages/lars-blogger/www/one-entry.adp 16 Oct 2003 23:10:45 -0000 1.13 +++ openacs-4/packages/lars-blogger/www/one-entry.adp 17 Oct 2003 00:39:22 -0000 1.14 @@ -1,11 +1,10 @@ - - - + + + + @page_title@ + @context;noquote@ -@page_title@ -@context_bar;noquote@ -
Index: openacs-4/packages/lars-blogger/www/one-entry.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/one-entry.tcl,v diff -u -r1.10 -r1.11 --- openacs-4/packages/lars-blogger/www/one-entry.tcl 16 Oct 2003 23:10:45 -0000 1.10 +++ openacs-4/packages/lars-blogger/www/one-entry.tcl 17 Oct 2003 00:39:22 -0000 1.11 @@ -25,9 +25,9 @@ if {![exists_and_not_null screen_name]} { set screen_name "" - set context_bar [ad_context_bar $page_title] + set context [list $page_title] } else { - set context_bar [ad_context_bar $screen_name] + set context [list $screen_name] } set header_background_color [lars_blog_header_background_color]