Commit e31f671c85aea54f47a913398c1a03804d1565bc

Authored by nbm
1 parent 8edec41e

Put $main truly into the global scope using $GLOBALS.

If no contents are passed to the template, put up an error message.

Add the ability to include standalone javascript in a page.


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@4057 c91229c3-7414-0410-bfa2-8a42b809f60b
lib/templating/kt3template.inc.php
... ... @@ -18,6 +18,7 @@ class KTPage {
18 18 /** resources are "filename"->1 to allow subcomponents to require items. */
19 19 var $js_resources = Array();
20 20 var $css_resources = Array();
  21 + var $js_standalone = Array();
21 22  
22 23 /** context-relevant information */
23 24 var $errStack = Array();
... ... @@ -88,7 +89,6 @@ class KTPage {
88 89 // require that the specified JS file is referenced.
89 90 function requireJSResource($sResourceURL) {
90 91 $this->js_resources[$sResourceURL] = 1; // use the keys to prevent multiple copies.
91   -
92 92 }
93 93  
94 94 // require that the specified JS files are referenced.
... ... @@ -102,6 +102,14 @@ class KTPage {
102 102 function getJSResources() {
103 103 return array_keys($this->js_resources);
104 104 }
  105 +
  106 + function requireJSStandalone($sJavascript) {
  107 + $this->js_standalone[$sJavascript] = 1; // use the keys to prevent multiple copies.
  108 + }
  109 + // list the distinct js resources.
  110 + function getJSStandalone() {
  111 + return array_keys($this->js_standalone);
  112 + }
105 113  
106 114 /* css handling */
107 115 // require that the specified CSS file is referenced.
... ... @@ -190,6 +198,15 @@ class KTPage {
190 198  
191 199 /* final render call. */
192 200 function render() {
  201 +
  202 + if (empty($this->contents)) {
  203 + $this->contents = "";
  204 + }
  205 +
  206 + if (is_string($this->contents) && (trim($this->contents) === "")) {
  207 + $this->addError("This page did not produce any content");
  208 + $this->contents = "";
  209 + }
193 210  
194 211 if (!is_string($this->contents)) {
195 212 $this->contents = $this->contents->render();
... ... @@ -224,6 +241,6 @@ class KTPage {
224 241 }
225 242  
226 243 /* set $main - this is used by the rest of the system. */
227   -$main = new KTPage();
  244 +$GLOBALS['main'] = new KTPage();
228 245  
229   -?>
230 246 \ No newline at end of file
  247 +?>
... ...