template::register_urn (public)

 template::register_urn -urn urn -resource resource \
    [ -csp_list csp_list ]

Defined in packages/acs-templating/tcl/head-procs.tcl

Register a URN for a resource. These URNs provide a single place for e.g. updating references to external resources when switching between a CDN and a local resource, or when a resource should be updated. We could consider a dns-prefetch for CDN requests. When the url-check is performed at register time, the performance for processing the url can be neglected.

Switches:
-urn
(required)
-resource
(required)
-csp_list
(optional)

Partial Call Graph (max 5 caller/called nodes):
%3 test_urn_api urn_api (test acs-templating) template::register_urn template::register_urn test_urn_api->template::register_urn highcharts::register_urns highcharts::register_urns (private) highcharts::register_urns->template::register_urn packages/bootstrap-icons/tcl/resource-init.tcl packages/bootstrap-icons/ tcl/resource-init.tcl packages/bootstrap-icons/tcl/resource-init.tcl->template::register_urn packages/fa-icons/tcl/resource-init.tcl packages/fa-icons/ tcl/resource-init.tcl packages/fa-icons/tcl/resource-init.tcl->template::register_urn packages/openacs-bootstrap3-theme/tcl/resource-init.tcl packages/openacs-bootstrap3-theme/ tcl/resource-init.tcl packages/openacs-bootstrap3-theme/tcl/resource-init.tcl->template::register_urn packages/openacs-bootstrap5-theme/tcl/resource-init.tcl packages/openacs-bootstrap5-theme/ tcl/resource-init.tcl packages/openacs-bootstrap5-theme/tcl/resource-init.tcl->template::register_urn

Testcases:
urn_api
Source code:
    set key ::template::head::urn($urn)
    if {[info exists $key]} {
        set old_resource [set $key]
        #
        # Prefer local URLs over non-local ones (starting with http*:)
        #
        if {[string match //* $old_resource] || [string match http* $old_resource]} {
            ns_log notice "overwrite URN: $urn <$old_resource> with <$resource>"
            set $key $resource
            set ::template::head::urn_csp($urn$csp_list
        } else {
            ns_log notice "keep old URN: $urn <$old_resource> instead of <$resource>"
        }
    } else {
        set $key $resource
        set ::template::head::urn_csp($urn$csp_list
        ns_log notice "add URN: $urn <$resource>"
    }
XQL Not present:
Generic, PostgreSQL, Oracle
[ hide source ] | [ make this the default ]
Show another procedure: