- Methods: All Methods Documented Methods Hide Methods
- Source: Display Source Hide Source
- Variables: Show Variables Hide Variables
Class ::acs::SiteNode
::acs::SiteNode create ...
Class Relations
::nx::Class create ::acs::SiteNode \ -superclass ::nx::ObjectMethods (to be applied on instances)
flush_cache (scripted)
get (scripted)
if {$url eq "" && $node_id eq ""} { error "site_node::get \"must pass in either url or node_id\"" } # # Make sure, we have a node_id. # if {$node_id eq ""} { set node_id [:get_node_id -url $url] } return [:properties -node_id $node_id]get_children (scripted)
if {$all} { # # The following query is just for PG. Note that # the query should not return the root of the # tree. # set sql [subst { WITH RECURSIVE site_node_tree(node_id, parent_id) AS ( select node_id, parent_id from site_nodes where node_id = :node_id UNION ALL select child.node_id, child.parent_id from site_node_tree, site_nodes child where child.parent_id = site_node_tree.node_id ) select [acs::dc map_function_name site_node__url(node_id)] from site_node_tree where node_id != :node_id }] if {[db_driverkey ""] eq "oracle"} { set sql [string map [list "WITH RECURSIVE" "WITH"] $sql] } set child_urls [::acs::dc list -prepare integer dbqd..[current method]-all $sql] } else { if {$package_key ne ""} { # # Simple optimization for package_keys; seems to be frequently used. # We leave the logic below unmodified, which could be optimized as well. # set package_key_clause "and package_id = object_id and package_key = :package_key" set from "site_nodes, apm_packages" } else { set package_key_clause "" set from "site_nodes" } set sql [subst { select [::acs::dc map_function_name {site_node__url(node_id)}] from $from where parent_id = :node_id $package_key_clause }] set child_urls [::acs::dc list dbqd..[current method] $sql] } if { $package_type ne "" } { lappend filters package_type $package_type } elseif { $package_key ne "" } { lappend filters package_key $package_key } if { [llength $filters] > 0 } { set return_val [list] foreach child_url $child_urls { array unset site_node if {![catch {array set site_node [:get -url $child_url]}]} { set passed_p 1 foreach { elm val } $filters { if { $site_node($elm) ne $val } { set passed_p 0 break } } if { $passed_p } { if { $element ne "" } { lappend return_val $site_node($element) } else { lappend return_val $child_url } } } } } elseif { $element ne "" } { set return_val [list] foreach child_url $child_urls { array unset site_node if {![catch {array set site_node [:get -url $child_url]}]} { lappend return_val $site_node($element) } } } else { set return_val $child_urls } return $return_valget_node_id (forward)
get_package_url (scripted)
return [lindex [:get_urls_from_package_key -package_key $package_key] 0]get_url (forward)
get_urls_from_object_id (scripted)
set child_urls [::acs::dc list -prepare integer dbqd..[current method]-all [subst { select [acs::dc map_function_name site_node__url(node_id)] as url from site_nodes where object_id = :object_id order by url desc }]]get_urls_from_package_key (scripted)
return [::acs::dc list -prepare varchar dbqd..[current method]-urls-from-package-key [subst { select [acs::dc map_function_name site_node__url(node_id)] from site_nodes n, apm_packages p where p.package_key = :package_key and n.object_id = p.package_id }]]
- Methods: All Methods Documented Methods Hide Methods
- Source: Display Source Hide Source
- Variables: Show Variables Hide Variables