X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=JsTemplate.php;h=f1387913c57aa7251c3a593c07d4f5afd314b684;hp=54667b71ca1f85b63d76f7788aa27b460ba9d0a9;hb=refs%2Fheads%2Fwip_alan_T5884_add_photo_to_report;hpb=72858c716f2fff7c29385fa12b7c20ec78f66a64 diff --git a/JsTemplate.php b/JsTemplate.php index 54667b71..f1387913 100644 --- a/JsTemplate.php +++ b/JsTemplate.php @@ -40,37 +40,47 @@ class Pman_Core_JsTemplate extends Pman { } - function get() + function get($v, $opts=array()) { + + $this->sessionState(0); // get the modules. header('Content-type: text/javascript'); $ff = HTML_FlexyFramework::get(); $pr = $ff->project; - $ar = explode(PATH_SEPARATOR, $ff->HTML_Template_Flexy['templateDir']); - $prefix = $pr == 'Pman' ? 'Pman.' : ''; + $mods = $this->modulesList(); + //print_r($mods); + + //$ar = explode(PATH_SEPARATOR, $ff->HTML_Template_Flexy['templateDir']); + array_push($mods, $pr); - foreach($ar as $mod) { - $dir = dirname($mod) . '/jtemplates'; + 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"; 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"; @@ -103,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..? @@ -120,7 +130,7 @@ class Pman_Core_JsTemplate extends Pman { continue; case ($inscript && ($item != '{end:}')): - $ret[] = $item; + $ret[count($ret)-1] .= $item; continue; case ($inscript && ($item == '{end:}')): @@ -138,6 +148,7 @@ class Pman_Core_JsTemplate extends Pman { case ($item == '{script:}'): $inscript = true; + $ret[] = ''; continue; case ($item[1] == '!'): @@ -150,6 +161,13 @@ class Pman_Core_JsTemplate extends Pman { $indent++; continue; + case (substr($item,1,5) == 'else:'): + $indent--; + $in = str_repeat(" ", $indent); + $ret[] = $in . "} else { "; + $indent++; + continue; + case (substr($item,1,4) == 'end:'): $indent--; $in = str_repeat(" ", $indent); @@ -192,7 +210,7 @@ class Pman_Core_JsTemplate extends Pman { } $in = str_repeat(" ", $indent); - $ret[] = $in . "return ret.join('');\n}\n"; + $ret[] = $in . "return ret;\n}\n"; return $head . implode("\n",$funcs) . "\n\n" .implode("\n",$out) ; //echo '
' . htmlspecialchars(implode("\n",$ret));