X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=JsTemplate.php;h=ec79d0c46fb0644ceb5325a04a2e02c1e6b234da;hp=f05a44a5461957a40c1315429996e8425baa47db;hb=HEAD;hpb=0876e5e0e9c67afc34549698085253277b901e4e diff --git a/JsTemplate.php b/JsTemplate.php index f05a44a5..302b1c6d 100644 --- a/JsTemplate.php +++ b/JsTemplate.php @@ -40,10 +40,12 @@ class Pman_Core_JsTemplate extends Pman { } - function get() + function get($v, $opts=array()) { + + $this->sessionState(0); // get the modules. - //header('Content-type: text/javascript'); + header('Content-type: text/javascript'); $ff = HTML_FlexyFramework::get(); @@ -53,29 +55,32 @@ class Pman_Core_JsTemplate extends Pman { //print_r($mods); //$ar = explode(PATH_SEPARATOR, $ff->HTML_Template_Flexy['templateDir']); + array_push($mods, $pr); - $prefix = empty($mods) ? '' : ($pr .'.') ; - $pdir = empty($mods) ? '' : ($pr .'/') ; - - foreach(empty($mods) ? array($pr) : $mods as $mod ) { + foreach($mods as $mod ) + { + $prefix = $mod == $pr ? "" : "{$pr}."; + //var_dump($prefix); + $pdir = $mod == $pr ? '' : ($pr .'/') ; + $dir = $this->rootDir .'/'.$pdir . $mod . '/jtemplates'; if (!file_exists($dir)) { - echo '// missing directory '. htmlspecialchars($dir) ."\n"; + //echo '// missing directory '. htmlspecialchars($dir) ."\n"; continue; } // got a directory.. - $mn = basename(dirname($mod)); + $ar = glob("$dir/*.html") ; if (empty($ar)) { echo '// no template is directory '. htmlspecialchars($dir) ."\n"; continue; } - echo "{$prefix}{$mn} = {$prefix}{$mn} || {};\n"; - echo "{$prefix}{$mn}.template = {$prefix}{$mn}.template || {};\n\n"; + echo "{$prefix}{$mod} = {$prefix}{$mod} || {};\n"; + echo "{$prefix}{$mod}.template = {$prefix}{$mod}.template || {};\n\n"; foreach(glob("$dir/*.html") as $fn) { - $name = "{$prefix}{$mn}.template." . preg_replace('/\.html$/i', '', basename($fn)); + $name = "{$prefix}{$mod}.template." . preg_replace('/\.html$/i', '', basename($fn)); echo $this->compile($fn, $name) . "\n"; @@ -108,7 +113,7 @@ class Pman_Core_JsTemplate extends Pman { $out= array(); - $head = "$name = function(t)\n{\n var ret = [];\n\n"; + $head = "$name = function(t)\n{\n var ret = '';\n\n"; $funcs = array(); // do not allow nested functions..? @@ -122,46 +127,46 @@ class Pman_Core_JsTemplate extends Pman { //var_Dump(substr($item,-3,2)); switch(true) { case (!strlen($item)): - continue; + continue 2; case ($inscript && ($item != '{end:}')): $ret[count($ret)-1] .= $item; - continue; + continue 2; case ($inscript && ($item == '{end:}')): $inscript = false; - continue; + continue 2; case ($item[0] != '{'): if (!strlen(trim($item))) { - continue; + continue 2; } $ret[] = $in . "ret += ". json_encode($item) . ";"; - continue; + continue 2; case ($item == '{script:}'): $inscript = true; $ret[] = ''; - continue; + continue 2; case ($item[1] == '!'): $ret[] = $in . substr($item,2,-1) .';'; - continue; + continue 2; case (substr($item,1,3) == 'if('): $ret[] = $in . substr($item,1,-1) . ' {'; $indent++; - continue; + continue 2; case (substr($item,1,5) == 'else:'): $indent--; $in = str_repeat(" ", $indent); $ret[] = $in . "} else { "; $indent++; - continue; + continue 2; case (substr($item,1,4) == 'end:'): $indent--; @@ -171,11 +176,11 @@ class Pman_Core_JsTemplate extends Pman { $fstart = -1; $ret = &$out; } - continue; + continue 2; case (substr($item,1,7) == 'return:'): $ret[] = $in . "return;"; - continue; + continue 2; case (substr($item,1,9) == 'function:'): $fstart = $indent; @@ -186,19 +191,19 @@ class Pman_Core_JsTemplate extends Pman { $ret[] = $in . "var $name = function (" . $body . '{'; - continue; + continue 2; default: if (substr($item,-3,2) == ':h') { $ret[] = $in . "ret += ". substr($item,1,-3) . ';'; - continue; + continue 2; } if (substr($item,-3,2) == ':b') { $ret[] = $in . "ret += Roo.util.Format.htmlEncode(". substr($item,1,-3).').split("\n").join("
\n");'; - continue; + continue 2; } $ret[] = $in . "ret += Roo.util.Format.htmlEncode(". substr($item,1,-1).');'; - continue; + continue 2; }