Index: openacs-4/packages/xotcl-core/tcl/30-widget-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xotcl-core/tcl/30-widget-procs.tcl,v diff -u -r1.54.2.3 -r1.54.2.4 --- openacs-4/packages/xotcl-core/tcl/30-widget-procs.tcl 14 Feb 2014 18:20:44 -0000 1.54.2.3 +++ openacs-4/packages/xotcl-core/tcl/30-widget-procs.tcl 7 Sep 2014 20:08:22 -0000 1.54.2.4 @@ -922,6 +922,8 @@ # # templating and CSS # + set use_template_head 1 + Class create Page Page proc requireCSS {{-order 1} name} { set ::_xo_need_css($name) [expr {[array size ::_xo_need_css]+1000*$order}] @@ -936,8 +938,12 @@ Page proc requireLink {-rel -type -title -href} { regsub -all ' $title "'" title regsub -all ' $href "'" href - set key "rel='$rel' type='$type' title='$title' href='$href'" - set ::_xo_need_link($key) 1 + if {$::xo::use_template_head} { + template::head::add_link -rel $rel -href $href -type $type -title $title + } else { + set key "rel='$rel' type='$type' title='$title' href='$href'" + set ::_xo_need_link($key) 1 + } } Page proc set_property {name element value} { set ::xo_property_${name}($element) $value @@ -959,30 +965,58 @@ } return $result } + Page proc header_stuff {} { set result "" - foreach link [array names ::_xo_need_link] { - append result "\n" - } - foreach style [my sort_keys_by_value [array get ::_xo_need_style]] { - append result "\n" - } - foreach file [my sort_keys_by_value [array get ::_xo_need_css]] { - append result "\n" - } - if {[info exists ::_xo_js_order]} { - set statements "" - foreach file $::_xo_js_order { - if {[string match "*;*" $file]} { - # it is not a file, but some javascipt statements - append statements $file \n - } else { - append result "\n" + if {$::xo::use_template_head} { + foreach style [my sort_keys_by_value [array get ::_xo_need_style]] { + template::head::add_style -style $style + } + set count 10 + foreach file [my sort_keys_by_value [array get ::_xo_need_css]] { + template::head::add_css -href $file -media all -order [incr count] + } + if {[info exists ::_xo_js_order]} { + set statements "" + set order 10 + foreach file $::_xo_js_order { + if {[string match "*;*" $file]} { + # it is not a file, but some javascipt statements + append statements $file \n + } else { + template::head::add_script -src $file -type text/javascript -order [incr order] + } } + if {$statements ne ""} { + template::head::add_script -script $statements -type text/javascript -order [incr order] + } } - if {$statements ne ""} { - append result \n "\n" + + + } else { + foreach link [array names ::_xo_need_link] { + append result "\n" } + foreach style [my sort_keys_by_value [array get ::_xo_need_style]] { + append result "\n" + } + foreach file [my sort_keys_by_value [array get ::_xo_need_css]] { + append result "\n" + } + if {[info exists ::_xo_js_order]} { + set statements "" + foreach file $::_xo_js_order { + if {[string match "*;*" $file]} { + # it is not a file, but some javascipt statements + append statements $file \n + } else { + append result "\n" + } + } + if {$statements ne ""} { + append result \n "\n" + } + } } return $result }