ad_categorize_row {-db 0 -which_table "" -what_id 0 -category_id_list "" -mapping_weight "null" -one_line_item_desc "" -mapping_comment ""}What it does:
Maps a specific row in the database to the specified categories.Defined in: /web/philip/tcl/ad-categories.tcl
Source code:
arg_parser_for_ad_categorize_row $args # Validate that all mandatory arguments have been supplied. # set missing_args [list] if { $db == 0 } { lappend missing_args "db" } if { [empty_string_p $which_table] } { lappend missing_args "which_table" } if { $what_id == 0 } { lappend missing_args "what_id" } if { [empty_string_p $one_line_item_desc] } { lappend missing_args "one_line_item_desc" } set n_missing_args [llength $missing_args] if { $n_missing_args > 0 } { error "missing $n_missing_args arg(s): [join $missing_args ", "]" } with_transaction $db { if { [llength $category_id_list] == 0 } { ns_db dml $db "delete from site_wide_category_map where on_which_table = '$which_table' and on_what_id = '$what_id'" } else { # Purge any existing mappings that have been removed. # ns_db dml $db "delete from site_wide_category_map where on_which_table = '$which_table' and on_what_id = '$what_id' and category_id not in ([join $category_id_list ", "])" # Update mapping_weight, one_line_item_desc, and mapping_comment # for any remaining mappings. # ns_db dml $db "update site_wide_category_map set one_line_item_desc = '[DoubleApos $one_line_item_desc]', mapping_weight = $mapping_weight, mapping_comment = '[DoubleApos $mapping_comment]' where on_which_table = '$which_table' and on_what_id = '$what_id'" # Insert all mappings that do not already exist. # ns_db dml $db "insert into site_wide_category_map (map_id, category_id, on_which_table, on_what_id, mapping_date, mapping_weight, one_line_item_desc, mapping_comment) select site_wide_cat_map_id_seq.nextval, category_id, '$which_table', '$what_id', sysdate, $mapping_weight, '[DoubleApos $one_line_item_desc]', '[DoubleApos $mapping_comment]' from categories where category_id in ('[join $category_id_list "', '"]') and not exists ( select category_id from site_wide_category_map where on_which_table = '$which_table' and on_what_id = '$what_id' and categories.category_id = site_wide_category_map.category_id)" } } { error $errmsg }