bm_folder_selection db owner_id bookmark_idWhat it does:
Creates an option list of all the folders a selected object may move to - the resultingDefined in: /web/philip/tcl/bookmarks-defs.tcl
Source code:
set folder_exclusion_clauses [list "owner_id = $owner_id" "folder_p = 't'"]
set selection [ns_db 0or1row $db "select folder_p, parent_id, parent_sort_key, local_sort_key from bm_list where bookmark_id = $bookmark_id"]
if { $selection != "" } {
set_variables_after_query
if { $folder_p == "t" } {
# We cannot move folders to be their own children.
lappend folder_exclusion_clauses "(parent_sort_key not like '$parent_sort_key$local_sort_key%' or parent_sort_key is null)"
lappend folder_exclusion_clauses "bookmark_id <> $bookmark_id"
}
} else {
set parent_id ""
}
set selection [ns_db select $db "select bookmark_id, local_title, lpad(' ', 6*(nvl(length(parent_sort_key),0)+3), ' ') as indentation
from bm_list
where [join $folder_exclusion_clauses " and "]
order by parent_sort_key || local_sort_key"]
if { $parent_id == "" } {
set edit_form_option "<option value=\"\" selected>Top Level</option>\n"
} else {
set edit_form_option "<option value=\"\" > Top Level </option>\n"
}
set folder_count 0
while {[ns_db getrow $db $selection]} {
set_variables_after_query
incr folder_count
if { $bookmark_id == $parent_id } {
append edit_form_option "<option value=$bookmark_id selected>$indentation $local_title </option>\n"
} else {
append edit_form_option "<option value=$bookmark_id>$indentation $local_title</option>\n"
}
}
if {$folder_count > 8} {
set size_count 8
} else {
set size_count [expr $folder_count + 1]
}
return "<select size=$size_count name=parent_id>$edit_form_option</select>"