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 @@ + +
    + + +
  1. @links.name@
  2. +
    + +
+ 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 +

»