oacs_dav::item_parent_folder_id (public)

 oacs_dav::item_parent_folder_id uri

Defined in packages/oacs-dav/tcl/oacs-dav-procs.tcl

get the folder_id of the parent of an item from the uri

Parameters:
uri
Returns:
parent_folder_id or empty string if folder does not exist

Partial Call Graph (max 5 caller/called nodes):
%3 fs::impl::fs_object::mkcol fs::impl::fs_object::mkcol (private) oacs_dav::item_parent_folder_id oacs_dav::item_parent_folder_id fs::impl::fs_object::mkcol->oacs_dav::item_parent_folder_id fs::impl::fs_object::put fs::impl::fs_object::put (private) fs::impl::fs_object::put->oacs_dav::item_parent_folder_id oacs_dav::conn_setup oacs_dav::conn_setup (public) oacs_dav::conn_setup->oacs_dav::item_parent_folder_id oacs_dav::impl::content_folder::mkcol oacs_dav::impl::content_folder::mkcol (private) oacs_dav::impl::content_folder::mkcol->oacs_dav::item_parent_folder_id oacs_dav::impl::content_folder::move oacs_dav::impl::content_folder::move (private) oacs_dav::impl::content_folder::move->oacs_dav::item_parent_folder_id db_exec_plsql db_exec_plsql (public) oacs_dav::item_parent_folder_id->db_exec_plsql oacs_dav::request_folder_id oacs_dav::request_folder_id (public) oacs_dav::item_parent_folder_id->oacs_dav::request_folder_id oacs_dav::request_site_node oacs_dav::request_site_node (public) oacs_dav::item_parent_folder_id->oacs_dav::request_site_node

Testcases:
No testcase defined.
Source code:

    array set sn [oacs_dav::request_site_node $uri]
    set node_id $sn(node_id)
    set root_folder_id [oacs_dav::request_folder_id $node_id]
    set urlv [split [string trimright [string range $uri [string length $sn(url)] end] "/""/"]
    if {[llength $urlv] >1} {
        set parent_name [join [lrange $urlv 0 [llength $urlv]-2] "/" ]
    } else {
        set parent_name "/"
    }
    ns_log debug "\nparent_folder_id urlv $urlv parent_name $parent_name uri $uri"
    if {[string trimright $parent_name "/"] eq [string trimright $sn(url) "/"]} {
        # content_item__get_id can't resolve "/"
        # because it strips the leading and trailing /
        # from the url you pass in, and cr_items.name of the folder
        # is not and empty string
        set parent_id $root_folder_id
    } else {
        set parent_id [db_exec_plsql get_parent_folder_id ""]
    }
    return $parent_id
Generic XQL file:
packages/oacs-dav/tcl/oacs-dav-procs.xql

PostgreSQL XQL file:
<fullquery name="oacs_dav::item_parent_folder_id.get_parent_folder_id">
    <querytext>
      select content_item__get_id(:parent_name,:root_folder_id,'f')
    </querytext>
</fullquery>
packages/oacs-dav/tcl/oacs-dav-procs-postgresql.xql

Oracle XQL file:
<fullquery name="oacs_dav::item_parent_folder_id.get_parent_folder_id">
    <querytext>
	begin
	      :1 := content_item.get_id(
	              item_path => :parent_name,
	              root_folder_id => :root_folder_id,
	              resolve_index => 'f');
	end;
    </querytext>
</fullquery>
packages/oacs-dav/tcl/oacs-dav-procs-oracle.xql

[ hide source ] | [ make this the default ]
Show another procedure: