Index: openacs-4/packages/lars-blogger/lib/blogroll.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/lib/blogroll.adp,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/lars-blogger/lib/blogroll.adp 14 Dec 2003 13:02:37 -0000 1.1
@@ -0,0 +1,9 @@
+
+
+
+
+ - @links.name@
+
+
+
+
Index: openacs-4/packages/lars-blogger/lib/blogroll.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/lib/blogroll.tcl,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/lars-blogger/lib/blogroll.tcl 14 Dec 2003 13:02:37 -0000 1.1
@@ -0,0 +1,2 @@
+set package_id [ad_conn package_id]
+db_multirow links blogroll_select ""
Index: openacs-4/packages/lars-blogger/lib/blogroll.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/lib/blogroll.xql,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/lars-blogger/lib/blogroll.xql 14 Dec 2003 13:02:37 -0000 1.1
@@ -0,0 +1,16 @@
+
+
+
+
+
+ select
+ name, url
+ from
+ weblogger_blogroll_entries
+ where
+ package_id = :package_id
+ order by
+ sort_order, name asc
+
+
+
Index: openacs-4/packages/lars-blogger/sql/postgresql/lars-blogger-blogroll-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/sql/postgresql/lars-blogger-blogroll-create.sql,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/lars-blogger/sql/postgresql/lars-blogger-blogroll-create.sql 14 Dec 2003 13:02:37 -0000 1.1
@@ -0,0 +1,105 @@
+--
+-- lars-blogger-blogroll-create.sql
+--
+-- @author Guan Yang (guan@unicast.org)
+--
+
+-- Simple blogroll feature
+select acs_object_type__create_type (
+ 'weblogger_blogroll_entry', -- object_type
+ 'Blogroll Entry', -- pretty_name
+ 'Blogroll Entries', -- pretty_plural
+ 'acs_object', -- supertype
+ 'weblogger_blogroll_entries', -- table_name
+ 'link_id', -- id_column
+ 'lars-blogger', -- package_name
+ 'f', -- abstract_p
+ null, -- type_extension_table
+ 'weblogger_blogroll_entry__name' -- name_method
+);
+
+create table weblogger_blogroll_entries (
+ link_id integer
+ constraint weblogger_blogroll_entries_id_fk
+ references acs_objects(object_id)
+ constraint weblogger_blogroll_entries_id_pk
+ primary key,
+ package_id integer
+ constraint weblogger_blogroll_entries_package_id_fk
+ references apm_packages(package_id),
+ name varchar(500)
+ constraint weblogger_blogroll_entries_name_nn
+ not null,
+ url varchar(1000)
+ constraint weblogger_blogroll_entries_url_nn
+ not null,
+ sort_order integer default 0
+);
+
+create or replace function weblogger_blogroll_entry__name (integer)
+returns varchar as '
+declare
+ p_link_id alias for $1;
+ v_name varchar;
+begin
+ select name into v_name
+ from weblogger_blogroll_entries
+ where link_id = p_link_id;
+ return v_name;
+end;
+' language 'plpgsql';
+
+create or replace function weblogger_blogroll_entry__new (
+ integer, -- link_id
+ integer, -- package_id
+ varchar, -- name
+ varchar, -- url
+ integer, -- creation_user
+ varchar -- creation_ip
+) returns integer as '
+declare
+ p_link_id alias for $1;
+ p_package_id alias for $2;
+ p_name alias for $3;
+ p_url alias for $4;
+ p_creation_user alias for $5;
+ p_creation_ip alias for $6;
+ v_link_id integer;
+begin
+ v_link_id := acs_object__new (
+ p_link_id,
+ ''weblogger_blogroll_entry'',
+ current_timestamp,
+ p_creation_user,
+ p_creation_ip,
+ p_package_id
+ );
+
+ insert into weblogger_blogroll_entries (
+ link_id,
+ package_id,
+ name,
+ url
+ ) values (
+ v_link_id,
+ p_package_id,
+ p_name,
+ p_url
+ );
+
+ return v_link_id;
+end;
+' language 'plpgsql';
+
+create or replace function weblogger_blogroll_entry__delete (integer)
+returns integer as '
+declare
+ p_link_id alias for $1;
+begin
+ delete from weblogger_blogroll_entries
+ where link_id = p_link_id;
+
+ PERFORM acs_object__delete(p_link_id);
+ return 0;
+end;
+' language 'plpgsql';
Index: openacs-4/packages/lars-blogger/sql/postgresql/lars-blogger-blogroll-drop.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/sql/postgresql/lars-blogger-blogroll-drop.sql,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/lars-blogger/sql/postgresql/lars-blogger-blogroll-drop.sql 14 Dec 2003 13:02:37 -0000 1.1
@@ -0,0 +1,11 @@
+--
+-- lars-blogger-categories-drop.sql
+--
+-- @author Guan Yang (guan@unicast.org)
+--
+
+drop function weblogger_blogroll_entry__delete(integer);
+drop function weblogger_blogroll_entry__new(integer, integer, varchar, varchar, integer, varchar);
+drop function weblogger_blogroll_entry__name(integer);
+drop table weblogger_blogroll_entries;
+select acs_object_type__drop_type('weblogger_blogroll_entry', true);
\ No newline at end of file
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.11 -r1.12
--- openacs-4/packages/lars-blogger/sql/postgresql/lars-blogger-create.sql 14 Dec 2003 11:10:44 -0000 1.11
+++ openacs-4/packages/lars-blogger/sql/postgresql/lars-blogger-create.sql 14 Dec 2003 13:02:37 -0000 1.12
@@ -7,6 +7,7 @@
--
\i lars-blogger-categories-create.sql
+\i lars-blogger-blogroll-create.sql
select acs_object_type__create_type (
'pinds_blog_entry', -- object_type
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 -r1.6 -r1.7
--- openacs-4/packages/lars-blogger/sql/postgresql/lars-blogger-drop.sql 8 Dec 2003 05:10:23 -0000 1.6
+++ openacs-4/packages/lars-blogger/sql/postgresql/lars-blogger-drop.sql 14 Dec 2003 13:02:37 -0000 1.7
@@ -35,6 +35,8 @@
drop function weblogger_channel__delete (integer);
+drop table weblogger_ping_urls;
+
drop table weblogger_channels;
select acs_object_type__drop_type ('weblogger_channel', true);
@@ -57,4 +59,5 @@
drop table pinds_blog_entries;
select acs_object_type__drop_type ('pinds_blog_entry', true);
+\i lars-blogger-blogroll-drop.sql
\i lars-blogger-categories-drop.sql
Index: openacs-4/packages/lars-blogger/sql/postgresql/upgrade/upgrade-1.0a3-1.0a4.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/sql/postgresql/upgrade/Attic/upgrade-1.0a3-1.0a4.sql,v
diff -u -r1.4 -r1.5
--- openacs-4/packages/lars-blogger/sql/postgresql/upgrade/upgrade-1.0a3-1.0a4.sql 14 Dec 2003 12:32:27 -0000 1.4
+++ openacs-4/packages/lars-blogger/sql/postgresql/upgrade/upgrade-1.0a3-1.0a4.sql 14 Dec 2003 13:02:38 -0000 1.5
@@ -14,7 +14,107 @@
primary key(package_id, ping_url)
);
+-- Simple blogroll feature
+select acs_object_type__create_type (
+ 'weblogger_blogroll_entry', -- object_type
+ 'Blogroll Entry', -- pretty_name
+ 'Blogroll Entries', -- pretty_plural
+ 'acs_object', -- supertype
+ 'weblogger_blogroll_entries', -- table_name
+ 'link_id', -- id_column
+ 'lars-blogger', -- package_name
+ 'f', -- abstract_p
+ null, -- type_extension_table
+ 'weblogger_blogroll_entry__name' -- name_method
+);
+create table weblogger_blogroll_entries (
+ link_id integer
+ constraint weblogger_blogroll_entries_id_fk
+ references acs_objects(object_id)
+ constraint weblogger_blogroll_entries_id_pk
+ primary key,
+ package_id integer
+ constraint weblogger_blogroll_entries_package_id_fk
+ references apm_packages(package_id),
+ name varchar(500)
+ constraint weblogger_blogroll_entries_name_nn
+ not null,
+ url varchar(1000)
+ constraint weblogger_blogroll_entries_url_nn
+ not null,
+ sort_order integer default 0
+);
+
+create or replace function weblogger_blogroll_entry__name (integer)
+returns varchar as '
+declare
+ p_link_id alias for $1;
+ v_name varchar;
+begin
+ select name into v_name
+ from weblogger_blogroll_entries
+ where link_id = p_link_id;
+ return v_name;
+end;
+' language 'plpgsql';
+
+create or replace function weblogger_blogroll_entry__new (
+ integer, -- link_id
+ integer, -- package_id
+ varchar, -- name
+ varchar, -- url
+ integer, -- creation_user
+ varchar -- creation_ip
+) returns integer as '
+declare
+ p_link_id alias for $1;
+ p_package_id alias for $2;
+ p_name alias for $3;
+ p_url alias for $4;
+ p_creation_user alias for $5;
+ p_creation_ip alias for $6;
+ v_link_id integer;
+begin
+ v_link_id := acs_object__new (
+ p_link_id,
+ ''weblogger_blogroll_entry'',
+ current_timestamp,
+ p_creation_user,
+ p_creation_ip,
+ p_package_id
+ );
+
+ insert into weblogger_blogroll_entries (
+ link_id,
+ package_id,
+ name,
+ url
+ ) values (
+ v_link_id,
+ p_package_id,
+ p_name,
+ p_url
+ );
+
+ return v_link_id;
+end;
+' language 'plpgsql';
+
+create or replace function weblogger_blogroll_entry__delete (integer)
+returns integer as '
+declare
+ p_link_id alias for $1;
+begin
+ delete from weblogger_blogroll_entries
+ where link_id = p_link_id;
+
+ PERFORM acs_object__delete(p_link_id);
+ return 0;
+end;
+' language 'plpgsql';
+
+
-- Merge entry_date and posted_date column
update pinds_blog_entries
set entry_date = to_timestamp(to_char(entry_date, 'YYYY-MM-DD') || ' ' || to_char(posted_date, 'HH24:MI:SS'), 'YYYY-MM-DD HH24:MI:SS');
Index: openacs-4/packages/lars-blogger/www/admin/blogroll-ae-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/blogroll-ae-postgresql.xql,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/lars-blogger/www/admin/blogroll-ae-postgresql.xql 14 Dec 2003 13:02:37 -0000 1.1
@@ -0,0 +1,40 @@
+
+
+
+
+
+ select
+ name,
+ url
+ from
+ weblogger_blogroll_entries
+ where
+ package_id = :package_id
+ and link_id = :link_id
+
+
+
+
+
+ select weblogger_blogroll_entry__new (
+ NULL,
+ :package_id,
+ :name,
+ :url,
+ :user_id,
+ :ip
+ )
+
+
+
+
+
+ update weblogger_blogroll_entries
+ set name = :name,
+ url = :url
+ where
+ link_id = :link_id
+ and package_id = :package_id
+
+
+
Index: openacs-4/packages/lars-blogger/www/admin/blogroll-ae.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/blogroll-ae.adp,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/lars-blogger/www/admin/blogroll-ae.adp 14 Dec 2003 13:02:37 -0000 1.1
@@ -0,0 +1,5 @@
+
+@blog_name@ Blogroll
+@context@
+
+
Index: openacs-4/packages/lars-blogger/www/admin/blogroll-ae.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/blogroll-ae.tcl,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/lars-blogger/www/admin/blogroll-ae.tcl 14 Dec 2003 13:02:37 -0000 1.1
@@ -0,0 +1,36 @@
+ad_page_contract {
+ Add/edit a blogroll link.
+
+ @author Guan Yang (guan@unicast.org)
+ @creation-date 2003-12-14
+} {
+ link_id:naturalnum,notnull,optional
+}
+
+set package_id [ad_conn package_id]
+set user_id [ad_conn user_id]
+set ip [ns_conn peeraddr]
+
+set blog_name [lars_blog_name]
+set context [list [list "blogroll" "Blogroll"] "One Link"]
+
+ad_form -name entry_form -form {
+ link_id:key
+ {name:text {label "Name"}
+ {html {size 40}}}
+ {url:text {label "URL"}
+ {html {size 40}}}
+} -validate {
+ {name
+ {[string length $name] <= 100}
+ "Name must be less than 100 characters."}
+ {url
+ {[string length $url] <= 500}
+ "URL must be less than 500 characters."}
+} -new_data {
+ db_exec_plsql link_add ""
+} -edit_data {
+ db_dml link_edit ""
+} -after_submit {
+ ad_returnredirect "blogroll"
+} -select_query_name link_select
\ No newline at end of file
Index: openacs-4/packages/lars-blogger/www/admin/blogroll-delete-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/blogroll-delete-postgresql.xql,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/lars-blogger/www/admin/blogroll-delete-postgresql.xql 14 Dec 2003 13:02:37 -0000 1.1
@@ -0,0 +1,9 @@
+
+
+
+
+
+ select weblogger_blogroll_entry__delete(:link_id);
+
+
+
Index: openacs-4/packages/lars-blogger/www/admin/blogroll-delete.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/blogroll-delete.tcl,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/lars-blogger/www/admin/blogroll-delete.tcl 14 Dec 2003 13:02:37 -0000 1.1
@@ -0,0 +1,21 @@
+ad_page_contract {
+ Delete a blogroll link.
+
+ @author Guan Yang (guan@unicast.org)
+ @creation-date 2003-12-14
+} {
+ link_id:naturalnum,notnull
+}
+
+set package_id [ad_conn package_id]
+
+# Check that the link belongs to this package; if not
+# redirect back to blogroll
+if { [db_string link_select "" -default 0] != $package_id } {
+ ad_returnredirect "blogroll"
+ ad_script_abort
+}
+
+db_1row link_delete ""
+
+ad_returnredirect "blogroll"
Index: openacs-4/packages/lars-blogger/www/admin/blogroll-delete.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/blogroll-delete.xql,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/lars-blogger/www/admin/blogroll-delete.xql 14 Dec 2003 13:02:37 -0000 1.1
@@ -0,0 +1,14 @@
+
+
+
+
+
+ select
+ package_id
+ from
+ weblogger_blogroll_entries
+ where
+ link_id = :link_id
+
+
+
Index: openacs-4/packages/lars-blogger/www/admin/blogroll-move.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/blogroll-move.tcl,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/lars-blogger/www/admin/blogroll-move.tcl 14 Dec 2003 13:02:37 -0000 1.1
@@ -0,0 +1,61 @@
+ad_page_contract {
+ Move a blogroll entry up or down.
+
+ @author Guan Yang (guan@unicast.org)
+ @creation-date 2003-12-14
+} {
+ direction:notnull
+ link_id:naturalnum,notnull
+}
+
+set package_id [ad_conn package_id]
+
+# Check that direction is up or down, and that package_id is correct
+if { (![string equal $direction "up"] && ![string equal $direction "down"])
+ || ![string equal [db_string entry_package_id "" -default 0] $package_id] } {
+ ad_returnredirect "blogroll"
+ ad_script_abort
+}
+
+db_transaction {
+ # First we get the current order
+
+ set current_order [db_list current_order ""]
+
+ # Go away if the current link_id is not in there
+ if { [lsearch -exact $current_order $link_id] == -1 } {
+ db_abort_transaction
+ ad_returnredirect "blogroll"
+ ad_script_abort
+ }
+
+ # Current position
+ set current_position [lsearch -exact $current_order $link_id]
+ set last_position [expr [llength $current_order]-1]
+
+ # Calculate new position
+ if { $direction == "up" && $current_position != 0 } {
+ set new_position [expr $current_position-1]
+ } elseif { $direction == "down" && $current_position != $last_position } {
+ set new_position [expr $current_position+1]
+ }
+
+ if { [info exists new_position] } {
+ # Put displaced entry in current position
+ set displaced_entry [lindex $current_order $new_position]
+
+ if { $direction == "down"} {
+ set new_order [lreplace $current_order $current_position $new_position $displaced_entry $link_id]
+ } else {
+ set new_order [lreplace $current_order $new_position $current_position $link_id $displaced_entry]
+ }
+
+ set i 0
+ foreach entry $new_order {
+ db_dml set_order ""
+ incr i
+ }
+ }
+}
+
+ad_returnredirect "blogroll"
Index: openacs-4/packages/lars-blogger/www/admin/blogroll-move.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/blogroll-move.xql,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/lars-blogger/www/admin/blogroll-move.xql 14 Dec 2003 13:02:37 -0000 1.1
@@ -0,0 +1,28 @@
+
+
+
+
+
+ select package_id
+ from weblogger_blogroll_entries
+ where link_id = :link_id
+
+
+
+
+
+ select link_id
+ from weblogger_blogroll_entries
+ where package_id = :package_id
+ order by sort_order, name asc
+
+
+
+
+
+ update weblogger_blogroll_entries
+ set sort_order = :i
+ where link_id = :entry
+
+
+
Index: openacs-4/packages/lars-blogger/www/admin/blogroll.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/blogroll.adp,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/lars-blogger/www/admin/blogroll.adp 14 Dec 2003 13:02:37 -0000 1.1
@@ -0,0 +1,5 @@
+
+@blog_name@ Blogroll
+@context;noquote@
+
+
Index: openacs-4/packages/lars-blogger/www/admin/blogroll.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/blogroll.tcl,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/lars-blogger/www/admin/blogroll.tcl 14 Dec 2003 13:02:37 -0000 1.1
@@ -0,0 +1,62 @@
+ad_page_contract {
+ View the blogroll for the current weblogger instance.
+
+ @author Guan Yang (guan@unicast.org)
+ @creation-date 2003-12-14
+}
+
+set context [list "Blogroll"]
+set blog_name [lars_blog_name]
+
+set package_id [ad_conn package_id]
+
+list::create \
+ -name links \
+ -multirow links \
+ -key link_id \
+ -row_pretty_plural "links" \
+ -actions {
+ "Add Link" "blogroll-ae" "Add a link to your blogroll"
+ } -elements {
+ name {
+ label "Name"
+ }
+ url {
+ label "URL"
+ display_template {
+ @links.url@
+ }
+ }
+ order {
+ label "Order"
+ display_template {
+ Up
+ Down
+ }
+ }
+ edit {
+ label ""
+ display_template {
+ Edit
+ }
+ }
+ delete {
+ label ""
+ display_template {
+ Delete
+ }
+ }
+ }
+
+db_multirow -extend {
+ move_up_link
+ move_down_link
+ delete_link
+ edit_link
+} links links_select "" {
+ set move_up_link "blogroll-move?[export_vars -url [list link_id [list direction up]]]"
+ set move_down_link "blogroll-move?[export_vars -url [list link_id [list direction down]]]"
+ set delete_link "blogroll-delete?[export_vars -url link_id]"
+ set edit_link "blogroll-ae?[export_vars -url link_id]"
+}
+
Index: openacs-4/packages/lars-blogger/www/admin/blogroll.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lars-blogger/www/admin/blogroll.xql,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/lars-blogger/www/admin/blogroll.xql 14 Dec 2003 13:02:37 -0000 1.1
@@ -0,0 +1,18 @@
+
+
+
+
+
+ select
+ link_id,
+ name,
+ url
+ from
+ weblogger_blogroll_entries
+ where
+ package_id = :package_id
+ order by
+ sort_order, name asc
+
+
+
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 -r1.12 -r1.13
--- openacs-4/packages/lars-blogger/www/admin/index.adp 13 Dec 2003 19:58:52 -0000 1.12
+++ openacs-4/packages/lars-blogger/www/admin/index.adp 14 Dec 2003 13:02:37 -0000 1.13
@@ -23,6 +23,11 @@
Categories
+
+
+ »
+ Blogroll
+
»