Index: openacs-4/packages/lars-blogger/lars-blogger.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/lars-blogger.info,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/lars-blogger.info 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,111 @@ + + + + + Lars Blogger + Lars Bloggers + f + f + + + + oracle + postgresql + + Lars Pind + Write your own web log + 2002-08-13 + Collaboraid + Manages multiple web logs for your site. Just mount multiple instances, and you can do all the blogging you want. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-create.sql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,49 @@ +-- +-- lars-blogger-create.sql +-- +-- @author Lars Pind +-- @author Yon (Yon@milliped.com) Oracle Port +-- +-- @cvs-id $Id: lars-blogger-create.sql,v 1.1 2002/08/19 21:52:59 vinodk Exp $ +-- + +declare +begin + acs_object_type.create_type( + object_type => 'pinds_blog_entry', + pretty_name => 'Blog Entry', + pretty_plural => 'Blog Entries', + supertype => 'acs_object', + table_name => 'pinds_blog_entries', + id_column => 'entry_id', + package_name => null, + abstract_p => 'f', + type_extension_table => null, + name_method => 'pinds_blog_entry.title' + ); +end; +/ +show errors + +create table pinds_blog_entries ( + entry_id constraint pinds_blog_entry_id_fk + references acs_objects(object_id) + constraint pinds_blog_entries_pk + primary key, + package_id constraint pinds_blog_entry_package_id_fk + references apm_packages(package_id), + title varchar(500), + content clob, + entry_date date, + posted_date date, + draft_p char(1) default 'f' + constraint pinds_blog_entries_draft_ck + check (draft_p in ('t','f')), + deleted_p char(1) default 'f' + constraint pinds_blog_entries_deleted_ck + check (deleted_p in ('t','f')) +); + + +@@ lars-blogger-package-create +@@ rss-register \ No newline at end of file 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 -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-drop.sql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,36 @@ +-- +-- lars-blogger-drop.sql +-- +-- @author Lars Pind +-- @author Yon (Yon@milliped.com) Oracle Port +-- @author Vinod Kurup (vinod@kurup.com) +-- +-- @cvs-id $Id: lars-blogger-drop.sql,v 1.1 2002/08/19 21:52:59 vinodk Exp $ +-- + +@@ rss-unregister + +begin + + for blog_entry in (select entry_id from pinds_blog_entries) loop + -- delete comments (which are acs_message's) + for comment in (select comment_id from general_comments + where object_id = blog_entry.entry_id) loop + acs_message.delete(comment.comment_id); + end loop; + + pinds_blog_entry.delete(blog_entry.entry_id); + end loop; + + acs_object_type.drop_type( + object_type => 'pinds_blog_entry', + cascade_p => 't' + ); + +end; +/ +show errors + +@@ lars-blogger-package-drop + +drop table pinds_blog_entries; Index: openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-package-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-package-create.sql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-package-create.sql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,121 @@ +-- +-- lars-blogger-package-create.sql +-- +-- @author Lars Pind +-- @author Yon (Yon@milliped.com) Oracle Port +-- +-- @cvs-id $Id: lars-blogger-package-create.sql,v 1.1 2002/08/19 21:52:59 vinodk Exp $ +-- + +create or replace package pinds_blog_entry +as + + function new ( + entry_id in pinds_blog_entries.entry_id%TYPE default null, + package_id in pinds_blog_entries.package_id%TYPE, + title in pinds_blog_entries.title%TYPE default null, + content in varchar default null, + entry_date in pinds_blog_entries.entry_date%TYPE default null, + draft_p in pinds_blog_entries.draft_p%TYPE default 'f', + creation_user in acs_objects.creation_user%TYPE default null, + creation_ip in acs_objects.creation_ip%TYPE default null + ) return pinds_blog_entries.entry_id%TYPE; + + procedure delete ( + entry_id in pinds_blog_entries.entry_id%TYPE + ); + + function title ( + entry_id in pinds_blog_entries.entry_id%TYPE + ) return pinds_blog_entries.title%TYPE; + +end pinds_blog_entry; +/ +show errors + +create or replace package body pinds_blog_entry +as + + function new ( + entry_id in pinds_blog_entries.entry_id%TYPE default null, + package_id in pinds_blog_entries.package_id%TYPE, + title in pinds_blog_entries.title%TYPE default null, + content in varchar default null, + entry_date in pinds_blog_entries.entry_date%TYPE default null, + draft_p in pinds_blog_entries.draft_p%TYPE default 'f', + creation_user in acs_objects.creation_user%TYPE default null, + creation_ip in acs_objects.creation_ip%TYPE default null + ) return pinds_blog_entries.entry_id%TYPE + is + v_entry_id pinds_blog_entries.entry_id%TYPE; + begin + + v_entry_id := acs_object.new( + object_id => pinds_blog_entry.new.entry_id, + object_type => 'pinds_blog_entry', + creation_date => sysdate, + creation_user => pinds_blog_entry.new.creation_user, + creation_ip => pinds_blog_entry.new.creation_ip, + context_id => pinds_blog_entry.new.package_id + ); + + insert into pinds_blog_entries ( + entry_id, + package_id, + title, + content, + entry_date, + posted_date, + draft_p, + deleted_p + ) values ( + v_entry_id, + pinds_blog_entry.new.package_id, + pinds_blog_entry.new.title, + pinds_blog_entry.new.content, + pinds_blog_entry.new.entry_date, + sysdate, + pinds_blog_entry.new.draft_p, + 'f' + ); + + return v_entry_id; + + end new; + + procedure delete ( + entry_id in pinds_blog_entries.entry_id%TYPE + ) + is + begin + + delete + from pinds_blog_entries + where entry_id = pinds_blog_entry.delete.entry_id; + + acs_object.delete(pinds_blog_entry.delete.entry_id); + + end delete; + + function title ( + entry_id in pinds_blog_entries.entry_id%TYPE + ) return pinds_blog_entries.title%TYPE + is + v_title pinds_blog_entries.title%TYPE; + begin + + select title + into v_title + from pinds_blog_entries + where entry_id = pinds_blog_entry.title.entry_id; + + return v_title; + + exception when no_data_found then + return ''; + + end title; + +end pinds_blog_entry; +/ +show errors Index: openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-package-drop.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-package-drop.sql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/sql/oracle/lars-blogger-package-drop.sql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,11 @@ +-- +-- lars-blogger-package-drop.sql +-- +-- @author Lars Pind +-- @author Yon (Yon@milliped.com) Oracle Port +-- +-- @cvs-id $Id: lars-blogger-package-drop.sql,v 1.1 2002/08/19 21:52:59 vinodk Exp $ +-- + +drop package body pinds_blog_entry; +drop package pinds_blog_entry; Index: openacs-4/packages/lars-blogger/sql/oracle/rss-register.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/sql/oracle/rss-register.sql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/sql/oracle/rss-register.sql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,37 @@ +-- +-- rss-register.sql +-- +-- @author Lars Pind +-- +-- @cvs-id $Id: rss-register.sql,v 1.1 2002/08/19 21:52:59 vinodk Exp $ +-- + +declare + foo integer; +begin + + foo := acs_sc_impl.new( + impl_contract_name => 'RssGenerationSubscriber', + impl_name => 'pinds_blog_entries', + impl_owner_name => 'lars-blogger' + ); + + foo := acs_sc_impl_alias.new( + impl_contract_name => 'RssGenerationSubscriber', + impl_name => 'pinds_blog_entries', + impl_operation_name => 'datasource', + impl_alias => 'lars_blog__rss_datasource', + impl_pl => 'TCL' + ); + + foo := acs_sc_impl_alias.new( + impl_contract_name => 'RssGenerationSubscriber', + impl_name => 'pinds_blog_entries', + impl_operation_name => 'lastUpdated', + impl_alias => 'lars_blog__rss_lastUpdated', + impl_pl => 'TCL' + ); + +end; +/ +show errors Index: openacs-4/packages/lars-blogger/sql/oracle/rss-unregister.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/sql/oracle/rss-unregister.sql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/sql/oracle/rss-unregister.sql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,21 @@ +-- +-- rss-unregister.sql +-- +-- Unregister the RSS Service contract +-- +-- @author Lars Pind +-- @author Vinod Kurup (vinod@kurup.com) Oracle Port +-- +-- @cvs-id $Id: rss-unregister.sql,v 1.1 2002/08/19 21:52:59 vinodk Exp $ +-- + +begin + + acs_sc_impl.delete( + impl_contract_name => 'RssGenerationSubscriber', + impl_name => 'pinds_blog_entries' + ); + +end; +/ +show errors 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 -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/sql/postgresql/lars-blogger-create.sql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,127 @@ +-- +-- lars-blogger-create.sql +-- +-- @author Lars Pind +-- +-- @cvs-id $Id: lars-blogger-create.sql,v 1.1 2002/08/19 21:52:59 vinodk Exp $ +-- + +select acs_object_type__create_type ( + 'pinds_blog_entry', -- object_type + 'Blog Entry', -- pretty_name + 'Blog Entries', -- pretty_plural + 'acs_object', -- supertype + 'PINDS_BLOG_ENTRIES', -- table_name + 'ENTRY_ID', -- id_column + null, -- package_name + 'f', -- abstract_p + null, -- type_extension_table + 'PINDS_BLOG_ENTRY__TITLE' -- name_method +); + +create table pinds_blog_entries ( + entry_id integer + constraint pinds_blog_entry_id_fk + references acs_objects(object_id) + constraint pinds_blog_entries_pk + primary key, + package_id integer + constraint pinds_blog_entry_package_id_kf + references apm_packages(package_id), + title varchar(500), + content varchar(32000), + entry_date datetime, + posted_date datetime, + draft_p char(1) default 'f' + constraint pinds_blog_entries_draft_ck + check (draft_p in ('t','f')), + deleted_p char(1) default 'f' + constraint pinds_blog_entries_deleted_ck + check (deleted_p in ('t','f')) +); + +create index pinds_blog_entry_pck_entr_idx on pinds_blog_entries (package_id, entry_date); + +create function pinds_blog_entry__title (integer) +returns varchar as ' +declare + p_entry_id alias for $1; + v_title varchar; +begin + select title into v_title + from pinds_blog_entries + where entry_id = p_entry_id; + return v_title; +end; +' language 'plpgsql'; + + +create function pinds_blog_entry__new ( + integer, -- entry_id + integer, -- package_id + varchar, -- title + varchar, -- content + datetime, -- entry_date + char, -- draft_p + integer, -- creation_user + varchar -- creation_ip +) returns integer as ' +declare + p_entry_id alias for $1; + p_package_id alias for $2; + p_title alias for $3; + p_content alias for $4; + p_entry_date alias for $5; + p_draft_p alias for $6; + p_creation_user alias for $7; + p_creation_ip alias for $8; + v_entry_id integer; +begin + v_entry_id := acs_object__new ( + p_entry_id, + ''pinds_blog_entry'', + current_timestamp, + p_creation_user, + p_creation_ip, + p_package_id + ); + + insert into pinds_blog_entries ( + entry_id, + package_id, + title, + content, + entry_date, + posted_date, + draft_p, + deleted_p + ) values ( + v_entry_id, + p_package_id, + p_title, + p_content, + p_entry_date, + current_timestamp, + p_draft_p, + ''f'' + ); + + return v_entry_id; +end; +' language 'plpgsql'; + + +create function pinds_blog_entry__delete (integer) +returns integer as ' +declare + p_entry_id alias for $1; +begin + delete from pinds_blog_entries + where entry_id = p_entry_id; + PERFORM acs_object__delete(p_entry_id); + return 0; +end; +' language 'plpgsql'; + + +\i rss-register.sql Index: openacs-4/packages/lars-blogger/sql/postgresql/lars-blogger-drop.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/sql/postgresql/lars-blogger-drop.sql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/sql/postgresql/lars-blogger-drop.sql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,51 @@ +-- +-- lars-blogger-drop.sql +-- +-- @author Lars Pind +-- +-- @cvs-id $Id: lars-blogger-drop.sql,v 1.1 2002/08/19 21:52:59 vinodk Exp $ +-- + +\i rss-unregister.sql + +create function inline_0 () +returns integer as ' +declare + comment_rec record; + entry_rec record; +begin + -- iterate through all comments on entries + for comment_rec in select gc.comment_id + from general_comments gc, + pinds_blog_entries e + where gc.object_id = e.entry_id loop + perform acs_message__delete(comment_rec.comment_id); + end loop; + + -- iterate through all entries + for entry_rec in select entry_id from pinds_blog_entries loop + perform pinds_blog_entry__delete( entry_rec.entry_id ); + end loop; + + return 0; +end;' language 'plpgsql'; + +select inline_0(); +drop function inline_0(); + + +drop function pinds_blog_entry__title (integer); +drop function pinds_blog_entry__new( + integer, -- entry_id + integer, -- package_id + varchar, -- title + varchar, -- content + datetime, -- entry_date + char, -- draft_p + integer, -- creation_user + varchar -- creation_ip +); +drop function pinds_blog_entry__delete (integer); + +drop table pinds_blog_entries; +select acs_object_type__drop_type ('pinds_blog_entry', true); Index: openacs-4/packages/lars-blogger/sql/postgresql/rss-register.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/sql/postgresql/rss-register.sql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/sql/postgresql/rss-register.sql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,29 @@ +-- +-- rss-register.sql +-- +-- @author Lars Pind +-- +-- @cvs-id $Id: rss-register.sql,v 1.1 2002/08/19 21:52:59 vinodk Exp $ +-- + +select acs_sc_impl__new( + 'RssGenerationSubscriber', -- impl_contract_name + 'pinds_blog_entries', -- impl_name + 'lars-blogger' -- impl_owner_name +); + +select acs_sc_impl_alias__new( + 'RssGenerationSubscriber', -- impl_contract_name + 'pinds_blog_entries', -- impl_name + 'datasource', -- impl_operation_name + 'lars_blog__rss_datasource', -- impl_alias + 'TCL' -- impl_pl +); + +select acs_sc_impl_alias__new( + 'RssGenerationSubscriber', -- impl_contract_name + 'pinds_blog_entries', -- impl_name + 'lastUpdated', -- impl_operation_name + 'lars_blog__rss_lastUpdated', -- impl_alias + 'TCL' -- impl_pl +); Index: openacs-4/packages/lars-blogger/sql/postgresql/rss-unregister.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/sql/postgresql/rss-unregister.sql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/sql/postgresql/rss-unregister.sql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,13 @@ +-- +-- rss-unregister.sql +-- +-- @author Lars Pind +-- +-- @cvs-id $Id: rss-unregister.sql,v 1.1 2002/08/19 21:52:59 vinodk Exp $ +-- + +select acs_sc_impl__delete( + 'RssGenerationSubscriber', -- impl_contract_name + 'pinds_blog_entries' -- impl_name +); + Index: openacs-4/packages/lars-blogger/sql/postgresql/upgrade/upgrade-0.6.4d-0.7d.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/sql/postgresql/upgrade/upgrade-0.6.4d-0.7d.sql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/sql/postgresql/upgrade/upgrade-0.6.4d-0.7d.sql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,27 @@ +-- +-- upgrade-0.6.4d-0.7d.sql +-- +-- @author Vinod Kurup (vinod@kurup.com) +-- +-- @cvs-id $Id: upgrade-0.6.4d-0.7d.sql,v 1.1 2002/08/19 21:52:59 vinodk Exp $ +-- + +-- the only change is in the name of a proc that we send to +-- asc_sc_impl_alias. So, we just delete the old alias +-- and create a new one with the proper proc name (lars_blog...) + +select acs_sc_impl_alias__delete( + 'RssGenerationSubscriber', -- impl_contract_name + 'pinds_blog_entries', -- impl_name + 'lastUpdated', -- impl_operation_name +); + + +select acs_sc_impl_alias__new( + 'RssGenerationSubscriber', -- impl_contract_name + 'pinds_blog_entries', -- impl_name + 'lastUpdated', -- impl_operation_name + 'lars_blog__rss_lastUpdated', -- impl_alias + 'TCL' -- impl_pl +); + Index: openacs-4/packages/lars-blogger/tcl/lars-blogger-procs-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/tcl/lars-blogger-procs-oracle.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/tcl/lars-blogger-procs-oracle.xql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,31 @@ + + + + oracle8.1.6 + + + + select site_node.url(node_id) + from site_nodes + where object_id = :package_id + + + + + + begin + :1 := pinds_blog_entry.new ( + entry_id => :entry_id, + package_id => :package_id, + title => :title, + content => :content, + entry_date => to_date(:entry_date, 'YYYY-MM-DD'), + draft_p => :draft_p, + creation_user => :creation_user, + creation_ip => :creation_ip + ); + end; + + + + Index: openacs-4/packages/lars-blogger/tcl/lars-blogger-procs-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/tcl/lars-blogger-procs-postgresql.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/tcl/lars-blogger-procs-postgresql.xql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,29 @@ + + + + postgresql7.1 + + + + select site_node__url(node_id) + from site_nodes + where object_id = :package_id + + + + + + select pinds_blog_entry__new ( + :entry_id, + :package_id, + :title, + :content, + to_date(:entry_date, 'YYYY-MM-DD'), + :draft_p, + :creation_user, + :creation_ip + ) + + + + Index: openacs-4/packages/lars-blogger/tcl/lars-blogger-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/tcl/lars-blogger-procs.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/tcl/lars-blogger-procs.tcl 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,75 @@ +ad_library { + Procs used by the blogger module. + @author Lars Pind + @creation-date + @cvs-id $Id: lars-blogger-procs.tcl,v 1.1 2002/08/19 21:52:59 vinodk Exp $ +} + +ad_proc -private lars_package_url_from_package_id_internal { + package_id +} { + Internal function to get SiteMap URL given a package_id +} { + return [db_string site_url { *SQL* }] +} + +ad_proc -public lars_package_url_from_package_id { + package_id +} { + Return the URL of the www pages of this package (cached) +} { + return [util_memoize "lars_package_url_from_package_id_internal {$package_id}"] +} + +ad_proc -public lars_blog_entry_add { + {-entry_id:required} + {-package_id:required} + {-title:required} + {-content:required} + {-entry_date:required} + {-draft_p:required} +} { + Add the blog entry and then flush the cache so that the new entry shows up. +} { + set creation_user [ad_conn user_id] + set creation_ip [ns_conn peeraddr] + + set entry_id [db_exec_plsql entry_add { *SQL* }] + + lars_blog_flush_cache $package_id + + return $entry_id +} + + + +ad_proc -private lars_blog_get_as_string_mem { + {-package_id:required} + {-admin_p:required} +} { + return [template::adp_parse "[acs_package_root_dir "lars-blogger"]/www/blog" [list package_id $package_id]] +} + + +ad_proc -public lars_blog_get_as_string { + -package_id + -url +} { + if { ![exists_and_not_null package_id] } { + array set blog_site_node [site_node $url] + set package_id $blog_site_node(object_id) + } + set admin_p [ad_permission_p $package_id admin] + return [util_memoize "lars_blog_get_as_string_mem $package_id $admin_p" 600] +} + +ad_proc lars_blog_flush_cache { + {package_id ""} +} { + if { [empty_string_p $package_id] } { + set package_id [ad_conn package_id] + } + # Flush both admin and non-admin version + util_memoize_flush "lars_blog_get_as_string_mem $package_id 0" + util_memoize_flush "lars_blog_get_as_string_mem $package_id 1" +} \ No newline at end of file Index: openacs-4/packages/lars-blogger/tcl/rss-procs-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/tcl/rss-procs-oracle.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/tcl/rss-procs-oracle.xql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,43 @@ + + + + oracle8.1.6 + + + + select to_char(sysdate,'DD Mon YYYY hh12:MI am') + + + + + + select * + from (select entry_id, + title, + content, + entry_date, + posted_date, + to_char(posted_date, 'YYYY-MM-DD') as posted_date_string, + to_char(posted_date, 'HH:MI') as posted_time_string, + to_char(entry_date, 'DD Mon YYYY hh12:MI am') as entry_date_pretty, + to_char(entry_date, 'YYYY/MM/') as entry_archive_url + from pinds_blog_entries + where package_id = :package_id + and draft_p = 'f' + and deleted_p = 'f' + order by entry_date desc, posted_date desc) + where rownum < 11 + + + + + + select nvl ((max(posted_date)-to_date('1970-01-01'))*60*60*24,0) as last_update + from pinds_blog_entries + where package_id = :package_id + and draft_p = 'f' + and deleted_p = 'f' + + + + Index: openacs-4/packages/lars-blogger/tcl/rss-procs-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/tcl/rss-procs-postgresql.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/tcl/rss-procs-postgresql.xql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,42 @@ + + + + postgresql7.1 + + + + select to_char(current_timestamp,'DD Mon YYYY hh12:MI am') + + + + + + select entry_id, + title, + content, + entry_date, + posted_date, + to_char(posted_date, 'YYYY-MM-DD') as posted_date_string, + to_char(posted_date, 'HH:MI') as posted_time_string, + to_char(entry_date, 'DD Mon YYYY hh12:MI am') as entry_date_pretty, + to_char(entry_date, 'YYYY/MM/') as entry_archive_url + from pinds_blog_entries + where package_id = :package_id + and draft_p = 'f' + and deleted_p = 'f' + order by entry_date desc, posted_date desc + limit 10 + + + + + + select coalesce (date_part('epoch',max(posted_date)),0) as last_update + from pinds_blog_entries + where package_id = :package_id + and draft_p = 'f' + and deleted_p = 'f' + + + + Index: openacs-4/packages/lars-blogger/tcl/rss-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/tcl/rss-procs.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/tcl/rss-procs.tcl 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,94 @@ +ad_library { + Procs used by the to set up the rss service contract for the blogger module. + @author Lars Pind + @creation-date + @cvs-id $Id: rss-procs.tcl,v 1.1 2002/08/19 21:52:59 vinodk Exp $ +} + +ad_proc -private lars_blog__rss_datasource { + package_id +} { + This procedure implements the "datasource" operation of the + RssGenerationSubscriber service contract. + + @author Lars Pind (lars@pinds.com) +} { + set blog_title [db_string package_name { *SQL* }] + + set blog_url "[ad_url][ad_parameter -package_id $package_id "public_url" "lars-blogger" [lars_package_url_from_package_id $package_id]]" + + set column_array(channel_title) $blog_title + set column_array(channel_description) $blog_title + set column_array(channel_pubDate) [db_string now { *SQL* }] + + set column_array(version) 1.00 + + set column_array(channel_link) $blog_url + + set image_url [ad_parameter -package_id $package_id "channel_image_url"] + if { [empty_string_p $image_url] } { + set column_array(image) "" + } else { + set column_array(image) [list \ + url "[ad_url]$image_url" \ + title $blog_title \ + link $blog_url \ + width [ad_parameter -package_id $package_id "channel_image_width"] \ + height [ad_parameter -package_id $package_id "channel_image_height"]] + } + + set items [list] + set counter 0 + + db_foreach blog_rss_items { *SQL* } { + set entry_url "[ad_url][lars_package_url_from_package_id $package_id]archive/${entry_archive_url}#blog-entry-$entry_id" + + set content [ns_adp_parse -string $content] + + regsub -all {<[^>]*>} $content {} content_as_text + + set truncate_len 100 + if { [string length $content_as_text] > $truncate_len } { + set description "[string range $content_as_text 0 [expr {$truncate_len-3}]]..." + } else { + set description $content_as_text + } + + lappend items [list link $entry_url title $title description $description value $content timestamp "${posted_date_string}T${posted_time_string}-0600"] + if { $counter == 0 } { + set column_array(channel_lastBuildDate) $entry_date_pretty + incr counter + } + } + set column_array(items) $items + set column_array(channel_language) "" + set column_array(channel_copyright) "" + set column_array(channel_managingEditor) "" + set column_array(channel_webMaster) "" + set column_array(channel_rating) "" + set column_array(channel_skipDays) "" + set column_array(channel_skipHours) "" + + return [array get column_array] +} + +ad_proc -private lars_blog__rss_lastUpdated { + package_id +} { + Returns the time that the last blog entry was posted, + in Unix time. Returns 0 otherwise. + + @author Lars Pind (lars@pinds.com) +} { + db_0or1row get_last_update { + select coalesce (date_part('epoch',max(posted_date)),0) as last_update + from pinds_blog_entries + where package_id = :package_id + and draft_p = 'f' + and deleted_p = 'f' + } + + return $last_update +} + + Index: openacs-4/packages/lars-blogger/tcl/rss-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/tcl/rss-procs.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/tcl/rss-procs.xql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,11 @@ + + + + + + + select instance_name from apm_packages where package_id = :package_id + + + + Index: openacs-4/packages/lars-blogger/tcl/weblogs-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/tcl/weblogs-procs.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/tcl/weblogs-procs.tcl 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,107 @@ +ad_proc -private lars_blog_weblogs_com_update_ping { + {-package_id} + {-location} + {-timeout 30} + {-depth 0} +} { + Sends the xml/rpc message weblogUpldates.ping to weblogs.com + returns 1 if successful and logs the result. + @author Jerry Asher (jerry@theashergroup.com) + @author Lars Pind (lars@pinds.com) +} { + if { ![info exists package_id] } { + set package_id [ad_conn package_id] + } + + # Should we ping? + set ping_p [ad_parameter -package_id $package_id "weblogs_update_ping_p" "lars-blogger" 0] + if { !$ping_p } { + return + } + + if { ![info exists location] } { + set location [ad_parameter -package_id $package_id "weblogs_ping_url"] + } + if { [empty_string_p $location] } { + ns_log Error "lars_blog_weblogs_com_update_ping: No URL to post to" + return + } + + set blog_title [db_string package_name { *SQL* }] + + set blog_url "[ad_url][ad_parameter -package_id $package_id "public_url" "lars-blogger" [lars_package_url_from_package_id $package_id]]" + + ns_log notice "lars_blog_weblogs_com_update_ping:" + if [catch { + if {[incr depth] > 10} { + return -code error "rss_weblogUpdatesping: Recursive redirection: $location" + } + set req_hdrs [ns_set create] + + set message " + + weblogUpdates.ping + + + [ad_quotehtml $blog_title] + + + [ad_quotehtml $blog_url] + + +" + + # headers necesary for a post and the form variables + ns_set put $req_hdrs "Content-type" "text/xml" + ns_set put $req_hdrs "Content-length" [string length $message] + set http [ns_httpopen POST $location $req_hdrs 30 $message] + set rfd [lindex $http 0] + set wfd [lindex $http 1] + set rpset [lindex $http 2] + + flush $wfd + close $wfd + + ns_log notice "lars_blog_weblogs_com_update_ping: pinging for blog $blog_title and url $blog_url" + ns_log notice message: \"$message\" + + set headers $rpset + set response [ns_set name $headers] + set status [lindex $response 1] +if {$status == 302} { + set location [ns_set iget $headers location] + if {$location != ""} { + ns_set free $headers + close $rfd + return [lars_blog_weblogs_com_update_ping -package_id $package_id -location $location -timeout $timeout -depth $depth] + } +} + set length [ns_set iget $headers content-length] +if [string match "" $length] {set length -1} + set err [catch { + while 1 { + set buf [_ns_http_read $timeout $rfd $length] + append page $buf + if [string match "" $buf] break + if {$length > 0} { + incr length -[string length $buf] + if {$length <= 0} break + } + } + } errMsg] + ns_set free $headers + close $rfd + if $err { + global errorInfo + return -code error -errorinfo $errorInfo $errMsg + } + } errmsg ] { + ns_log error "lars_blog_weblogs_com_update_ping error: $errmsg" + return -1 + } else { + ns_log notice "lars_blog_weblogs_com_update_ping: $page" + return 1 + } +} + + Index: openacs-4/packages/lars-blogger/tcl/weblogs-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/tcl/weblogs-procs.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/tcl/weblogs-procs.xql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,12 @@ + + + + + + + select instance_name from apm_packages + where package_id = :package_id + + + + Index: openacs-4/packages/lars-blogger/www/admin-links.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/Attic/admin-links.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin-links.adp 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,11 @@ + + + + + +
+ + (@links.value@) + +
+
Index: openacs-4/packages/lars-blogger/www/admin-links.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/Attic/admin-links.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin-links.tcl 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,11 @@ +set package_id [ad_conn package_id] + +set admin_p [ad_permission_p $package_id admin] + +set package_url [lars_package_url_from_package_id $package_id] + +multirow create links url value title +multirow append links "${package_url}admin/entry-edit" "Add entry" "Add an entry to this blog" +multirow append links "${package_url}admin/" "Administer" "Visit the administration pages for this blog" + +ad_return_template Index: openacs-4/packages/lars-blogger/www/archive-display.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/Attic/archive-display.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/archive-display.adp 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,12 @@ + +@page_title@ +

@page_title@

+ + + +@context_bar@ +
+ + + + Index: openacs-4/packages/lars-blogger/www/archive-display.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/Attic/archive-display.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/archive-display.tcl 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,33 @@ +ad_page_contract {} { + year:notnull,string_length_range(4|4) + month:notnull,string_length_range(2|2) + day:optional,string_length_range(2|2) +} + +set package_id [ad_conn package_id] + +set package_url [lars_package_url_from_package_id $package_id] + +set admin_p [ad_permission_p $package_id admin] + +set page_title "[db_string package_name { *SQL* }] Archive" + +if { [empty_string_p $day] } { + + set interval "month" + + db_1row archive_date_month { *SQL* } + + set context_bar [ad_context_bar [list "${package_url}archive/" "Archive"] $archive_date_pretty] + +} else { + + set interval "day" + + db_1row archive_date_month_day { *SQL* } + + set context_bar [ad_context_bar [list "${package_url}archive/" "Archive"] $archive_date_pretty] + +} + +ad_return_template \ No newline at end of file Index: openacs-4/packages/lars-blogger/www/archive-display.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/Attic/archive-display.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/archive-display.xql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,32 @@ + + + + + + + select instance_name from apm_packages + where package_id = :package_id + + + + + + select to_date(:year || :month, 'YYYYMM') + as archive_date, + to_char(to_date(:year || :month, 'YYYYMM'), 'fmMonthfm, YYYY') + as archive_date_pretty + from dual + + + + + + select to_date(:year || :month || :day, 'YYYYMMDD') + as archive_date, + to_char(to_date(:year || :month || :day, 'YYYYMMDD'), 'Month fmDDfm, YYYY') + as archive_date_pretty + from dual + + + + Index: openacs-4/packages/lars-blogger/www/archive-index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/Attic/archive-index.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/archive-index.adp 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,11 @@ + +@page_title@ +

@page_title@

+ + +@context_bar@ +
+ +These are all the months that there's been blogging going on: + + Index: openacs-4/packages/lars-blogger/www/archive-index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/Attic/archive-index.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/archive-index.tcl 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,18 @@ +ad_page_contract { + Blog archive index page. + + @author Lars Pind (lars@pinds.com) + @created June 1, 2002 +} -properties { + page_title:onevalue + context_bar:onevalue + months:multirow +} + +set package_id [ad_conn package_id] + +set page_title "[db_string package_name { *SQL* }] Archive" + +set context_bar [ad_context_bar "Archive"] + +ad_return_template Index: openacs-4/packages/lars-blogger/www/archive-index.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/Attic/archive-index.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/archive-index.xql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,12 @@ + + + + + + + select instance_name from apm_packages + where package_id = :package_id + + + + Index: openacs-4/packages/lars-blogger/www/blog-months-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/blog-months-oracle.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/blog-months-oracle.xql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,22 @@ + + + + oracle8.1.6 + + + + select trunc(entry_date, 'month') as month_date, + to_char(trunc(entry_date, 'month'), 'fmMonthfm, YYYY') + as date_pretty, + to_char(trunc(entry_date, 'month'), 'YYYY/MM/') + as month_url_stub, + '' as url + from pinds_blog_entries + where draft_p = 'f' + and package_id = :package_id + group by trunc(entry_date, 'month') + order by month_date desc + + + + Index: openacs-4/packages/lars-blogger/www/blog-months-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/blog-months-postgresql.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/blog-months-postgresql.xql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,22 @@ + + + + postgresql7.1 + + + + select date_trunc('month', entry_date) as month_date, + to_char(date_trunc('month', entry_date), 'fmMonthfm, YYYY') + as date_pretty, + to_char(date_trunc('month', entry_date), 'YYYY/MM/') + as month_url_stub, + '' as url + from pinds_blog_entries + where draft_p = 'f' + and package_id = :package_id + group by month_date + order by month_date desc + + + + Index: openacs-4/packages/lars-blogger/www/blog-months.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/blog-months.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/blog-months.adp 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,5 @@ + \ No newline at end of file Index: openacs-4/packages/lars-blogger/www/blog-months.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/blog-months.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/blog-months.tcl 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,9 @@ +set package_id [ad_conn package_id] + +set package_url [lars_package_url_from_package_id $package_id] + +db_multirow months months { *SQL* } { + set url "${package_url}archive/$month_url_stub" +} + +ad_return_template \ No newline at end of file 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 -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/blog-oracle.xql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,56 @@ + + + + oracle8.1.6 + + + + trunc(entry_date, :archive_interval) = :archive_date + + + + + + entry_date > sysdate - 30 + + + + + + select entry_id, + to_char(entry_date, 'fmDayfm, Month fmDDfm, YYYY') as entry_date_pretty, + to_char(entry_date, 'YYYY/MM/DD/') as entry_archive_url, + entry_date, + title, + content, + draft_p, + 'f' as new_date_p, + p.first_names as poster_first_names, + p.last_name as poster_last_name, + to_char(posted_date , 'HH24:SS') as posted_time_pretty, + (select count(gc.comment_id) + from general_comments gc, cr_revisions cr + where gc.object_id = entry_id + and content_item.get_live_revision(gc.comment_id) = cr.revision_id) as num_comments, + 0 as row_number, + '' as edit_url, + '' as delete_url, + '' as publish_url, + '' as revoke_url, + '' as comments_view_url, + '' as comment_add_url, + '' as google_url + from pinds_blog_entries e, + acs_objects o, + persons p + where e.entry_id = o.object_id + and p.person_id = o.creation_user + and package_id = :package_id + and $date_clause + and draft_p = 'f' + and deleted_p = 'f' + order by entry_date desc, posted_date desc + + + + Index: openacs-4/packages/lars-blogger/www/blog-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/blog-postgresql.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/blog-postgresql.xql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,54 @@ + + + + postgresql7.1 + + + + date_trunc(:archive_interval, entry_date) = :archive_date + + + + + + entry_date > current_timestamp - interval '30 days' + + + + + + select entry_id, + to_char(entry_date, 'fmDayfm, Month fmDDfm, YYYY') as entry_date_pretty, + to_char(entry_date, 'YYYY/MM/DD/') as entry_archive_url, + entry_date, + title, + content, + draft_p, + 'f' as new_date_p, + p.first_names as poster_first_names, + p.last_name as poster_last_name, + to_char(posted_date , 'HH24:SS') as posted_time_pretty, + (select count(gc.comment_id) + from general_comments gc, cr_revisions cr + where gc.object_id = entry_id + and content_item__get_live_revision(gc.comment_id) = cr.revision_id) as num_comments, + 0 as row_number, + '' as edit_url, + '' as delete_url, + '' as publish_url, + '' as revoke_url, + '' as comments_view_url, + '' as comment_add_url, + '' as google_url + from pinds_blog_entries e join + acs_objects o on (o.object_id = e.entry_id) join + persons p on (p.person_id = o.creation_user) + where package_id = :package_id + and $date_clause + and draft_p = 'f' + and deleted_p = 'f' + order by entry_date desc, posted_date desc + + + + Index: openacs-4/packages/lars-blogger/www/blog.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/blog.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/blog.adp 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,60 @@ + + + + + + +
+ @blog.entry_date_pretty@ + + + (Add entry) + + +
+
+ + +
+ + +

@blog.title@

+
+ @blog.content@ + + (Edit) (Delete) + + (Publish) + + + (Revoke) + + +
+ + + + + + + + + +
+ +
+ Posted by @blog.poster_first_names@ @blog.poster_last_name@ at @blog.posted_time_pretty@ +
+
+ # - + G - + + @blog.num_comments@ comments - + + Add comment +
+
+ + +Archive +Archive 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 -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/blog.tcl 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,69 @@ +# Expects: +# package_id:optional +# url:optional +# type:optional (current, archive) +# archive_interval:optional +# archive_date:optional + +# If the caller specified a URL, then we gather the package_id from that URL +if { [info exists url] } { + array set blog_site_node [site_node $url] + set package_id $blog_site_node(object_id) +} + +# If they supplied neither url nor package_id, then we just use ad_conn package_id +if { ![info exists package_id] } { + set package_id [ad_conn package_id] +} + +if { ![info exists type] } { + set type "current" +} + +switch -exact $type { + archive { + set date_clause "[db_map date_clause_archive]" + } + default { + set date_clause "[db_map date_clause_default]" + } +} + +set show_poster_p [ad_parameter "ShowPosterP" "" "1"] + +set package_url [lars_package_url_from_package_id $package_id] + +set admin_p [ad_permission_p $package_id admin] + +set old_date "" + +set count 0 + +db_multirow blog blog { *SQL* } { + if { ![string equal $old_date $entry_date_pretty] } { + set new_date_p "t" + set old_date $entry_date_pretty + } + set row_number [incr count] + + set return_url "${package_url}one-entry?[export_vars -url { entry_id }]" + set edit_url "${package_url}admin/entry-edit?[export_vars -url { entry_id return_url }]" + set delete_url "${package_url}admin/entry-delete?[export_vars -url { entry_id return_url }]" + set publish_url "${package_url}admin/entry-publish?[export_vars -url { entry_id return_url }]" + set revoke_url "${package_url}admin/entry-revoke?[export_vars -url { entry_id return_url }]" + set entry_archive_url "${package_url}archive/${entry_archive_url}#blog-entry-$entry_id" + + set comment_add_url "[general_comments_package_url]comment-add?[export_vars -url { { object_id $entry_id } { object_name {[ad_html_to_text -- $title]} } { return_url "${package_url}flush-cache?[export_vars -url { return_url }]"} }]" + set comments_view_url "${package_url}one-entry?[export_vars -url { entry_id }]" + + set google_url "http://www.google.com/search?[export_vars -url { {q $title } }]" + + set content [ns_adp_parse -string $content] +} + +set archive_url "${package_url}archive/" +set arrow_url "${package_url}graphics/arrow-box.gif" + +set entry_add_url "${package_url}admin/entry-edit" + +ad_return_template Index: openacs-4/packages/lars-blogger/www/flush-cache.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/flush-cache.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/flush-cache.tcl 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,11 @@ +ad_page_contract { + Flush the blog cache. +} { + return_url +} + +lars_blog_flush_cache [ad_conn package_id] + +ad_returnredirect $return_url + + Index: openacs-4/packages/lars-blogger/www/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/index.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/index.adp 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,54 @@ + +@page_title@ + + + + + +

@page_title@

+ + +@context_bar@ +
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ Archive +
+ +
+
+
+ Syndication Feed +
+ RSS 1.0/RDF/XML +
+ +
+ Index: openacs-4/packages/lars-blogger/www/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/index.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/index.tcl 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,17 @@ +ad_page_contract {} { +} -properties { + context_bar + page_title +} + +set package_id [ad_conn package_id] + +set context_bar [ad_context_bar] + +set page_title [db_string package_name { *SQL* }] + +if { ![empty_string_p [ad_parameter "rss_file_url"]] } { + set rss_file_url "[ad_url][ad_parameter "rss_file_url"]" +} + +ad_return_template Index: openacs-4/packages/lars-blogger/www/index.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/index.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/index.xql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,12 @@ + + + + + + + select instance_name from apm_packages + where package_id = :package_id + + + + 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 -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/one-entry.adp 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,32 @@ + +@page_title@ +

@page_title@

+ +@context_bar@ +
+ + +

@title@

+
+

+ @content@ + + (Edit) (Delete) + + (Publish) + + + (Revoke) + + +

+ + +

+

Comments

+
+ @comments_html@ +
+
+ +
Add comment
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 -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/one-entry.tcl 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,44 @@ +ad_page_contract {} { + entry_id:integer + {return_url ""} +} -properties { + context_bar + title_html + content_html + draft_p_checked + entry_date_html + form_export_vars + return_url +} + +set package_id [ad_conn package_id] + +set admin_p [ad_permission_p $package_id admin] + +if { [empty_string_p $return_url] } { + set return_url "[ad_conn url]?[ad_conn query]" +} + +db_1row entry { *SQL* } + +set page_title $title + +set context_bar [ad_context_bar $page_title] + +set title_html [ad_quotehtml $title] +set content [ns_adp_parse -string $content] +set content_html [ad_quotehtml $content] +set entry_date_html [ad_quotehtml $entry_date] +set draft_p_checked [ad_decode $draft_p "t" "checked" ""] + +set edit_url "[ad_conn package_url]admin/entry-edit?[export_vars -url { entry_id return_url }]" +set delete_url "[ad_conn package_url]admin/entry-delete?[export_vars -url { entry_id return_url }]" + +set publish_url "[ad_conn package_url]admin/entry-publish?[export_vars -url { entry_id return_url }]" +set revoke_url "[ad_conn package_url]admin/entry-revoke?[export_vars -url { entry_id return_url }]" + +set comments_html [general_comments_get_comments -print_content_p 1 $entry_id] + +set comment_add_url "[general_comments_package_url]comment-add?[export_vars -url { { object_id $entry_id } { object_name $title } { return_url "[ad_conn package_url]flush-cache?[export_vars -url { return_url }]"} }]" + +ad_return_template \ No newline at end of file Index: openacs-4/packages/lars-blogger/www/one-entry.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/Attic/one-entry.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/one-entry.xql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,13 @@ + + + + + + + select title, content, draft_p, to_char(entry_date, 'YYYY-MM-DD') as entry_date + from pinds_blog_entries + where entry_id = :entry_id + + + + Index: openacs-4/packages/lars-blogger/www/admin/drafts.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/Attic/drafts.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin/drafts.adp 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,36 @@ + +@page_title@ +

@page_title@

+@context_bar@ +
+ + + + + +
+ + + + + + + + + + + + + + + +
DateTitleContentAction
@draft_entries.entry_date_pretty@@draft_entries.title@@draft_entries.content@ + Preview + Edit + Delete +
+
+ + \ No newline at end of file Index: openacs-4/packages/lars-blogger/www/admin/drafts.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/Attic/drafts.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin/drafts.tcl 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,25 @@ +ad_page_contract {} { +} -properties { + context_bar +} + +set package_id [ad_conn package_id] + +set admin_p [ad_require_permission $package_id admin] + +set page_title "Draft Entries" + +set context_bar [ad_context_bar $page_title] + +db_multirow draft_entries draft_entries { *SQL* } { + set return_url "[ad_conn url][ad_decode [ad_conn query] "" "" "?[ad_conn query]"]" + set edit_url "[ad_conn package_url]admin/entry-edit?[export_vars -url { entry_id return_url }]" + set delete_url "[ad_conn package_url]admin/entry-delete?[export_vars -url { entry_id return_url }]" + set preview_url "[ad_conn package_url]admin/entry-preview?[export_vars -url { entry_id return_url }]" + set content [ns_adp_parse -string $content] +} + +set entry_add_url "entry-edit" + +ad_return_template + Index: openacs-4/packages/lars-blogger/www/admin/drafts.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/Attic/drafts.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin/drafts.xql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,22 @@ + + + + + + + select entry_id, + to_char(entry_date, 'YYYY-MM-DD') as entry_date_pretty, + title, + content, + '' as edit_url, + '' as delete_url, + '' as preview_url + from pinds_blog_entries + where package_id = :package_id + and draft_p = 't' + and deleted_p = 'f' + order by entry_date desc, posted_date desc + + + + Index: openacs-4/packages/lars-blogger/www/admin/entry-delete.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/Attic/entry-delete.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin/entry-delete.tcl 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,12 @@ +ad_page_contract {} { + entry_id:integer + {return_url ""} +} + +db_dml delete { + update pinds_blog_entries + set deleted_p = 't' + where entry_id = :entry_id +} + +ad_returnredirect $return_url \ No newline at end of file Index: openacs-4/packages/lars-blogger/www/admin/entry-delete.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/Attic/entry-delete.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin/entry-delete.xql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,13 @@ + + + + + + + update pinds_blog_entries + set deleted_p = 't' + where entry_id = :entry_id + + + + Index: openacs-4/packages/lars-blogger/www/admin/entry-edit-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/Attic/entry-edit-oracle.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin/entry-edit-oracle.xql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,18 @@ + + + + oracle8.1.6 + + + + select to_char(sysdate, 'YYYY-MM-DD') from dual + + + + + + posted_date = sysdate + + + + Index: openacs-4/packages/lars-blogger/www/admin/entry-edit-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/Attic/entry-edit-postgresql.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin/entry-edit-postgresql.xql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,18 @@ + + + + postgresql7.1 + + + + select to_char(current_timestamp, 'YYYY-MM-DD') + + + + + + posted_date = current_timestamp + + + + Index: openacs-4/packages/lars-blogger/www/admin/entry-edit.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/Attic/entry-edit.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin/entry-edit.adp 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,15 @@ + +@page_title@ +entry.title +

@page_title@

+@context_bar@ +
+ + + + + Index: openacs-4/packages/lars-blogger/www/admin/entry-edit.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/Attic/entry-edit.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin/entry-edit.tcl 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,107 @@ +ad_page_contract {} { + {entry_id:integer ""} + {return_url ""} + cancel:optional +} -properties { + context_bar + today_html +} + +if { [info exists cancel] } { + catch { set return_url [element get_value entry return_url] } + if { [empty_string_p $return_url] } { + set return_url "." + } + ad_returnredirect $return_url + ad_script_abort +} + +set today [db_string today { *SQL* }] +set today_html [ad_quotehtml $today] + +form create entry + +element create entry title -label "Title" -datatype text -html { size 50 } +element create entry content -label "Content" -datatype text -widget textarea -html { cols 80 rows 20 } +element create entry entry_date -label "Entry date" -datatype text +element create entry entry_date_today -label "Set to today" -datatype text -widget inform -value {(Set to today)} +element create entry draft_p -label "Draft" -datatype text -widget checkbox -options { { "This is a draft, don't publish it" "t" } } -optional + +element create entry entry_id -widget hidden -datatype text +element create entry insert_or_update -widget hidden -datatype text +element create entry return_url -widget hidden -datatype text -value $return_url + +if { [form is_request entry] } { + + if { [empty_string_p $entry_id] } { + set insert_or_update insert + set entry_id [db_nextval "acs_object_id_seq"] + element set_properties entry entry_date -value $today + element set_properties entry draft_p -value "t" + } else { + set insert_or_update update + + db_1row entry { *SQL* } + + element set_properties entry title -value $title + element set_properties entry content -value $content + element set_properties entry entry_date -value $entry_date + element set_properties entry draft_p -value $draft_p + } + + element set_properties entry entry_id -value $entry_id + template::element set_properties entry insert_or_update -value $insert_or_update +} + + +if { [form is_valid entry] } { + set entry_id [element get_value entry entry_id] + set title [element get_value entry title] + set content [element get_value entry content] + set entry_date [element get_value entry entry_date] + set draft_p [element get_value entry draft_p] + set draft_p [ad_decode $draft_p "" "f" $draft_p] + + set return_url [element get_value entry return_url] + set insert_or_update [element get_value entry insert_or_update] + + if { [string equal $insert_or_update "insert"] } { + lars_blog_entry_add \ + -entry_id $entry_id \ + -package_id [ad_conn package_id] \ + -title $title \ + -content $content \ + -entry_date $entry_date \ + -draft_p "$draft_p" + } else { + set set_clauses { "title = :title" "content = :content" "entry_date = to_date(:entry_date, 'YYYY-MM-DD')" "draft_p = :draft_p" } + + if { [string equal $draft_p [db_string org_draft_p { select draft_p from pinds_blog_entries where entry_id = :entry_id } ]] } { + lappend set_clauses "[db_map now]" + } + + db_dml update_entry { *SQL* } + + lars_blog_flush_cache [ad_conn package_id] + } + + if { [empty_string_p $return_url] } { + set return_url "entry-preview?[export_vars -url { entry_id }]" + } + + ad_returnredirect $return_url + ad_script_abort +} + +switch -- $insert_or_update { + insert { + set page_title "Add Blog Entry" + } + update { + set page_title "Edit Blog Entry" + } +} + +set context_bar [ad_context_bar $page_title] + +ad_return_template \ No newline at end of file Index: openacs-4/packages/lars-blogger/www/admin/entry-edit.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/Attic/entry-edit.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin/entry-edit.xql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,21 @@ + + + + + + + select title, content, draft_p, to_char(entry_date, 'YYYY-MM-DD') as entry_date + from pinds_blog_entries + where entry_id = :entry_id + + + + + + update pinds_blog_entries + set [join $set_clauses ", "] + where entry_id = :entry_id + + + + Index: openacs-4/packages/lars-blogger/www/admin/entry-preview.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/Attic/entry-preview.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin/entry-preview.adp 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,22 @@ + +@page_title@ +

@page_title@

+@context_bar@ +
+ + +

@title@

+
+

+ @content@ + + (Edit) (Delete) + + (Publish) + + + (Revoke) + + +

+ Index: openacs-4/packages/lars-blogger/www/admin/entry-preview.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/Attic/entry-preview.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin/entry-preview.tcl 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,37 @@ +ad_page_contract {} { + entry_id:integer + return_url:optional +} -properties { + context_bar + title_html + content_html + draft_p_checked + entry_date_html + form_export_vars + return_url +} + +set package_id [ad_conn package_id] + +set admin_p [ad_permission_p $package_id admin] + +set page_title "Preview Blog Entry" + +set context_bar [ad_context_bar $page_title] + +db_1row entry { *SQL* } + +set title_html [ad_quotehtml $title] +set content [ns_adp_parse -string $content] +set content_html [ad_quotehtml $content] +set entry_date_html [ad_quotehtml $entry_date] +set draft_p_checked [ad_decode $draft_p "t" "checked" ""] + +set edit_url "[ad_conn package_url]admin/entry-edit?[export_vars -url { entry_id return_url }]" +set delete_url "[ad_conn package_url]admin/entry-delete?[export_vars -url { entry_id return_url }]" + +set publish_url "entry-publish?[export_vars -url { entry_id return_url }]" +set revoke_url "entry-revoke?[export_vars -url { entry_id return_url }]" + + +ad_return_template \ No newline at end of file Index: openacs-4/packages/lars-blogger/www/admin/entry-preview.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/Attic/entry-preview.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin/entry-preview.xql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,13 @@ + + + + + + + select title, content, draft_p, to_char(entry_date, 'YYYY-MM-DD') as entry_date + from pinds_blog_entries + where entry_id = :entry_id + + + + Index: openacs-4/packages/lars-blogger/www/admin/entry-publish-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/Attic/entry-publish-oracle.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin/entry-publish-oracle.xql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,16 @@ + + + + oracle8.1.6 + + + + update pinds_blog_entries + set entry_date = trunc(sysdate), + draft_p = 'f', + posted_date = sysdate + where entry_id = :entry_id + + + + Index: openacs-4/packages/lars-blogger/www/admin/entry-publish-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/Attic/entry-publish-postgresql.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin/entry-publish-postgresql.xql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,16 @@ + + + + postgresql7.1 + + + + update pinds_blog_entries + set entry_date = date_trunc('day', current_timestamp), + draft_p = 'f', + posted_date = current_timestamp + where entry_id = :entry_id + + + + Index: openacs-4/packages/lars-blogger/www/admin/entry-publish.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/Attic/entry-publish.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin/entry-publish.tcl 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,16 @@ +ad_page_contract {} { + entry_id:integer + {return_url "index"} +} + +db_dml update_entry { *SQL* } + +ad_returnredirect $return_url + +ns_conn close + +# Ping weblogs.com +lars_blog_weblogs_com_update_ping + +# Flush cache +lars_blog_flush_cache Index: openacs-4/packages/lars-blogger/www/admin/entry-revoke.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/Attic/entry-revoke.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin/entry-revoke.tcl 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,12 @@ +ad_page_contract {} { + entry_id:integer + {return_url "index"} +} + +db_dml update_entry { *SQL* } + +ad_returnredirect $return_url +ns_conn close + +# Flush cache +lars_blog_flush_cache Index: openacs-4/packages/lars-blogger/www/admin/entry-revoke.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/Attic/entry-revoke.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin/entry-revoke.xql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,13 @@ + + + + + + + update pinds_blog_entries + set draft_p = 't' + where entry_id = :entry_id + + + + Index: openacs-4/packages/lars-blogger/www/admin/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/index.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin/index.adp 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,12 @@ + +@title@ +

@title@

+@context_bar@ +
+ + + Index: openacs-4/packages/lars-blogger/www/admin/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/index.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin/index.tcl 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,15 @@ +ad_page_contract {} { +} -properties { + context_bar +} + +set package_id [ad_conn package_id] + +set admin_p [ad_require_permission $package_id admin] + +set context_bar [ad_context_bar] + +set title [db_string package_name { *SQL* }] + +ad_return_template + Index: openacs-4/packages/lars-blogger/www/admin/index.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/index.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin/index.xql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,12 @@ + + + + + + + select instance_name from apm_packages + where package_id = :package_id + + + + Index: openacs-4/packages/lars-blogger/www/admin/recently-published-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/Attic/recently-published-oracle.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin/recently-published-oracle.xql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,21 @@ + + + + oracle8.1.6 + + + + select entry_id, + to_char(entry_date, 'YYYY-MM-DD') as entry_date_pretty, + title, + content, + '' as edit_url + from pinds_blog_entries + where package_id = :package_id + and posted_date > sysdate - 14 + and draft_p = 'f' + order by entry_date desc, posted_date desc + + + + Index: openacs-4/packages/lars-blogger/www/admin/recently-published-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/Attic/recently-published-postgresql.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin/recently-published-postgresql.xql 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,21 @@ + + + + postgresql7.1 + + + + select entry_id, + to_char(entry_date, 'YYYY-MM-DD') as entry_date_pretty, + title, + content, + '' as edit_url + from pinds_blog_entries + where package_id = :package_id + and posted_date > current_timestamp - interval '14 days' + and draft_p = 'f' + order by entry_date desc, posted_date desc + + + + Index: openacs-4/packages/lars-blogger/www/admin/recently-published.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/Attic/recently-published.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin/recently-published.adp 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,28 @@ + +@page_title@ +

@page_title@

+@context_bar@ +
+ + + + + +
+ + + + + + + + + + + + + + + +
DateTitleContentAction
@entries.entry_date_pretty@@entries.title@@entries.content@Edit
+
Index: openacs-4/packages/lars-blogger/www/admin/recently-published.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/Attic/recently-published.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/admin/recently-published.tcl 19 Aug 2002 21:52:59 -0000 1.1 @@ -0,0 +1,19 @@ +ad_page_contract {} { +} -properties { + context_bar +} + +set package_id [ad_conn package_id] + +set admin_p [ad_require_permission $package_id admin] + +set page_title "Recently Published Entries" + +set context_bar [ad_context_bar $page_title] + +db_multirow entries entries { *SQL* } { + set return_url "[ad_conn url][ad_decode [ad_conn query] "" "" "?[ad_conn query]"]" + set edit_url "[ad_conn package_url]admin/entry-edit?[export_vars -url { entry_id return_url }]" +} + +ad_return_template Index: openacs-4/packages/lars-blogger/www/archive/index.vuh =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/archive/Attic/index.vuh,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/archive/index.vuh 19 Aug 2002 21:53:00 -0000 1.1 @@ -0,0 +1,25 @@ +set extra_url_list [split [ad_conn extra_url] "/"] + +set year [lindex $extra_url_list 1] +set month [lindex $extra_url_list 2] +set day [lindex $extra_url_list 3] + +if { [empty_string_p $year] && [empty_string_p $month] && [empty_string_p $day] } { + + ad_conn -set file "[acs_root_dir]/packages/lars-blogger/www/archive-index.tcl" + +} else { + + if { [empty_string_p [ns_getform]] } { + global _ns_form + set _ns_form [ns_set create] + } + + ns_set put [ns_getform] year $year + ns_set put [ns_getform] month $month + ns_set put [ns_getform] day $day + + ad_conn -set file "[acs_root_dir]/packages/lars-blogger/www/archive-display.tcl" +} + +adp_parse_ad_conn_file Index: openacs-4/packages/lars-blogger/www/doc/index.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/doc/index.html,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lars-blogger/www/doc/index.html 19 Aug 2002 21:53:00 -0000 1.1 @@ -0,0 +1,191 @@ + + +Lars Pind's Blogger Documentation + + +

Lars Pind's Blogger Documentation

+By Lars Pind +
+ +

Why

+ +

+ I wrote this blogger package for my own web site at pinds.com. For background + information, please visit http://www.pinds.com/download. +

+ +

Download

+ +

+ Visit http://www.pinds.com/download + to download the latest version. +

+ +

Getting started

+ +

+ Install the package on your system, mount a new instance somewhere + on the site map, make sure you have admin permission on the + instance, and then visit /admin under the URL where you mounted + it. Now you can add your first blog entry. +

+ +

Syndicating a blog (putting it on your front page)

+ +

+ If you want to include a blog as part of another page, that's pretty + simple. +

+ +

+ If you're including in an ADP, say: +

+ +
+<include src="/packages/lars-blogger/www/blog" url="/blog">
+
+ +

+ Or from a Tcl page: +

+ +
+set blog_html [template::adp_parse "[acs_package_root_dir "lars-blogger"]/www/blog" [list url "/blog"]]
+
+ +

+ If you supply a URL, then the blog that matches that URL is served + (assuming that a lars-blogger package is mounted at that + URL). Alternatively, you can supply a package_id + parameter directly. If nothing is supplied, [ad_conn + package_id] is used. +

+ +

+ Alternatively, there's a cached version of the same, which is useful + if you're including a blog on the front page of a highly trafficked + site. +

+ +
[lars_blog_get_as_string -url "/blog"]
+ +

+ This takes either a package_id or a url argument, just like the + others. To include this in an ADP, you can also say: +

+ +
<%=[lars_blog_get_as_string -url "/blog"]%>
+ + +

Technical Info

+ +The package fully supports multiple instances, i.e., you can mount +several instances in your site map, and they'll stay properly isolated +from each other. + +

+ +Only supports PostgreSQL (please do port to Oracle if you want to). + +

+ +Contents in your blog entries are assumed to be full-blood ADP-ified +HTML, so don't give people access to post a blog unless you trust +them. I guess it should be made configurable whether to allow this or +not, but since I'm developing this for my own site primarily, I +haven't done so. This also means that if you've added custom ADP tags, +those are also available to you in your blog. + +

weblogs.com update ping

+ +There are a couple parameters governing this feature. You can turn it +on or off on a per-package basis. And you can specify which URL you +want to export to weblogs.com, in case it's not the one the package +instance is mounted at. This can be useful if you're including the +blog on other pages, for example your site's front page. Thanks to +Jerry Asher for the code to do this. + +

RSS Feed

+ +The RSS feed is version 1.0 only, and requires the rss-support package +if you want to use it. I found that getting rss-support to register +the Report Generation Subscripion (whatever that means) was +hard. There seemed to be a bug, but the rss-support package was so +hard for me to figure out that I'm not sure. In the end, I hacked on +some page scripts and added a channel_title through SQL. Phew! Let me +know if you try to get this running, so we can either fix the bug(s) +or write some clear docs on how to. + +

+ +You can supply your own channel image through the parameters. And you +can specify which URL we should advertise the RSS fil under. Leave +blank if you haven't set up an RSS feed for this package. + + +

Road Map

+ +
    + +
  • Categorize and full-text-search-index blog entries so the archives are more useful. + +
  • Dave Bauer is implementing this as an ETP application, interesting +to see where that goes. + +
  • Calendar widget + +
  • Easier to set up RSS support (probably requires mucking with the rss-support package) + +
  • Nicer interface + +
  • Make it safe to use in a not-so-protected environment, e.g., +disable <% ... %> ADP notation. + +
  • More thorough documentation and some setup/config pages. + +
+ +

Version History

+ +
    + +
  • 0.7d Finished port to Oracle. Upgraded PG drop script. Renamed RSS proc which requires running the SQL upgrade script (for PG). Bug-fix to bypass 'draft' and publish directly. -vinodk (August 15, 2002) + +
  • 0.6.4d Added poster information, optional per +parameter. Added "url" shortcut variable to the blog template. Updated +documentation. (July 23, 2002) + +
  • 0.6.3d Added drop scripts, and made the create script call rss-register. Fixed minor bugs. (July 22, 2002) + +
  • 0.6.1d Fixed RSS last update bug. (Jun 2, 2002) + +
  • 0.6d Added RSS feed. Woohoo! (June 1, 2002) + +
  • 0.5d Added weblogs.com update ping. (June 1, 2002) + +
  • 0.4d Added Google link, new style. (May 31, 2002) + +
  • 0.3.3d Added Peter Marklund's arrow-box.gif patch. (May 13, 2002) + +
  • 0.3.2d Missing files from the distribution. + +
  • 0.3d Improved admin interface, added documentation. (March 24, 2002) + +
  • 0.2d Allow and show comments on blog. (March 23, 2002) + +
  • 0.1d Initial version. (February 18, 2002) + +
+ +

License

+ +Released under the GPL. + +
+
lars@pinds.com
+ + + \ No newline at end of file Index: openacs-4/packages/lars-blogger/www/graphics/arrow-box.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/graphics/arrow-box.gif,v diff -u -N Binary files differ